Como desbanir um IP corretamente com o Fail2Ban

165

Estou usando o Fail2Ban em um servidor e estou pensando em como desbanir um IP corretamente.

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

Mas não há como fazer isso com o fail2ban-client ?

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

Além disso, não quero /etc/init.d/fail2ban restart , pois perderia todas as proibições na lista.

    
por psp 29.06.2011 / 13:43

9 respostas

234

Com o Fail2Ban antes da v0.8.8:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

Com o Fail2Ban v0.8.8 e posterior:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

A parte difícil é encontrar a cadeia certa:

  1. Use iptables -L -n para encontrar o nome da regra ...
  2. ... então use fail2ban-client status para obter os nomes reais da cadeia. O nome da regra e o nome da cadeia podem não ser os mesmos, mas deve ficar claro qual deles está relacionado a qual.
por 29.11.2011 / 22:59
81

Desde a v0.8.8 existe a opção unbanip ( actionunban não é para este propósito) Pode ser acionado pelo comando set , se você olhar a lista de opções, verá a sintaxe. Então 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

    
por 04.02.2013 / 09:25
41

Exemplo de SSH no modo interativo.

digite no bash:

fail2ban-client -i

depois, no modo interativo, leia o status de uma cadeia:

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 o modo interativo do fail2ban:

set sshd unbanip 203.113.167.162

você terá:

203.113.167.162

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

    
por 28.02.2016 / 14:55
21

A resposta do ukoda está errada:

Chame fail2ban-client sem parâmetros e você verá uma lista de possíveis comandos:

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 cadeia que você definiu, você provavelmente tem uma ação iptables e talvez um pouco mais como sendmail, whois ou qualquer outra coisa. então, caso sua ação seja iptables, ficará assim:

fail2ban-client get JAIL actionunban iptables

e a resposta será:

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

Ele só mostrará o que você teria que escrever para um unban. Não há comando unban em si.

    
por 13.01.2012 / 16:13
8

Se 192.168.2.1 for banido

sudo iptables -L

Verifique qual cadeia é banida em, por exemplo,

Chain fail2ban-sasl (1 references)

DROP all -- 192.168.2.1 anywhere

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
    
por 24.01.2014 / 15:04
4

Usando o 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
    
por 30.09.2014 / 14:18
4

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

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 está na lista de ignorados, você pode excluí-lo via:

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

Remova sua entrada de host:

fail2ban-client reload
    
por 09.09.2015 / 13:20
2

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

fail2ban-client get jail actionunban ipaddress

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

unbanip
    
por 21.06.2014 / 20:35
0

Se um IP está em várias cadeias, isso se torna uma dor.

one-liner 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 link

    
por 02.11.2017 / 21:59