Cómo instalar Ubuntu Server: paso a paso
Linux & Sistemas · Por Kevin Marcondes · Publicado el · Actualizado el · 9 min de lectura
Esta guía muestra cómo instalar Ubuntu Server paso a paso: preparar el USB, arrancar desde él, elegir el particionamiento, configurar la red y realizar la postinstalación. Es un tutorial directo, con comandos listos para verificar que todo funcionó y evitar errores comunes.
Requisitos previos y descarga de la ISO
Necesitas un equipo compatible con 64 bits, un USB (8 GB o más) y la imagen ISO de Ubuntu Server. Haz copia de seguridad de los datos del equipo donde instalarás el sistema.
Descarga la edición LTS desde el sitio oficial. Recibe actualizaciones durante varios años y suele ser la opción más estable para servidores.
Verifica la integridad de la ISO con el checksum. Instalar desde una ISO corrupta puede fallar durante el proceso.
- CPU y RAM: cuantos más recursos, mejor rendimiento para tus cargas.
- Un USB 3.0 acelera la grabación de la ISO.
- Conexión de red con internet facilita la instalación de paquetes.
- Haz copia de seguridad del disco de destino: la instalación lo borrará.
# Linux/macOS: verificar checksum SHA256
echo "<SHA256_ESPERADO> ubuntu-XX.XX-live-server-amd64.iso" | sha256sum -c -
# ou
sha256sum ubuntu-XX.XX-live-server-amd64.iso
# Windows PowerShell: verificar SHA256
Get-FileHash .\ubuntu-XX.XX-live-server-amd64.iso -Algorithm SHA256
Crear USB booteable (Windows, macOS y Linux)
En Windows, usa una herramienta gráfica como Rufus o balenaEtcher para grabar la ISO en el USB. En macOS y Linux puedes usar dd desde la terminal.
Atención: dd borra completamente el USB. Verifica el dispositivo de destino antes de ejecutar. Tras grabar, expulsa con seguridad.
Si planeas usar contenedores o virtualización en el servidor, vale la pena estudiar diferencias de aislamiento y HA. Más abajo hay un comparativo útil.
- En Windows: elige la ISO, el USB y graba en el modo recomendado.
- En macOS: identifica el disco con diskutil y usa rdisk para mayor velocidad.
- En Linux: identifica el dispositivo con lsblk y graba con dd.
# macOS: identificar e gravar (ajuste /dev/disk2)
diskutil list
diskutil unmountDisk /dev/disk2
sudo dd if=ubuntu-XX.XX-live-server-amd64.iso of=/dev/rdisk2 bs=4m conv=sync status=progress
sync
# Linux: identificar e gravar (ajuste /dev/sdX)
lsblk
sudo dd if=ubuntu-XX.XX-live-server-amd64.iso of=/dev/sdX bs=4M conv=fsync status=progress
sync
Arrancar desde USB y opciones iniciales del instalador
Conecta el USB y accede al menú de arranque (generalmente F12, F10 o Esc al encender). Elige iniciar desde USB.
Prefiere UEFI si el hardware ofrece ambas opciones (UEFI y Legacy/CSM). Aporta mejoras de seguridad y compatibilidad con discos GPT.
En el instalador selecciona idioma, distribución del teclado, red (DHCP funciona en la mayoría de casos) y la zona horaria. Estas opciones se pueden cambiar después.
Si aparece la opción de actualizar el instalador antes de continuar, acepta. Ayuda a evitar errores ya corregidos.
Particionado del disco: modo guiado o manual
El instalador ofrece modos guiado y manual. Si no necesitas un esquema personalizado, el modo guiado es más rápido y menos propenso a errores.
Para servidores, LVM y el cifrado son opciones comunes. LVM facilita la ampliación de volúmenes. LUKS protege los datos en reposo. Cualquier opción borrará el disco de destino.
| Opción | Cuándo usar | Ventajas | Desventajas |
|---|---|---|---|
| Usar todo el disco (guiado) | Instalación rápida en un disco dedicado | Sencillez, menos errores | Menos control sobre el esquema |
| LVM (volúmenes lógicos) | Necesitas flexibilidad en el tamaño de las particiones | Redimensionamiento y snapshots | Más complejo que particiones simples |
| Cifrado LUKS | Datos sensibles en reposo | Protege en caso de robo/pérdida | Requiere contraseña en el arranque, pequeño impacto en el rendimiento |
| Manual (personalizado) | Requisitos específicos para /, /var, /home | Control total del esquema | Más pasos y mayor riesgo de error |
| ZFS (cuando esté disponible) | Necesita recursos como snapshots/compresión | Funciones avanzadas del sistema de archivos | Mayor consumo de RAM y curva de aprendizaje |
Configurar red y nombre del equipo
Si DHCP funciona, continúa así y ajusta después. Para IP fija, configura con Netplan. Al usar IP estática, reserva la dirección en el router o asegúrate de que no haya conflictos.
Define un hostname simple y descriptivo, como srv-web-01. Ayuda a la identificación en logs y en el monitoreo.
¿Vas a exponer APIs o servicios públicos? Refuerza la autenticación y los límites de petición. Más abajo tienes un guía práctica.
- DHCP: rápido y sin fricciones.
- IPv4 estático: previsibilidad para DNS y puertos.
- DNS público: usa registros A/AAAA y PTR si es necesario.
# /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.50/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [1.1.1.1,8.8.8.8]
# Aplicar as alterações
sudo netplan apply
Usuario, SSH y firewall básico
Crea un usuario administrador y configura SSH. Activa el firewall UFW para exponer solo lo necesario. Si desactivas la contraseña en SSH, asegúrate de que tu clave pública ya esté en authorized_keys.
Para aumentar la seguridad, desactiva el acceso root por SSH y, si es posible, la autenticación por contraseña.
- Usa un usuario propio y el grupo sudo.
- Abre solo el puerto de OpenSSH.
- Registra intentos de acceso para auditoría.
# Criar usuário e dar privilégios
sudo adduser admin
sudo usermod -aG sudo admin
# Instalar e habilitar o servidor SSH (se necessário)
sudo apt update && sudo apt install -y openssh-server
sudo systemctl enable --now ssh
# Endurecer SSH (opcional): desativar root e senha
sudo bash -c 'cat > /etc/ssh/sshd_config.d/hardening.conf <<EOF
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
EOF'
sudo systemctl reload ssh
# Firewall básico com UFW
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
Postinstalación: actualizaciones y utilidades útiles
Mantén el sistema actualizado y automatiza la aplicación de parches de seguridad. Instala utilidades que ayudan en la operación diaria.
Sincroniza la hora con NTP y configura la zona horaria correcta para que logs y tareas programadas tengan sentido.
¿Piensas en observabilidad y resiliencia desde el inicio? Hay ideas y guías prácticas en los enlaces sugeridos.
- Actualizaciones automáticas de seguridad.
- Fail2ban para bloquear intentos de fuerza bruta.
- Herramientas útiles: htop, curl, git, unzip, tar.
# Atualizações e utilitários
sudo apt update && sudo apt -y upgrade
sudo apt install -y unattended-upgrades fail2ban htop curl git unzip tar
# Habilitar serviços importantes
sudo systemctl enable --now unattended-upgrades
sudo systemctl enable --now fail2ban
# Fuso horário e NTP (ajuste a zona)
sudo timedatectl set-timezone America/Sao_Paulo
sudo timedatectl set-ntp true
timedatectl status
Cómo confirmar que todo funcionó y resolución de problemas
Confirma la versión del sistema, la red, SSH y el firewall. Si algo falla, abajo tienes causas comunes y cómo resolverlas.
Problemas frecuentes: USB que no arranca, red sin IP, error en GRUB y acceso SSH bloqueado. Revisa los mensajes del instalador y los logs del sistema para obtener pistas.
Si vas a operar servicios en producción, estructura procesos de despliegue y monitoriza eventos críticos desde el inicio.
- USB no arranca: regraba la ISO y prueba otro puerto/cable. En UEFI, desactiva Secure Boot si es necesario.
- Sin red: revisa Netplan (nameservers y gateway correctos) y aplica con netplan apply.
- Error de GRUB: asegúrate de un modo UEFI coherente con la tabla GPT y el disco correcto al arrancar.
- SSH denegado: si desactivaste la contraseña, verifica authorized_keys del usuario y las reglas de UFW.
- DNS inconsistente: ajusta el hostname y /etc/hosts, borra caches con systemd-resolve --flush-caches.
# Versão do Ubuntu e kernel
cat /etc/os-release | grep PRETTY_NAME
uname -r
# Rede e DNS
ip -4 addr show
ip route
resolvectl status | sed -n '1,20p'
# SSH e firewall
systemctl status --no-pager ssh
sudo ufw status numbered
Preguntas frecuentes
¿Qué edición de Ubuntu Server debo elegir: LTS o no-LTS?
Para servidores, prefiere LTS. Recibe soporte y correcciones durante años y reduce la cantidad de actualizaciones de versión. Las versiones no-LTS traen novedades antes, pero exigen actualizaciones más frecuentes. En entornos de producción, la estabilidad suele ser la prioridad.
¿Cuáles son los requisitos mínimos para instalar Ubuntu Server?
Funciona en procesadores de 64 bits con pocos recursos, pero la experiencia depende de la carga. Para usos comunes, 2 GB de RAM permiten servicios básicos. Para bases de datos y aplicaciones, más CPU, RAM y disco rápido marcan la diferencia. Evalúa según el uso previsto.
¿Necesito usar LVM y cifrado?
No es obligatorio. LVM facilita aumentar volúmenes sin reinstalar. El cifrado LUKS protege los datos en reposo, útil en entornos con riesgo físico. Si buscas la máxima simplicidad, el particionado guiado sin LVM es suficiente. Si necesitas flexibilidad, considera LVM.
¿Cómo configurar una IP fija después de la instalación?
Edita un archivo YAML en /etc/netplan/ con la dirección, la puerta de enlace y los DNS, y aplica con netplan apply. Asegúrate de que la IP no entre en conflicto con el DHCP del router. Mantener un registro de las IP reservadas reduce sorpresas en la red.
¿Cómo habilitar acceso remoto seguro por SSH?
Instala openssh-server, crea un usuario sin root y añádelo al grupo sudo. En SSH, desactiva el acceso root y la autenticación por contraseña si ya usas claves. Restringe puertos con UFW. Prueba el acceso desde otra sesión antes de cerrar la actual para evitar bloquearte fuera.
¿Puedo instalar usando solo la red (netboot)?
Es posible usar métodos de instalación por red, pero requieren preparación adicional de la infraestructura, como un servidor que sirva las imágenes. Para la mayoría de casos, crear un USB booteable con la ISO es más simple y fiable.
¿Tienes dudas durante la instalación?
Puedes volver a esta guía cuando lo necesites y sugerir mejoras o temas para próximos tutoriales.
Sugerir un temaVer también
- Tutorial: implementar Canary releases con Traefik en Docker Compose usando headers y weighted routing para despliegues graduales de aplicaciones PHP
- Tutorial: configurar HAProxy con Let's Encrypt y healthchecks para balanceo de tráfico entre contenedores Docker en VPS (paso a paso)
- Tutorial práctico: implementar mTLS entre Nginx y microservicios usando smallstep CA en Docker Compose
- Tutorial: configurar cgroup v2 y systemd ResourceControl para limitar CPU, memoria e I/O de contenedores Docker en Debian