Como posso excluir todas as proibições de fail2ban no Ubuntu? Eu tentei de tudo, mas não entendi.
Eu só quero excluir todas as proibições - mas não conheço nenhum endereço IP.
Como posso excluir todas as proibições de fail2ban no Ubuntu? Eu tentei de tudo, mas não entendi.
Eu só quero excluir todas as proibições - mas não conheço nenhum endereço IP.
Respostas:
A partir da versão 0.10.0, fail2ban-client
apresenta o unban
comando que pode ser usado de duas maneiras:
unban --all unbans all IP addresses (in all
jails and database)
unban <IP> ... <IP> unbans <IP> (in all jails and
database)
Além disso, os comandos restart <JAIL>
, reload <JAIL>
e reload
agora também têm a --unban
opção.
fail2ban usa iptables
para bloquear o tráfego. Se você deseja ver os endereços IP atualmente bloqueados, digite
iptables -L -n
e procure as várias cadeias nomeadas fail2ban-something
, onde something
aponta para a cadeia fail2ban (por exemplo, Chain f2b-sshd
refere-se à cadeia sshd
). Se você deseja remover apenas o bloco de um único endereço IP <IP>
para uma determinada prisão <JAIL>
, o fail2ban oferece seu próprio cliente:
fail2ban-client set <JAIL> unbanip <IP>
Como alternativa, você pode usar números de linha. Primeiro, liste as iptables
regras com os números de linha:
iptables -L -n --line-numbers
Em seguida, você pode usar
iptables -D fail2ban-somejail <linenumber>
para remover uma única linha da tabela. Tanto quanto sei, não há opção para selecionar um intervalo de números de linha, então acho que você teria que agrupar esse comando em um loop for:
for lin in {200..1}; do
iptables -D fail2ban-somejail $lin
done
Aqui eu inventei o número 200. Verifique sua própria saída do comando com --line-numbers
e observe que a última linha (com RETURN
) deve permanecer. Veja o comentário de @ roaima abaixo para saber o motivo da contagem regressiva.
echo {5..1}
resultará em 5 4 3 2 1
.
A melhor maneira de desbanir todos os IPs é definir o tempo de espera para 1 segundo, para que todo o IP seja liberado imediatamente.
fail2ban-client set JailName bantime 1
Depois disso, você pode definir o tempo de banimento adequado de volta.
É melhor deixar o fail2ban fazer o desbanjo por você. Não edite manualmente o iptables.
fail2ban-client status
O último fail2ban-client
(0,10) tem um unban -all
comando. As prisões também podem ser "reiniciadas" individualmente, eliminando efetivamente as proibições.
Se você possui uma versão mais antiga, esse truque pode funcionar para proibições temporárias automáticas: exclua a prisão que contém a proibição e reinicie o fail2ban para que a prisão (agora vazia) seja recriada.
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
Salvar configuração do iptable no arquivo
$ iptables-save > iptables.conf
Edite-o com qualquer editor que você quiser. Than load config voltar para iptables
$ iptables-restore < iptables.conf
Não se esqueça de armazenar a configuração dentro do iptables para que ela seja capturada na reinicialização
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Aqui está um simples delineador para desbanir toda a cadeia fail2ban da maneira correta:
iptables -L f2b-recidive -n | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip
NOTA: O comando iptables usa o prefixo "f2b-" antes do nome da prisão, enquanto "fail2ban-client" o nome real da prisão
Devido à maneira como fail2ban
funciona, existem apenas duas soluções possíveis:
fail2ban
cadeias e reinicie o firewall.Este é o script que estou usando para desbanir todos os endereços IP de uma prisão ssh (basta substituir a ocorrência sshd pelo nome da prisão que você precisa ... por exemplo, mysqld-auth)
#!/bin/bash
j=$(iptables -L f2b-sshd | grep -c 'REJECT')
for ((i=1;i<=j;i++))
do
fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep 'Banned IP list:' | cut -c23-)
done