Você pode usar o ufw e o fail2b juntos, mas, como indicado anteriormente, a ordem das regras (ufw) é o que é importante.
Fora da caixa, o fail2ban usa o iptables e insere regras primeiro na cadeia INPUT. Isso não causará nenhum dano ou conflito com a ufw.
Se você deseja integrar totalmente o fail2ban para usar o ufw (em vez do iptables). Você precisará editar vários arquivos, incluindo
/etc/fail2ban/jail.local
jail.local é onde você define seus serviços, incluindo em qual porta eles estão ouvindo (pense em alterar o ssh para uma porta não padrão) e qual ação tomar.
** Por favor, note *: Nunca edite jail.conf , suas alterações devem ser feitas em jail.local
! Esse arquivo começa com isto:
# Changes: in most of the cases you should not modify this
# file, but provide customizations in jail.local file,
# or separate .conf files under jail.d/ directory
Usando o ssh como exemplo, observe também a definição de uma porta não padrão =)
[ssh]
enabled = true
banaction = ufw-ssh
port = 2992
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Você configura o fail2ban para usar o ufw in (um arquivo .conf para cada serviço)
/etc/fail2ban/action.d/ufw-ssh.conf
A sintaxe é
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ufw insert 1 deny from <ip> to any app OpenSSH
actionunban = ufw delete deny from <ip> to any app OpenSSH
Observação: configure o fail2ban para usar o ufw e inserir novas regras FIRST usando a sintaxe "insert 1". A exclusão encontrará a regra, independentemente da ordem.
Há uma boa postagem no blog que entra em mais detalhes aqui
[EDIT] Para o Ubuntu 16.04+
por padrão, um " defaults-debian.conf
" em /etc/fail2ban/jail.d
com conteúdo
[sshd]
enabled = true
ativará a proteção ssh do fail2ban.
Você precisa colocá-lo em falso.
Em seguida, crie um jail.local como você faria em geral, o meu seria assim:
[ssh-with-ufw]
enabled = true
port = 22
filter = sshd
action = ufw[application="OpenSSH", blocktype=reject]
logpath = /var/log/auth.log
maxretry = 3
Já existe um ufw.conf na instalação padrão do fail2ban, portanto não é necessário criá-lo.
A única mudança específica para você jail.local seria na linha de ação, onde você precisa colocar o aplicativo em questão para a proteção e o que você deseja obter como resultado.
ufw tendem a detectar automaticamente uma certa quantidade de aplicativos em execução usando a rede. Para ter a lista, basta digitar sudo ufw app list
. É sensível a maiúsculas e minúsculas.
recarregue o fail2ban e você não verá mais a cadeia fail2ban e, se algum IP obtiver um bloqueio, você o verá em sudo ufw status