Configuremos Fail2Ban, este servicio le permite proteger el servidor de inundaciones, adivinando contraseñas para servicios. Miles de servicios de terceros acceden a los servidores todos los días, y algunos de ellos son maliciosos. Con la ayuda de Fail2Ban, bloquearemos las direcciones IP después de varios intentos fallidos de autorización.
Esta guía asume que ya ha configurado el servidor de correo y que necesita instalar una protección contra la adivinación de contraseñas y otras actividades de red no deseadas. Puede encontrar más información sobre cómo configurar un servidor de correo aquí:
También puede solicitar un VPS con un sistema operativo preconfigurado y obtener un servidor de correo corporativo listo para usar por el precio de un servidor VPS.
1. Instalar el servicio Fail2Ban
apt install fail2ban
Editemos la configuración
vi /etc/fail2ban/jail.d/defaults-debian.conf
[sshd]
enabled = true
[postfix]
enabled = true filter = postfix port = smtp,465,submission,imap,imaps,pop3,pop3s action = iptables[name=Postfix, port=smtp, protocol=tcp] logpath = /var/log/mail.log bantime = 120m maxretry = 3 findtime = 60m
En esta configuración, hemos habilitado la protección de los servicios ssh y postfix, que procesarán el archivo de registro y bloquearán las direcciones IP en varios intentos de autorización fallidos.
Para verificar si una coincidencia funciona, use el comando
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf
Usamos un filtro predeterminado listo para usar y, en nuestro caso, resultó funcionar de inmediato.
2. Inicio del servicio
systemctl enable --now fail2ban
Iniciamos el servicio y lo agregamos al inicio automático.
Ahora puedes consultar el registro:
more /var/log/fail2ban.log
3. Gestión De Servicios
Para ver el estado, así como la última actividad, utilice el comando
fail2ban-client status - Mostrará todas las cárceles y su estado.
fail2ban-client status postfix - Mostrará la actividad de la cárcel, incluidas las direcciones IP actualmente bloqueadas.
Para desbloquear una dirección IP, use el comando
fail2ban-client set postfix unbanip xxx.xxx.xxx.xxx
Donde: postfix es el nombre de la cárcel y xxx.xxx.xxx.xxx es la dirección IP de la lista #fail2ban-client status postfix
4. Agregar cárcel para la autorización de Rouncube
Agregar al archivo
vi /etc/fail2ban/jail.d/defaults-debian.conf
[roundcube-auth]
enabled = true
filter = roundcube-authport = http,https
action = iptables[name=Roundcube-auth, port=http, protocol=tcp]logpath = /usr/share/nginx/html/webmail/logs/errors.log
bantime = 120mmaxretry = 3
findtime = 60m
Con tres intentos fallidos de autorización en el correo web, bloqueamos el acceso durante 2 horas.
Reiniciemos el servicio:
service fail2ban restart
La configuración del filtro está completa.