Gostaria de escolher o cérebro da comunidade em relação à segurança do servidor linux, especificamente a ataques de força bruta e o uso de fail2ban vs iptables personalizados .
Existem algumas perguntas semelhantes por aí, mas nenhuma delas aborda o tópico para minha satisfação. Em resumo, estou tentando determinar a melhor solução para proteger servidores Linux expostos à Internet (executando os serviços usuais, ssh, web, correio), contra ataques de força bruta.
Eu tenho um controle decente sobre a segurança do servidor, ou seja, bloqueando o ssh, não permitindo logins de raiz ou senha, alterando a porta padrão, garantindo que o software esteja atualizado, verificando arquivos de log, permitindo apenas que certos hosts acessem o servidor e fazendo uso da segurança ferramentas de auditoria, como Lynis ( https://cisofy.com/lynis/ ), para conformidade geral com a segurança, portanto, essa pergunta não é necessariamente relativa a isso, embora as contribuições e os conselhos sejam sempre bem-vindos .
Minha pergunta é qual solução devo usar (fail2ban ou iptables) e como devo configurá-la ou devo usar uma combinação de ambas para proteger contra ataques de força bruta?
Existe uma resposta interessante sobre o tópico ( Denyhosts x fail2ban x iptables - a melhor maneira de impedir logons de força bruta? ). A resposta mais interessante para mim pessoalmente foi ( https://serverfault.com/a/128964 ), e esse roteamento de iptables ocorre no kernel em oposição ao fail2ban, que utiliza ferramentas do modo de usuário para analisar arquivos de log. O Fail2ban usa o iptables, é claro, mas ainda precisa analisar os arquivos de log e corresponder a um padrão até executar uma ação.
Faz sentido, então, usar o iptables e limitar a taxa ( https://www.rackaid.com/blog/how-to-block-ssh-brute-force-attacks/ ) para descartar solicitações de um IP por um período tempo que faz muitas tentativas de conexão durante um período específico, independentemente de qual protocolo ele estava tentando se conectar? Nesse caso, existem algumas idéias interessantes sobre o uso de drop vs rejeite para esses pacotes aqui ( http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject ), alguma opinião sobre isso?
O Fail2ban permite a configuração personalizada na forma de poder escrever ' regras ' personalizadas para serviços que podem não ser endereçados na configuração padrão. É fácil de instalar e configurar e é poderoso, mas poderia ser um exagero se tudo o que estou tentando conseguir é ' bloquear ' um IP do servidor se eles fizerem duas tentativas de acesso com falha em qualquer serviço / protocolo em um valor x de tempo?
O objetivo aqui é abrir relatórios diários do logwatch e não precisar rolar pelas páginas de tentativas de falha na conexão com o servidor.
Obrigado por reservar um tempo.