El fail2ban integrado de mailcow detiene los ataques más ruidosos — diez inicios de sesión fallidos en diez minutos suponen un bloqueo de treinta minutos — y luego los olvida. Todo lo más discreto pasa: una dirección que prueba una contraseña cada pocos minutos durante todo el día, una botnet que reparte sus intentos entre cientos de direcciones, un escáner que recorre tu webmail buscando /.env, un buzón cuya contraseña se adivinó y que ahora envía spam. Este módulo lo muestra todo en System → Security, guarda el historial y actúa cuando tú se lo permites.
Qué hace
- Un historial de ataques: cada minuto lee lo que mailcow ya registra — dovecot, postfix, SOGo y fail2ban desde el redis de mailcow, el servidor web y los inicios de sesión fallidos en la interfaz / API de mailcow a través del agente del host del Toolkit — y lo guarda en la base de datos de mailcow (90 días por defecto). Los registros de mailcow solo conservan las últimas líneas; este historial se queda.
- Un resumen con los totales de las últimas 24 horas, un gráfico de 14 días, las direcciones más activas (con un botón para bloquearlas), los buzones atacados y los incidentes activos. Un escudo rojo junto al menú System muestra los incidentes graves abiertos en todas las páginas de administración.
- 13 reglas para lo que fail2ban deja pasar: fuerza bruta lenta, password spraying (una dirección, muchos buzones), reincidentes (direcciones que fail2ban bloquea una y otra vez), fuerza bruta contra SOGo / la interfaz de mailcow / la API, escaneos de exploits web y de 404, sondeos de relay, escaneos de protocolo y avalanchas de spam. Los umbrales, ventanas, acciones y duraciones de bloqueo se pueden cambiar en cada regla.
- Buzones comprometidos: un pico de envíos, inicios de sesión desde muchas direcciones y un inicio de sesión desde una dirección que antes había fallado en el buzón — una contraseña que probablemente se adivinó.
- Bloqueos a través del propio mailcow: con las acciones automáticas activadas, una dirección entra en la lista de bloqueo del fail2ban de mailcow durante el tiempo que fija la regla; netfilter la aplica en todos los puertos de mailcow en menos de un minuto, y la ves en la propia página Fail2ban de mailcow. Para hosts web detrás del proxy de Cloudflare, el bloqueo puede ser además una IP Access Rule de Cloudflare a nivel de cuenta.
- Acciones sobre la cuenta con las propias funciones de mailcow: impedir el inicio de sesión (el buzón sigue recibiendo correo), cerrar las sesiones IMAP / POP3, exigir un cambio de contraseña, limitar el envío.
- Alertas por correo y Telegram a partir de la gravedad que elijas, con un límite por hora, y un resumen diario opcional.
Pensado para no dejarte fuera
- Solo vigilancia por defecto: cada incidente dice qué se habría hecho; activas las acciones automáticas cuando confíes en las reglas.
- Nunca se bloquean automáticamente: las direcciones privadas y reservadas, tu lista de permitidos, la lista de permitidos del fail2ban de mailcow, las direcciones del propio servidor y — activado por defecto — las direcciones que iniciaron sesión correctamente en un buzón en los últimos 30 días.
- Un bloqueo que quitas en la página Fail2ban de mailcow cuenta como levantado. Los bloqueos caducan a su hora, incluso sin licencia, y la desinstalación los levanta todos.
- Cada acción — tuya o del módulo — queda en el registro de auditoría.
Requisitos
- mailcow-dockerized con el mailcow Toolkit 0.6.0 o más reciente de MediaLab Works (este producto es uno de los módulos de ese paquete, con su propia licencia).
- Acceso root en el host para instalar el Toolkit; el servidor debe llegar a
medialab.workspor HTTPS para la comprobación de la licencia. - El contenedor netfilter de mailcow en marcha (es el que aplica los bloqueos). Con Manage external activado, tu propio cortafuegos tiene que aplicar la lista de mailcow.
- Opcional: un token de Cloudflare con Account → Account Firewall Access Rules → Edit; un token de bot de Telegram para las alertas.
- Código abierto (GPL-3.0): recibes el código fuente completo.
Privacidad
Todo queda en tu servidor: registros, direcciones, nombres de buzones y el historial se guardan en tu base de datos de mailcow y nunca se envían a medialab.works. Las alertas solo van a la dirección de correo y al chat de Telegram que configures.
Licencia
Una licencia por servidor mailcow, suscripción mensual o anual o de por vida, con 30 días de prueba gratis; también forma parte del paquete para mailcow. Sin licencia válida se detienen la detección, los bloqueos y las alertas, y no se borra nada. Ver Precios y la guía de instalación y uso.
