[TOC] # Instalación y configuración de Fail2ban <p style="text-align: justify;"> Ahora vamos a instalar y configurar Fail2ban es una herramienta de seguridad que monitorea los logs de nuestro sistema en tiempo real. Cuando detecta patrones sospechosos (por ejemplo, múltiples intentos fallidos de inicio de sesión), bloquea temporalmente las IPs responsables usando reglas de firewall. Es especialmente útil para proteger servicios como SSH, Postfix, Dovecot y Rainloop. Instalar Fail2ban: sudp apt update sudo apt install fail2ban -y Configurar Fail2ban: sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.orig sudo vi /etc/fail2ban/jail.d/jail-debian.local Editamos: [DEFAULT] ignoreip = 127.0.0.1/8 10.24.153.0/24 # IPs que nunca deben ser bloqueadas bantime = 600 # Tiempo de bloqueo (en segundos) maxretry = 3 # Número máximo de intentos fallidos antes de bloquear destemail = admin@ccuellar.test # Email donde recibirás notificaciones sender = Fail2Ban # Remitente de las notificaciones action = %(action_mw)s # Acción predeterminada (bloquea la IP y envía un email) [sshd] port = 22 maxretry = 3 [dovecot] enabled = true port = pop3,pop3s,imap,imaps filter = dovecot logpath = /var/log/dovecot.log maxretry = 3 [postfix] enabled = true port = smtp,ssmtp filter = postfix logpath = /var/log/mail.log maxretry = 3 [postfix-sasl] enabled = true port = smtp,ssmtp,submission filter = postfix-sasl logpath = /var/log/mail.log maxretry = 3 [apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/apache*/*error.log maxretry = 3 Proteger Rainloop: sudo vi /var/www/html/email.ccuellar.test/data/_data_/_default_/configs/application.ini Editamos: time_offset = "2" # Ajusta esto según zona horaria auth_logging = On auth_logging_filename = "fail2ban/auth.log" auth_logging_format = "{date:Y-m-d H:i:s} Auth failed: ip:{request:ip} user:{imap:login} host:{imap:host} port:{imap:port}" Configurar Fail2ban para Rainloop: sudo vi /etc/fail2ban/jail.d/rainloop-auth.conf Añadimos: [rainloop-auth] enabled = true filter = rainloop-auth port = http,https logpath = /var/www/html/email.ccuellar.test/data/_data_/_default_/logs/fail2ban/auth.log bantime = 600 maxretry = 3 Crear el filtro para Rainloop: sudo vi /etc/fail2ban/filter.d/rainloop-auth.conf Añadimos: [Definition] failregex = Auth failed\: ip\:<HOST> user\:.* host\:.* port\:.*$ ignoreregex = Reiniciamos los servicios: sudo systemctl restart fail2ban sudo fail2ban-client status sudo fail2ban-client status sshd Desbloquear una IP: sudo fail2ban-client set postfix-sasl unbanip X.X.X.X # Prueba del servicio con un buzón nuevo <p style="text-align: justify;"> Ahora vamos a probar nuestro servidor de correo. Instalar herramientas para enviar correos: sudo apt update sudo apt install mailutils -y <p style="text-align: justify;"> Durante la instalación, te pedirá que configures Postfix nuevamente. Selecciona la opción "Configuración local" si solo vas a usarlo para pruebas locales. Enviar un correo de prueba: echo "Esto es un correo de prueba enviado desde mi servidor de correo." | sudo mail -s "Correo de prueba" carla@ccuellar.test-aFrom:admin@ccuellar.test Verificar que el correo se envió correctamente: sudo tail -f /var/log/mail.log Observamos: status=sent (250 2.0.0 OK ...) Probar la recepción de correos: Una vez enviado, verifiquemos que llegó al buzón usando el comando mail: sudo mail -f /var/mail/vhosts/ccuellar.test/email/ Prueba el puerto SMTP: telnet localhost 25 🤗 --- ## [👈Anterior sección](https://hackmd.io/@ccuellar/Bkx1l19Tye) 😄 [Índice de secciones aquí](https://hackmd.io/@ccuellar/rJ73y6FpJe)