Como desbanir um IP corretamente com Fail2Ban


200

Estou usando o Fail2Ban em um servidor e estou me perguntando como desbancar um IP corretamente.

Sei que posso trabalhar diretamente com o IPTables: iptables -D fail2ban-ssh <number>

Mas não há uma maneira de fazer isso com o fail2ban-client?

Nos manuais que afirma algo como: fail2ban-client get ssh actionunban <IP>. Mas isso não funciona.

Além disso, não quero, /etc/init.d/fail2ban restartpois isso perderia todas as proibições da lista.

Respostas:


278

Com Fail2Ban anterior à v0.8.8:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

Com Fail2Ban v0.8.8 e posterior:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

A parte difícil é encontrar a prisão certa:

  1. Use iptables -L -npara encontrar o nome da regra ...
  2. ... use fail2ban-client statuspara obter os nomes reais da prisão. O nome da regra e o nome da prisão podem não ser os mesmos, mas deve ficar claro qual deles está relacionado a qual.

2
Se você tiver o seguinte erro 'Invalid Action name', leia esta resposta
Morgan Courbet

32
Com versões recentes de fail2banvocê deve estar usando fail2ban-client set JAIL_NAME unbanip 1.2.3.4.
tftd

1
Qual é o nome da prisão padrão? /etc/fail2ban/jail.confnão funciona para mim.
Alex W

1
Você pode encontrar o nome prisão em log fail2ban se você olhar para o seu IP
fred727

7
sshd era o nome da prisão para mim.
agustaf

82

Como a v0.8.8 existe a unbanipopção ( actionunbannão é para essa finalidade). Ela pode ser acionada pelo setcomando; se você olhar a lista de opções, verá a sintaxe. Assim será (de cor, por favor, verifique):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

mais genérico:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

funciona para mim


3
O comando unbanip foi adicionado na versão 0.8.8. A melhor solução se você estiver executando o 0.8.8 ou posterior.
Alexander Garden

1
A questão relacionada a este no rastreador fail2ban é esta: github.com/fail2ban/fail2ban/issues/132
aseques

esta é a resposta correta para as versões atuais. obrigado!
Billynoah

recebendo "Comando inválido (nenhuma ação definida ou ainda não foi implementada)"
Tom

você precisa indicar o jailname correta (por exemplo sshd ou sshd-DOS, consulte o seu log fail2ban)
miragem

53

Exemplo para SSH no modo interativo.

digite bash:

fail2ban-client -i

depois, no modo interativo, leia o status de uma prisão:

status sshd

você terá:

Status for the jail: ssh
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 6
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned: 1
   |- Total banned: 2
   `- Banned IP list:   203.113.167.162

digite no modo interativo fail2ban:

set sshd unbanip 203.113.167.162

você terá:

203.113.167.162

significa que não está mais 203.113.167.162na lista de proibições.


3
Para mim, o nome da prisão era sshd(Ubuntu 16) #
scipilot 16/16/17

No meu, ele diz totais proibidos: 6, mas a lista sob ip banido é apenas vazio :( tem que Fuga através toras
William Hilsum

21

A resposta do ukoda está errada:

Ligue fail2ban-clientsem parâmetros e você verá uma lista de comandos possíveis:

get JAIL actionunban ACT             

Isso obtém o comando unban para a ação ACT for JAIL.

Olhe para o parâmetro de ação da prisão que você definiu, você provavelmente tem uma ação do iptables e talvez um pouco mais como sendmail, whois ou o que quer. Portanto, caso sua ação tenha sido iptables, será assim:

fail2ban-client get JAIL actionunban iptables

e a resposta será:

iptables -D fail2ban-NAME -s IP -j DROP

Apenas mostrará o que você teria que escrever para um não-urbano. Não existe um comando unban em si.


3
Sim, isso funcionou para mim, para banir da cadeia SSH iptables -D fail2ban-ssh -s <IP> -j DROP. Obrigado ingo!
Deele

8

Se 192.168.2.1 for banido

sudo iptables -L

Verifique em qual cadeia é banida, por exemplo

Cadeia fail2ban-sasl (1 referências)

DROP all - 192.168.2.1 em qualquer lugar

Então:

# to view the proper command for un-banning
sudo fail2ban-client get sasl actionunban
# actual command
iptables -D fail2ban-sasl -s 192.168.2.1 -j DROP

4

Você primeiro precisa obter o nome da prisão. Você pode obter a lista (na maioria dos casos, será apenas ssh jail):

fail2ban-client status

Depois de obter o nome da prisão, você pode verificar quais IPs estão sendo ignorados.

fail2ban-client get ssh ignoreip

Se o seu IP estiver na lista de ignorados, você poderá excluí-lo via:

fail2ban-client set ssh delignoreip your_ip_address
vi /etc/hosts.deny

Remova sua entrada de host:

fail2ban-client reload

2
A lista de ignorados é uma lista de IPs a serem banidos nunca. Isso não tem nenhuma relação com a lista de IPs atualmente banidos, que é a lista da qual o OP deseja remover um IP.
Jlh #

3

Usando fail2ban v.0.8.6:

$ sudo fail2ban-client status # to reveal your JAIL name (mine is ssh)
$ sudo fail2ban-client set ssh delignoreip your_ip_address
$ sudo nano /etc/hosts.deny # delete your ip address
$ sudo fail2ban-client reload

Isso pressupõe que hosts.deny foi a ação usada ... Mas ainda é mais útil do que as coisas que tentam alterar o método de desbanir IPs nas versões mais antigas usando actionunban...
Gert van den Berg

A delignoreipação não está removendo um IP de uma proibição, está removendo um IP da lista de IP ignorados (ou seja, IP que nunca será banido).
Tonin

2

infelizmente com a versão 0.8.2 do fail2ban-client o comando:

fail2ban-client get jail actionunban ipaddress

não corre. Para resolver o problema, a melhor opção é atualizar fail2ban para a versão mais recente e usar a nova opção:

unbanip



0

Se você estiver executando a versão v0.10.2:

sudo fail2ban-client unban YOUR_IP_ADDRESS

Isto é da ajuda:

unban <IP> ... <IP> unbans <IP> (in all jails and database)

Confirmei que funcionava no meu caso quando provavelmente fui banido devido ao login do cliente ssh repetidamente com senha incorreta.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.