As proibições geralmente são feitas em endereços IP através do seu firewall, portanto, você deve observar as regras do firewall.
Julie Pelletier
Sim eu conheço. mas eu quero limpar todas as proibições, sem contar uma endereço IP
Patrick
Respostas:
26
Resposta atualizada
A partir da versão 0.10.0, fail2ban-clientapresenta o unbancomando 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 reloadagora também têm a --unbanopção.
Resposta antiga
fail2ban usa iptablespara 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 somethingaponta para a cadeia fail2ban (por exemplo, Chain f2b-sshdrefere-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 iptablesregras 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-numberse observe que a última linha (com RETURN) deve permanecer. Veja o comentário de @ roaima abaixo para saber o motivo da contagem regressiva.
Obrigado @roaima! Vou atualizar a resposta de acordo.
Ph0t0nix
1
@roaima Sim, é (pelo menos em zsh e bash): echo {5..1}resultará em 5 4 3 2 1.
Ph0t0nix
Você me salvou. Muito obrigado. Por favor, adicione um comando completo, porque eu tive que descobrir que preciso do fail2ban-client na parte de trás do seu comando. (Porque eu sou um noob)
sebastian.roibu
A resposta antiga ainda está em cache no DuckDuckGo, veio dizer a mesma coisa que @roaima - snipboard.io/0oZkXy.jpg
Ari
14
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.
Esta é a única resposta correta aqui. O Fail2ban mantém seu próprio banco de dados de proibições, que deve ser limpo de forma independente. Todas as respostas sobre a exclusão de regras do iptables ignoram que, no momento em que o fail2ban é iniciado, ele adiciona novamente as regras que você acabou de excluir no iptables. Além disso, nem toda configuração fail2ban usa iptables para implementar proibições.
Cliff Armstrong
3
encontrar todas as cadeias comfail2ban-client status
Flion
Acabei de emitir este comando e estou observando o número de IPs na minha prisão diminuir para zero, à medida que fail2ban processa a prisão. Isso não acontece realmente muito rápido, mas tudo bem, havia mais de cinco mil entradas na prisão. Boa resposta!
Eric M
4
O último fail2ban-client(0,10) tem um unban -allcomando. 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.
Esta é a melhor resposta para as versões fail2ban abaixo de 0,10. Você pode continuar criando um alias no .bashrc, como fail2ban-purge, com um parâmetro para limpar uma cadeia inteira. Substitua a palavra recidiva acima por $ 1 e use o alias como fail2ban-purge <JAIL_NAME>.
ADDISON74 23/02/19
2
Devido à maneira como fail2banfunciona, existem apenas duas soluções possíveis:
Faça um script de configuração do firewall que inclua fail2bancadeias e reinicie o firewall.
Remova as regras de firewall que estão bloqueando os IPs que você deseja desbanir.
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
Respostas:
Resposta atualizada
A partir da versão 0.10.0,
fail2ban-client
apresenta ounban
comando que pode ser usado de duas maneiras:Além disso, os comandos
restart <JAIL>
,reload <JAIL>
ereload
agora também têm a--unban
opção.Resposta antiga
fail2ban usa
iptables
para bloquear o tráfego. Se você deseja ver os endereços IP atualmente bloqueados, digitee procure as várias cadeias nomeadas
fail2ban-something
, ondesomething
aponta para a cadeia fail2ban (por exemplo,Chain f2b-sshd
refere-se à cadeiasshd
). 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:Como alternativa, você pode usar números de linha. Primeiro, liste as
iptables
regras com os números de linha:Em seguida, você pode usar
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:
Aqui eu inventei o número 200. Verifique sua própria saída do comando com
--line-numbers
e observe que a última linha (comRETURN
) deve permanecer. Veja o comentário de @ roaima abaixo para saber o motivo da contagem regressiva.fonte
echo {5..1}
resultará em5 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.
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.
fonte
fail2ban-client status
O último
fail2ban-client
(0,10) tem umunban -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.
fonte
Salvar configuração do iptable no arquivo
Edite-o com qualquer editor que você quiser. Than load config voltar para iptables
Não se esqueça de armazenar a configuração dentro do iptables para que ela seja capturada na reinicialização
fonte
1. interromper o serviço limpará todas as regras adicionadas pelo fail2ban
service fail2ban stop
2. Se você não possui outras regras do iptables, pode liberá-lo
iptables -F
tenha cuidado: isso apagará todas as outras regras do seu iptables.
fonte
Aqui está um simples delineador para desbanir toda a cadeia fail2ban da maneira correta:
NOTA: O comando iptables usa o prefixo "f2b-" antes do nome da prisão, enquanto "fail2ban-client" o nome real da prisão
fonte
Devido à maneira como
fail2ban
funciona, existem apenas duas soluções possíveis:fail2ban
cadeias e reinicie o firewall.fonte
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)
fonte