Me gustaría elegir el cerebro de la comunidad con respecto a la seguridad del servidor Linux, específicamente con respecto a los ataques de fuerza bruta y el uso de fail2ban vs iptables personalizadas .
Hay algunas preguntas similares, pero ninguna de ellas aborda el tema a mi entera satisfacción. En resumen, estoy tratando de determinar la mejor solución para proteger los servidores de Linux expuestos a Internet (ejecutando los servicios habituales, ssh, web, correo), de los ataques de fuerza bruta.
Tengo un buen manejo de la seguridad del servidor, es decir, bloquear ssh al no permitir inicios de sesión de root o contraseña, cambiar el puerto predeterminado, garantizar que el software esté actualizado, verificar los archivos de registro, solo permitir que ciertos hosts accedan al servidor y hacer uso de la seguridad herramientas de auditoría como Lynis ( https://cisofy.com/lynis/ ), para el cumplimiento de la seguridad general, por lo que esta pregunta no se refiere necesariamente a eso, aunque las sugerencias y consejos siempre son bienvenidos .
Mi pregunta es qué solución debo usar (fail2ban o iptables), y cómo debo configurarla, o debo usar una combinación de ambas para protegerme contra ataques de fuerza bruta.
Hay una respuesta interesante con respecto al tema ( Denyhosts vs fail2ban vs iptables: ¿la mejor manera de evitar inicios de sesión de fuerza bruta? ). La respuesta más interesante para mí personalmente fue ( https://serverfault.com/a/128964 ), y que el enrutamiento de iptables se produce en el núcleo en lugar de fail2ban, que utiliza herramientas de modo de usuario para analizar archivos de registro. Fail2ban utiliza iptables, por supuesto, pero aún tiene que analizar los archivos de registro y hacer coincidir un patrón hasta que realice una acción.
¿Tiene sentido usar iptables y limitar la velocidad ( https://www.rackaid.com/blog/how-to-block-ssh-brute-force-attacks/ ) para descartar solicitudes de una IP por un período de tiempo que hace demasiados intentos de conexión durante un período específico independientemente del protocolo al que intentaba conectarse? Si es así, entonces hay algunas ideas interesantes sobre el uso de caída versus rechazo para esos paquetes aquí ( http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject ), ¿alguna idea al respecto?
Fail2ban permite una configuración personalizada en la forma de poder escribir ' reglas ' personalizadas para servicios que podrían no abordarse en la configuración predeterminada. Es fácil de instalar y configurar y es potente, pero podría ser una exageración si todo lo que estoy tratando de lograr es ' bloquear ' una IP del servidor si hacen 2 intentos de acceso fallidos en cualquier servicio / protocolo por una cantidad x ¿de tiempo?
El objetivo aquí es abrir informes diarios de logwatch y no tener que desplazarse por las páginas de intentos de conexiones fallidas con el servidor.
Gracias por tomarse el tiempo.