Los servidores Linux son conocidos por su seguridad y estabilidad, pero una mala configuración puede dejarlos vulnerables a ataques cibernéticos. Proteger tu servidor Linux no solo evita pérdida de datos y accesos no autorizados, sino que también mejora su rendimiento y confiabilidad.
En esta guía detallada, aprenderás cómo evitar los errores más comunes en la seguridad de un servidor Linux y aplicar buenas prácticas para mantenerlo seguro.
1. Mantén el Sistema y Paquetes Actualizados
No actualizar el sistema es uno de los errores más comunes en servidores Linux. Un sistema desactualizado puede contener vulnerabilidades que los hackers explotan fácilmente.
✅ Cómo Mantener Linux Actualizado
Ejecuta estos comandos regularmente para actualizar tu servidor:
📌 En distribuciones basadas en Debian (Ubuntu, Debian, etc.):
sudo apt update && sudo apt upgrade -y
📌 En distribuciones basadas en RedHat (CentOS, Fedora, etc.):
sudo dnf update -y
📌 Para Arch Linux y derivados:
sudo pacman -Syu
💡 Consejo: Configura actualizaciones automáticas con:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
Puede leer también | Garantizando la seguridad en Linux: Estrategias para protegerse de los fallos del Kernel
2. Usa Contraseñas Fuertes y Autenticación Segura
Muchos ataques ocurren por contraseñas débiles. Evita este error implementando una política de contraseñas seguras.
✅ Buenas Prácticas
✔ Usa contraseñas de al menos 12 caracteres con letras, números y símbolos.
✔ Usa un gestor de contraseñas como Bitwarden o KeePassXC.
✔ Deshabilita el acceso con contraseña en SSH y usa autenticación con claves SSH.
Para generar una clave SSH, usa:
ssh-keygen -t rsa -b 4096
Luego, copia la clave pública a tu servidor:
ssh-copy-id usuario@servidor>
Para deshabilitar la autenticación con contraseña, edita el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
Cambia o añade las siguientes líneas:
nginx
PasswordAuthentication no PermitRootLogin no
Luego, reinicia el servicio SSH:
sudo systemctl restart ssh
3. Restringe el Acceso al Servidor
No todos los usuarios deben tener acceso total al servidor. Es importante restringir privilegios para minimizar riesgos.
✅ Cómo Restringir el Acceso
✔ Usa usuarios sin privilegios administrativos para tareas diarias.
✔ Usa sudo solo cuando sea necesario.
✔ Restringe el acceso SSH solo a usuarios autorizados en /etc/ssh/sshd_config:
nginx
AllowUsers usuario1 usuario2
✔ Bloquea el acceso al usuario root con:
PermitRootLogin no
✔ Cambia el puerto de SSH para reducir intentos de acceso:
yaml
Port 2222
Luego, reinicia SSH con:
sudo systemctl restart ssh
Puede leer también | Qué políticas de seguridad debes aplicar en una nueva Instalación de Linux
4. Configura un Firewall y Control de Tráfico
No tener un firewall activo es una gran brecha de seguridad. Un firewall filtra el tráfico no deseado y protege contra ataques.
✅ Cómo Configurar un Firewall con UFW (Ubuntu/Debian)
1️⃣ Instalar UFW:
sudo apt install ufw -y
2️⃣ Permitir conexiones SSH:
sudo ufw allow 2222/tcp
3️⃣ Habilitar el firewall:
sudo ufw enable
4️⃣ Verificar reglas activas:
sudo ufw status verbose
📌 Para servidores con CentOS o Fedora, usa firewalld:
sudo systemctl enable firewalld
sudo systemctl start firewalld
Puede leer también | 10 Comandos de seguridad de Linux que todo nuevo usuario debe conocer
5. Configura un IDS/IPS para Detectar Ataques
Un Sistema de Detección y Prevención de Intrusos (IDS/IPS) te alerta sobre posibles ataques.
✅ Instalando Fail2Ban para Proteger tu Servidor
📌 Instalar Fail2Ban en Debian/Ubuntu:
sudo apt install fail2ban -y
📌 Instalar en CentOS/Fedora:
sudo dnf install fail2ban -y
✔ Configura Fail2Ban para proteger SSH:
sudo nano /etc/fail2ban/jail.local
Añade:
ini
[sshd] enabled = true port = 2222 maxretry = 5 bantime = 3600
Guarda los cambios y reinicia:
sudo systemctl restart fail2ban
Para ver los intentos bloqueados:
sudo fail2ban-client status sshd
Puede leer también | Ciberseguridad en Linux: Mejores prácticas para proteger tus datos
6. Usa SELinux o AppArmor para Mayor Seguridad
📌 En Fedora/CentOS (SELinux):
✔ Activa SELinux con:
sudo setenforce 1
✔ Verifica el estado de SELinux:
sestatus
📌 En Ubuntu/Debian (AppArmor):
✔ Instala AppArmor:
sudo apt install apparmor -y
✔ Habilita AppArmor:
sudo systemctl enable apparmor --now
7. Monitorea tu Servidor Constantemente
La supervisión en tiempo real te ayuda a detectar comportamientos sospechosos antes de que se conviertan en problemas.
✅ Herramientas de Monitoreo
✔ HTOP: Ver procesos en tiempo real.
sudo apt install htop -y && htop
✔ Netstat: Ver conexiones activas.
netstat -tulnp
✔ Chkrootkit: Detectar malware en Linux.
sudo apt install chkrootkit -y sudo chkrootkit
✔ Lynis: Auditoría de seguridad en servidores Linux.
sudo apt install lynis -y sudo lynis audit system
Conclusión
🔒 Proteger tu servidor Linux no es difícil, pero requiere disciplina y buenas prácticas.
📌 Mantén actualizado tu sistema y usa autenticación con claves SSH.
📌 Configura un firewall y usa herramientas como Fail2Ban para evitar ataques.
📌 Monitorea constantemente para detectar actividad sospechosa.
💡 Con estas medidas, tu servidor estará mejor protegido contra amenazas y ataques cibernéticos.