should I use fail2ban or iptables?
Você usa o fail2ban além de uma solução de firewall, para estender sob demanda as regras de firewall existentes com regras para bloquear o ip específico -endereços de sistemas que realizam ações indesejáveis em outros serviços públicos. Eles trabalham em conjunto uns com os outros.
Simplificado: um firewall só vê conexões e pacotes de rede e pode ter alguma noção dos padrões, mas não tem a percepção do nível do aplicativo para distinguir solicitações válidas e desejadas de solicitações mal-intencionadas, mal-formadas e indesejadas. Por exemplo, seu firewall não pode dizer a diferença entre um monte de solicitações HTTP API e um número incorreto de tentativas de login causadas por adivinhação de senha de força bruta na sua página de administração do Wordpress, para o firewall ambas são conexões TCP para a porta 80 ou 443.
O Fail2ban é uma abordagem genérica e extensível para fornecer esse insight de nível de aplicativo ao seu firewall, embora de maneira indireta.
Frequentemente, os aplicativos registram e registram solicitações mal-intencionadas, mal-intencionadas e indesejáveis, mas raramente têm a capacidade nativa de evitar mais abusos. Embora seja ligeiramente dissociado, o Fail2ban pode, então, agir sobre esses eventos maliciosos registrados e limitar os danos e evitar mais abusos, geralmente reconfigurando dinamicamente seu firewall para negar acesso adicional. Em outras palavras, o Fail2ban fornece aos seus aplicativos existentes, sem modificá-los, os meios para se defender do abuso.
Um método diferente para fornecer aos firewalls informações sobre o nível do aplicativo seria por meio de um sistema de detecção / prevenção de invasões .
Por exemplo, um servidor da Web é um serviço público comum e, no seu firewall, as portas TCP 80 e 443 estão abertas para a Internet como um todo. Normalmente, você não tem nenhuma limitação de taxa nas portas HTTP / HTTPS porque vários usuários válidos podem ter uma única origem quando estão, por exemplo, atrás de um gateway NAT ou de um proxy da web.
Quando você detecta ações indesejáveis e / ou mal-intencionadas em seu servidor da Web, usa o fail2ban para automatizar o bloqueio desse ofensor (bloqueia-os completamente ou bloqueia apenas o acesso deles às portas 80 e 443).
Por outro lado, o acesso SSH não é um serviço público, mas se você não estiver em condições de restringir o acesso SSH em seu firewall apenas a intervalos de endereço IP listados em branco, as conexões de entrada limitadoras de taxa serão uma maneira de desacelerar ataques de força bruta. Mas o seu firewall ainda não consegue distinguir entre o usuário bob fazendo o login com sucesso 5 vezes porque ele está executando ansiosos playbooks e 5 tentativas fracassadas de fazer login como root por um bot.