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.

psp
fonte

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.
ukoda
fonte
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

user157436
fonte
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.

Amaroc
fonte
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.

ingo
fonte
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
Lionel Broes
fonte
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
zainengineer
fonte
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
toma
fonte
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
Pol Hallen
fonte
2
fail2ban-client set sshd unbanip ip_here

podia funcionar.

abhijithvijayan
fonte
1

Se um IP estiver em várias cadeias, isso se tornará um problema.

uma linha para remover 192.168.1.2 de todas as cadeias:

 for jail in $(fail2ban-client status | grep 'Jail list:' | sed 's/.*Jail list://' | sed 's/,//g'); do fail2ban-client set $jail unbanip 192.168.1.2; done

um script para fazer o mesmo https://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474

yolabingo
fonte
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.

kashiraja
fonte