
Instalar y configurar un servidor Linux desde cero puede parecer una tarea compleja, pero en realidad se vuelve manejable si se sigue un proceso ordenado. Lo importante no es solo instalar el sistema operativo, sino dejarlo listo para trabajar de forma segura: con red configurada, usuarios correctos, acceso SSH controlado, firewall activo, actualizaciones aplicadas, servicios administrados y una base mínima de monitoreo.
Esta guía está pensada para principiantes que desean montar su primer servidor Linux en una máquina física, una máquina virtual, un VPS o una instancia cloud. El enfoque será práctico, seguro y progresivo, usando comandos comunes en distribuciones como Ubuntu Server, Debian, Rocky Linux, AlmaLinux o Fedora Server.
Idea clave: un servidor Linux bien configurado no termina cuando arranca por primera vez. Después de instalarlo, debes asegurar usuarios, SSH, firewall, actualizaciones, servicios, registros, copias de seguridad y monitoreo básico.
¿Qué es un servidor Linux?
Un servidor Linux es un equipo o máquina virtual que ejecuta servicios para otros usuarios, aplicaciones o sistemas. Puede alojar una página web, una base de datos, archivos compartidos, APIs, contenedores Docker, correo, DNS, VPN, sistemas empresariales o aplicaciones internas.
A diferencia de una computadora de escritorio, un servidor suele estar diseñado para funcionar de manera continua, con acceso remoto, servicios en segundo plano y una configuración más enfocada en estabilidad, seguridad y rendimiento.
Usos comunes de un servidor Linux
- Servidor web con Apache, Nginx o Caddy.
- Servidor de base de datos con PostgreSQL, MariaDB o MySQL.
- Servidor de aplicaciones para PHP, Python, Node.js o Java.
- Servidor de archivos o copias de seguridad.
- Servidor Docker para contenedores.
- Servidor de monitoreo, logs o automatización.
- Servidor de pruebas para aprendizaje y laboratorio.
Paso 1: elige la distribución adecuada para tu servidor
Para principiantes, lo más recomendable es empezar con una distribución estable, bien documentada y con amplia comunidad. Ubuntu Server y Debian son excelentes opciones para aprender. En entornos empresariales también son muy comunes Rocky Linux, AlmaLinux y Red Hat Enterprise Linux.
La elección depende del objetivo. Si quieres aprender rápido y encontrar muchos tutoriales, Ubuntu Server es muy amigable. Si quieres estabilidad y una base comunitaria sólida, Debian es excelente. Si trabajas en un entorno empresarial compatible con Red Hat, Rocky Linux o AlmaLinux pueden ser mejores opciones.
| Distribución | Recomendada para | Ventaja principal |
|---|---|---|
| Ubuntu Server | Principiantes, VPS, cloud y laboratorios. | Documentación amplia y facilidad de uso. |
| Debian | Servidores estables y usuarios que prefieren una base comunitaria. | Estabilidad y control. |
| Rocky Linux / AlmaLinux | Entornos empresariales y compatibilidad tipo RHEL. | Enfoque empresarial y ciclo de soporte prolongado. |
| Fedora Server | Usuarios que desean tecnología más reciente. | Paquetes modernos y buena integración con tecnologías Red Hat. |
Paso 2: prepara el medio de instalación
Descarga la imagen ISO desde el sitio oficial de la distribución elegida. Luego crea un USB booteable si instalarás en hardware físico. Si usarás una máquina virtual, puedes montar la ISO directamente en VirtualBox, VMware, Proxmox, KVM o la plataforma que uses.
Antes de instalar, verifica
- Que descargaste la ISO desde la página oficial.
- Que el equipo o máquina virtual tenga suficiente RAM y disco.
- Que tienes acceso a red durante o después de la instalación.
- Que no estás instalando sobre un disco con datos importantes sin respaldo.
- Que tienes claro si instalarás en BIOS, UEFI o entorno virtual.
Advertencia: si instalas en un equipo físico, hacer mal el particionado puede borrar datos. Realiza una copia de seguridad antes de continuar.
Paso 3: define recursos mínimos del servidor
Los recursos necesarios dependen del uso. Un servidor de pruebas puede funcionar con pocos recursos, pero un servidor web con base de datos, contenedores o múltiples usuarios necesitará más memoria, CPU y disco.
| Uso del servidor | RAM recomendada | Disco recomendado | Comentario |
|---|---|---|---|
| Laboratorio básico | 1 GB a 2 GB | 20 GB | Suficiente para aprender comandos y servicios básicos. |
| Servidor web simple | 2 GB a 4 GB | 40 GB o más | Adecuado para Nginx, Apache o una app pequeña. |
| Web + base de datos | 4 GB a 8 GB | 80 GB o más | Depende del tamaño de datos y tráfico. |
| Docker o múltiples servicios | 8 GB o más | 100 GB o más | Útil para contenedores, logs y volúmenes. |
Paso 4: instala el sistema operativo
El proceso exacto cambia según la distribución, pero la lógica general es similar: eliges idioma, teclado, red, disco, usuario, zona horaria, paquetes básicos y cargador de arranque. En Ubuntu Server, por ejemplo, el instalador guía el proceso desde un USB o ISO. En Debian, la guía oficial de instalación documenta los pasos para instalar el sistema según arquitectura.
Opciones importantes durante la instalación
- Nombre del servidor: usa un hostname claro, por ejemplo
srv-web-01. - Usuario inicial: crea un usuario normal con permisos administrativos.
- Red: usa DHCP para laboratorio o IP fija para producción.
- Particionado: separa datos si el servidor será usado seriamente.
- OpenSSH: actívalo si administrarás el servidor remotamente.
- Actualizaciones: aplica parches después del primer inicio.
Consejo para principiantes: en tu primer laboratorio usa una máquina virtual. Así puedes practicar instalación, red, SSH y firewall sin arriesgar tu equipo principal.
Paso 5: actualiza el servidor después del primer inicio
Al iniciar por primera vez, actualiza el sistema. Esto instala parches de seguridad, corrige errores y deja los paquetes en una versión más segura.
# Ubuntu, Debian y derivados sudo apt update sudo apt upgrade -y # Rocky Linux, AlmaLinux, Fedora y derivados sudo dnf upgrade -y # openSUSE sudo zypper refresh sudo zypper update -y
Si se actualizó el kernel o componentes críticos, reinicia:
sudo reboot
Paso 6: configura un usuario administrativo seguro
No es recomendable trabajar todos los días como root. Lo correcto es usar un usuario normal y elevar privilegios con sudo cuando sea necesario.
# Crear usuario en Ubuntu/Debian sudo adduser operador # Agregar a sudo sudo usermod -aG sudo operador # En Rocky/AlmaLinux/Fedora, usar grupo wheel sudo usermod -aG wheel operador # Ver grupos del usuario groups operador
Buena práctica: usa cuentas individuales para cada administrador. Evita cuentas compartidas como admin, soporte o operador si necesitas trazabilidad real.
Paso 7: instala y configura SSH
SSH permite administrar el servidor de forma remota. En servidores reales es una pieza fundamental, pero debe protegerse adecuadamente. Puedes instalar OpenSSH Server si no quedó instalado durante la instalación.
# Ubuntu/Debian sudo apt install openssh-server -y sudo systemctl enable --now ssh # Rocky/AlmaLinux/Fedora sudo dnf install openssh-server -y sudo systemctl enable --now sshd # Ver estado del servicio sudo systemctl status ssh sudo systemctl status sshd
Para conectarte desde otra máquina:
ssh usuario@IP_DEL_SERVIDOR
Importante: antes de cerrar tu sesión actual, prueba que puedes entrar por SSH con el nuevo usuario. Si configuras mal SSH o firewall, podrías quedarte sin acceso remoto.
Paso 8: refuerza la configuración de SSH
Para un servidor expuesto a Internet, SSH debe configurarse con cuidado. La recomendación básica es usar claves SSH, deshabilitar acceso directo de root y limitar autenticación por contraseña si ya tienes claves funcionando.
Edita el archivo de configuración:
sudo nano /etc/ssh/sshd_config
Ajustes recomendados:
PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication no
Reinicia el servicio:
# Ubuntu/Debian sudo systemctl restart ssh # Rocky/AlmaLinux/Fedora sudo systemctl restart sshd
No hagas esto sin probar claves: si deshabilitas contraseñas antes de configurar una clave SSH válida, podrías perder el acceso remoto al servidor.
Paso 9: configura una IP estática o red estable
En un servidor, la red debe ser predecible. En un VPS o cloud, normalmente la IP ya viene asignada. En una red local, puedes usar una IP fija o una reserva DHCP en el router.
Para revisar tu IP actual:
ip addr ip route hostname -I
En Ubuntu Server, la configuración de red suele gestionarse con Netplan. En distribuciones tipo Red Hat, puede administrarse con NetworkManager y nmcli.
Datos de red que debes documentar
- Dirección IP del servidor.
- Máscara o prefijo de red.
- Gateway o puerta de enlace.
- Servidores DNS.
- Nombre del host.
- Interfaces de red disponibles.
Paso 10: activa el firewall
El firewall es una de las primeras capas de defensa. En Ubuntu y Debian, una opción sencilla es UFW. En Rocky Linux, AlmaLinux, Fedora y RHEL, es común usar firewalld.
Opción A: configurar UFW en Ubuntu o Debian
sudo apt install ufw -y # Permitir SSH antes de activar firewall sudo ufw allow OpenSSH # Si tendrás web sudo ufw allow 80/tcp sudo ufw allow 443/tcp # Activar firewall sudo ufw enable # Ver estado sudo ufw status verbose
Opción B: configurar firewalld en Rocky, AlmaLinux o Fedora
sudo systemctl enable --now firewalld # Permitir SSH sudo firewall-cmd --permanent --add-service=ssh # Permitir web sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # Aplicar cambios sudo firewall-cmd --reload # Ver configuración sudo firewall-cmd --list-all
Regla crítica: antes de activar un firewall remoto, permite SSH. Si olvidas abrir SSH, puedes bloquear tu propio acceso al servidor.
Paso 11: administra servicios con systemd
La mayoría de distribuciones modernas usan systemd para administrar servicios. Con systemd puedes iniciar, detener, reiniciar, habilitar, deshabilitar y revisar servicios.
# Ver estado de un servicio sudo systemctl status nginx # Iniciar servicio sudo systemctl start nginx # Reiniciar servicio sudo systemctl restart nginx # Habilitar inicio automático sudo systemctl enable nginx # Deshabilitar inicio automático sudo systemctl disable nginx # Ver servicios activos systemctl --type=service --state=running
Consejo: no dejes servicios activos si no los necesitas. Cada servicio expuesto aumenta la superficie de ataque del servidor.
Paso 12: instala un servidor web básico
Para probar que tu servidor funciona, puedes instalar Nginx o Apache. Ambos son muy usados. Nginx suele ser popular por su rendimiento como servidor web y proxy inverso; Apache destaca por su flexibilidad y amplio ecosistema.
Instalar Nginx
# Ubuntu/Debian sudo apt install nginx -y # Rocky/AlmaLinux/Fedora sudo dnf install nginx -y # Iniciar y habilitar sudo systemctl enable --now nginx # Ver estado sudo systemctl status nginx
Luego abre en el navegador:
http://IP_DEL_SERVIDOR
Instalar Apache
# Ubuntu/Debian sudo apt install apache2 -y sudo systemctl enable --now apache2 # Rocky/AlmaLinux/Fedora sudo dnf install httpd -y sudo systemctl enable --now httpd
Paso 13: revisa logs del sistema
Los logs permiten detectar errores, intentos de acceso, fallas de servicios y actividad anómala. Un administrador Linux debe aprender a leer registros desde el inicio.
# Ver logs generales con journalctl sudo journalctl -xe # Ver logs de un servicio específico sudo journalctl -u ssh sudo journalctl -u nginx # Ver logs en tiempo real sudo journalctl -f # Logs de autenticación en Ubuntu/Debian sudo tail -f /var/log/auth.log # Logs de seguridad en Rocky/AlmaLinux sudo tail -f /var/log/secure
Buena práctica: revisa logs después de instalar servicios, cambiar SSH, modificar firewall o reiniciar el servidor. Los logs suelen decirte exactamente qué falló.
Paso 14: configura hora y zona horaria
La hora correcta es importante para logs, certificados, auditoría, backups y sincronización entre sistemas. Puedes revisar la configuración con:
timedatectl
Para configurar zona horaria:
# Ejemplo para Perú sudo timedatectl set-timezone America/Lima # Activar sincronización NTP si está disponible sudo timedatectl set-ntp true
Paso 15: configura nombre del servidor
El nombre del servidor ayuda a identificarlo en la red, logs, monitoreo y documentación. Usa nombres claros y consistentes.
# Ver hostname actual hostnamectl # Cambiar hostname sudo hostnamectl set-hostname srv-web-01 # Verificar hostnamectl
Recomendación: usa una convención como srv-web-01, srv-db-01, srv-backup-01 o srv-docker-01.
Paso 16: instala herramientas básicas de administración
Un servidor mínimo puede no traer algunas herramientas útiles. Instala utilidades para diagnóstico, red, compresión, monitoreo básico y edición de archivos.
# Ubuntu/Debian sudo apt install curl wget git nano vim htop net-tools unzip zip tar rsync lsof -y # Rocky/AlmaLinux/Fedora sudo dnf install curl wget git nano vim htop net-tools unzip zip tar rsync lsof -y
Herramientas útiles
- curl y wget: descargar o consultar recursos web.
- git: clonar repositorios y gestionar código.
- htop: revisar procesos y consumo.
- lsof: revisar archivos y puertos abiertos.
- rsync: copiar y sincronizar archivos.
- nano/vim: editar archivos de configuración.
Paso 17: revisa puertos abiertos
Después de instalar servicios, revisa qué puertos están escuchando. Un servidor seguro debe exponer solo lo necesario.
sudo ss -tulpen # Alternativa sudo lsof -i -P -n | grep LISTEN
Alerta: si ves puertos de base de datos abiertos a Internet, como 3306, 5432 o 6379, revisa la configuración inmediatamente.
Paso 18: configura copias de seguridad
Un servidor sin copias de seguridad es un riesgo permanente. Los backups deben planificarse desde el inicio, no después del primer incidente.
Para empezar, puedes usar rsync para copiar carpetas importantes a otro disco o servidor:
rsync -avh /var/www/ /backup/var-www/ rsync -avh /etc/ /backup/etc/
Qué respaldar en un servidor Linux
- Archivos de aplicaciones.
- Bases de datos.
- Configuraciones en
/etc. - Certificados SSL.
- Claves de despliegue y configuraciones seguras.
- Scripts de automatización.
- Archivos subidos por usuarios.
- Documentación de instalación y recuperación.
Paso 19: configura tareas programadas con cron
Cron permite ejecutar tareas automáticamente: backups, limpieza de temporales, reportes, scripts de monitoreo o sincronización de archivos.
# Editar cron del usuario actual crontab -e # Ver tareas programadas crontab -l
Ejemplo de tarea diaria a las 2:00 a.m.:
0 2 * * * /usr/local/bin/backup.sh
Paso 20: instala protección básica contra intentos de acceso
Si el servidor estará expuesto a Internet, herramientas como Fail2ban pueden ayudar a bloquear intentos repetidos de autenticación fallida, especialmente sobre SSH.
# Ubuntu/Debian sudo apt install fail2ban -y sudo systemctl enable --now fail2ban # Rocky/AlmaLinux/Fedora sudo dnf install fail2ban -y sudo systemctl enable --now fail2ban # Ver estado sudo systemctl status fail2ban
Importante: Fail2ban ayuda, pero no reemplaza claves SSH, firewall, actualizaciones, usuarios bien administrados y monitoreo.
Checklist final de configuración inicial
| Área | Qué revisar | Comando útil |
|---|---|---|
| Sistema | Actualizaciones aplicadas. | sudo apt upgrade / sudo dnf upgrade |
| Usuarios | Usuario administrativo no root. | groups usuario |
| SSH | Acceso remoto probado y protegido. | systemctl status ssh |
| Firewall | Solo puertos necesarios abiertos. | ufw status / firewall-cmd --list-all |
| Servicios | Servicios activos justificados. | systemctl --type=service --state=running |
| Logs | Errores y accesos revisados. | journalctl -xe |
| Backups | Copias programadas y probadas. | rsync, crontab -l |
Errores comunes al configurar un servidor Linux
Errores que debes evitar
- Usar root para todo.
- No actualizar después de instalar.
- Activar firewall sin permitir SSH.
- Dejar contraseñas débiles.
- No configurar copias de seguridad.
- Exponer bases de datos directamente a Internet.
- No revisar logs.
- Instalar servicios innecesarios.
- No documentar IP, usuarios, servicios y puertos.
- No probar recuperación desde backup.
Recomendamos
- Qué es el kernel Linux y por qué es tan importante en servidores y dispositivos
- Cómo detectar si tu servidor Linux tiene problemas de seguridad
- Guía básica para administrar usuarios y permisos en Linux
- Qué es Docker y por qué se usa tanto junto con Linux
- Qué es una terminal Linux y cómo usarla sin miedo
Conclusión
Instalar y configurar un servidor Linux desde cero es una habilidad fundamental para cualquier persona que quiera aprender administración de sistemas, desarrollo web, DevOps, ciberseguridad, cloud o infraestructura tecnológica. El proceso no termina con la instalación: la verdadera administración empieza cuando configuras usuarios, SSH, firewall, actualizaciones, servicios, logs, backups y monitoreo.
Para principiantes, lo más recomendable es empezar con Ubuntu Server o Debian en una máquina virtual. Luego puedes practicar instalación de servicios, seguridad básica, copias de seguridad y administración remota. Cuando domines esos pasos, estarás mejor preparado para trabajar con servidores reales en VPS, cloud o infraestructura empresarial.
Un servidor Linux bien configurado debe ser simple, actualizado, documentado, monitoreado y protegido. Mientras menos servicios innecesarios tenga y mejor controlados estén los accesos, más fácil será mantenerlo estable y seguro.
Resumen final
Para instalar y configurar un servidor Linux desde cero, elige una distribución estable, instala el sistema, actualiza paquetes, crea un usuario administrativo, configura SSH, activa firewall, revisa servicios con systemd, instala herramientas básicas, controla puertos abiertos, configura logs, establece copias de seguridad y documenta todo. La clave es aplicar seguridad desde el primer día y administrar solo los servicios necesarios.


