En esta guía completa aprenderemos a instalar y configurar servidor web Linux desde cero. Esta tarea puede parecer intimidante al principio, pero con un enfoque estructurado, el proceso se vuelve mucho más sencillo. Para ello, exploraremos los pasos esenciales para instalar, asegurar y preparar tu servidor Linux como un servidor web funcional y seguro.
1. Preparativos para instalar y configurar servidor web
Antes de comenzar, asegúrate de contar con lo siguiente:
Distribución de Linux
Elige una distribución adecuada según tus necesidades:
- Ubuntu Server: Ideal para principiantes gracias a su facilidad de uso.
- Debian: Estable y minimalista. Perfecta para quienes buscan robustez.
- CentOS/AlmaLinux: Focalizada en entornos empresariales, basada en Red Hat.
Acceso al Servidor
- Servidor local: Necesitarás una máquina física.
- Servidor remoto: Asegúrate de tener credenciales SSH para acceder.
Conexión a Internet
Una conexión estable es clave para instalar actualizaciones y paquetes adicionales.
2. Instalación del Sistema Operativo
Paso 1: Descarga de la ISO
Visita el sitio oficial de la distribución elegida y descarga la versión para servidores.
Paso 2: Crear un Medio de Instalación
Utiliza herramientas como Rufus (Windows) o dd (Linux/Mac) para crear un USB booteable.
Paso 3: Configuración de BIOS/UEFI
Cambia el orden de arranque para iniciar desde el USB.
Paso 4: Instala Linux
- Sigue las instrucciones del instalador.
- Configura un usuario administrador (root o sudo).
- Selecciona software opcional como servidores SSH o bases de datos.
3. Configuración Inicial del Servidor Web
3.1 Actualiza el Sistema
Después de la instalación, mantén tu servidor actualizado:
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo dnf update -y # Red Hat/CentOS
3.2 Configura el Acceso SSH
Asegúrate de que el servidor SSH esté instalado y activo:
sudo apt install openssh-server # Debian/Ubuntu
sudo dnf install openssh-server # Red Hat/CentOS
sudo systemctl enable ssh
sudo systemctl start ssh
Cambia el puerto predeterminado(opcional):
- Edita el archivo de configuración:
sudo nano /etc/ssh/sshd_config
- Cambia el puerto 22 por otro, por ejemplo
Port 2222
- Reinicia el servicio:
sudo systemctl restart ssh
4. Configuración de Seguridad
4.1 Configura el Firewall
Instala un firewall y establece reglas básicas:
sudo apt install ufw # Debian/Ubuntu
sudo dnf install firewalld # Red Hat/CentOS
Permite el acceso necesario:
sudo ufw allow 2222/tcp # Puerto SSH
sudo ufw allow http # Tráfico HTTP
sudo ufw allow https # Tráfico HTTPS
sudo ufw enable # Activa el firewall
4.2 Crea un Usuario No-Root
Evita usar la cuenta root directamente. Crea un usuario con privilegios de administrador:
sudo adduser nuevo_usuario
sudo usermod -aG sudo nuevo_usuario
4.3 Instala Fail2Ban
Protege tu servidor contra ataques de fuerza bruta:
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
5. Preparar el Servidor Web para su Uso
5.1 Configura un Servidor Web
Instala y activa un servidor web:
sudo apt install apache2 # Debian/Ubuntu
sudo dnf install httpd # Red Hat/CentOS
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl status apache2
5.2 Configura Bases de Datos
Instala un sistema de bases de datos como MySQL o MariaDB:
sudo apt install mysql-server # Debian/Ubuntu
sudo dnf install mariadb-server # Red Hat/CentOS
Asegura la instalación:
sudo mysql_secure_installation
5.3 Configura un Dominio o SSL
Configura un dominio apuntando a la IP del servidor e instala certificados SSL gratuitos con Certbot:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
6. Monitoreo y Mantenimiento
Herramientas de Monitoreo
Usa herramientas como:
- htop/top: Monitorea el uso de recursos.
- vnstat: Monitorea el uso de red.
Configura Copias de Seguridad
Utiliza herramientas como rsync o soluciones automatizadas como Duplicity para respaldar datos.
Plantear utilizar algún script en Bash para automatizar tareas como gestión de backup, análisis de logs…
Automatiza Tareas con Cron
Crea tareas automatizadas editando el archivo crontab:
sudo crontab -e
Para instalar y configurar servidor web con esta simple guía podrás hacerlo.
Pingback: Qué es un Servidor: 7 Usos Clave que Debes Conocer : Kamilinux