En un mundo cada vez más conectado, la seguridad en el acceso remoto a nuestros servidores es una prioridad máxima. SSH (Secure Shell) es un protocolo que permite a los usuarios conectarse de manera segura a un servidor sobre una red no segura, pero es igualmente un blanco común de ataques por fuerza bruta. Una forma eficaz de protegerse contra estos ataques es mediante el uso de Fail2Ban, un marco de software de prevención de intrusiones. Este artículo está diseñado para ser accesible para los recién llegados al mundo de Ubuntu y la seguridad de servidores, al tiempo que proporciona una visión técnica detallada.
Introducción a SSH y sus vulnerabilidades
SSH permite el acceso remoto a un servidor para realizar tareas como la transferencia de archivos y la ejecución de comandos a través de un canal cifrado. Aunque SSH incluye fuertes medidas de seguridad, como cifrado de datos y autenticación basada en llaves, no es inmune a los ataques, especialmente los de fuerza bruta, donde se intentan múltiples combinaciones de nombres de usuario y contraseñas hasta que se consigue acceso.
Qué es Fail2Ban?
Fail2Ban es un sistema de prevención de intrusiones que monitoriza los registros de sistema para detectar patrones de comportamiento malicioso, como intentos fallidos de acceso SSH repetidos. Al detectar estos patrones, Fail2Ban puede bloquear la dirección IP del atacante temporal o permanentemente, reduciendo significativamente el riesgo de un acceso no autorizado.
Instalación y configuración de Fail2Ban en Ubuntu 23.10
Antes de comenzar, asegúrate de que tu sistema está actualizado:
sudo apt update && sudo apt upgrade -y
Paso 1: Instalar Fail2Ban
Fail2Ban se puede instalar directamente desde los repositorios de Ubuntu:
sudo apt install fail2ban -y
Una vez instalado, Fail2Ban se iniciará automáticamente. Puedes verificar su estado con:
sudo systemctl status fail2ban
Paso 2: Configurar Fail2Ban para SSH
Fail2Ban utiliza “cárceles” para definir las reglas de seguridad por servicio. Cada celda especifica el servicio, el archivo de registro a monitorear y las acciones a realizar cuando se detecta actividad maliciosa.
- Crea un archivo de configuración local para evitar perder cambios durante una actualización del paquete:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Edita la configuración de la cárcel: Abre el archivo con un editor de texto:
sudo nano /etc/fail2ban/jail.local
Busca la sección[sshd]
y asegúrate de que esté habilitada y configurada adecuadamente. Por ejemplo:[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 3600
- enabled: Activa la cárcel.
- port: Especifica el puerto de SSH (el predeterminado es 22).
- filter: Utiliza el filtro
sshd
, definido en/etc/fail2ban/filter.d/sshd.conf
, que contiene los patrones a buscar. - logpath: Indica el archivo de registro de SSH.
- maxretry: La cantidad de intentos fallidos de inicio de sesión antes de establecer un bloqueo.
- bantime: Duración (en segundos) que la IP está bloqueada.
- Reinicia Fail2Ban para aplicar los cambios:
sudo systemctl restart fail2ban
Paso 3: Probar Fail2Ban
Para comprobar si Fail2Ban está bloqueando correctamente una dirección IP después de repetidos intentos fallidos de inicio de sesión, puedes intentar iniciar sesión en tu servidor SSH desde otra máquina con credenciales incorrectas. Después de superar el límite de maxretry
, la IP debería estar bloqueada, evitando más intentos.
fail2ban-client status sshd
Este comando muestra el estado actual de la cárcel de SSH, incluyendo las IP bloqueadas.
Este artículo ha sido diseñado para brindarte las herramientas y conocimientos necesarios para comenzar a proteger tu servidor SSH en Ubuntu 23.10 utilizando Fail2Ban. Para obtener más información sobre servicios avanzados de seguridad y hospedaje, considera explorar las soluciones que ofrece Shape.host, especialmente en lo que respecta a Cloud VPS, que proporcionan un ambiente controlado y seguro para tus aplicaciones y datos.