Endurecer un servidor web Linux: una base práctica
La lista corta de controles que aplico a cada servidor nuevo antes de instalar nada más.
En esta página (7)
Un servidor nuevo recibe sondeos pocos minutos después de obtener una IP pública. La mayoría de las intrusiones que he limpiado no eran ingeniosas: credenciales débiles, software desactualizado o servicios que nunca debieron ser accesibles desde internet. Esta es la base que aplico antes de instalar nada más.
1. Primero parchear, después automatizar
Actualiza todo una vez a mano y deja que el sistema aplique las actualizaciones de seguridad por sí solo.
apt update && apt full-upgrade -y
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
2. Bloquear SSH
Solo autenticación por clave, sin acceso directo como root y una lista corta de usuarios permitidos.
# /etc/ssh/sshd_config.d/10-hardening.conf
PermitRootLogin no
PasswordAuthentication no
MaxAuthTries 3
AllowUsers deploy
Ejecuta siempre sshd -t antes de recargar y mantén abierta tu sesión actual hasta que una segunda sesión demuestre que aún puedes entrar.
3. Cortafuegos con denegación por defecto
Solo debe ser accesible lo que puedas nombrar.
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80,443/tcp
ufw enable
4. Reducir la superficie de ataque
Lista lo que escucha y elimina lo que no puedas justificar.
ss -tulpn
systemctl list-unit-files --state=enabled
Las bases de datos y cachés (MySQL, Redis, Memcached) deben escuchar en 127.0.0.1 o en una red privada, nunca en una interfaz pública.
5. Frenar la fuerza bruta
fail2ban con la jail sshd cubre el caso común. Mantén un tiempo de bloqueo que importe y añade tu propia dirección a la lista blanca.
6. Aislar los sitios entre sí
Da a cada sitio su propio usuario de sistema y su pool de PHP-FPM, para que el compromiso de una aplicación no se convierta en el de todas. Desactiva funciones que las aplicaciones web rara vez necesitan, como exec, shell_exec y proc_open.
7. Monitorizar, respaldar y probar la restauración
El endurecimiento reduce la probabilidad de un incidente; la monitorización y las copias verificadas deciden lo grave que será. Configura alertas para servicios caídos y presión de disco y memoria, y asegúrate de que al menos una copia vive fuera del servidor.
Aún no hay comentarios. Sé el primero en comentar.