如何使用Fail2Ban正确取消IP限制


200

我正在服务器上使用Fail2Ban,并且想知道如何正确取消IP禁播。

我知道我可以直接使用IPTables: iptables -D fail2ban-ssh <number>

但是,有没有办法做到这一点fail2ban-client呢?

在手册它规定是这样的:fail2ban-client get ssh actionunban <IP>。但这是行不通的。

另外,我不想这样做,/etc/init.d/fail2ban restart因为那样会丢失列表中的所有禁令。

Answers:


278

在v0.8.8之前的Fail2Ban中:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

使用Fail2Ban v0.8.8和更高版本:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

困难的部分是找到合适的监狱:

  1. 使用iptables -L -n查找规则名称...
  2. ...然后用于fail2ban-client status获取实际的监狱名称。规则名称和监狱名称可能不相同,但是应该清楚哪个与哪个相关。

2
如果你有以下错误'Invalid Action name',请阅读这个答案
摩根库尔贝

32
对于最新版本的,fail2ban您应该使用fail2ban-client set JAIL_NAME unbanip 1.2.3.4
tftd

1
默认的监狱名称是什么?/etc/fail2ban/jail.conf对我不起作用。
Alex W

1
如果您寻找自己的IP,可以在fail2ban日志中找到监狱名称
fred727 '16

7
sshd是我的监狱名称。
2016年

82

从v0.8.8开始,有一个unbanip选项(actionunban非用于此目的)可以由set命令触发,如果查看选项列表,将看到语法为。因此(请注意):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

更通用:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

为我工作


3
在版本0.8.8中添加了unbanip命令。如果您正在运行0.8.8或更高版本,则为最佳解决方案。
亚历山大花园

1
在fail2ban跟踪器中与此相关的问题是: github.com/fail2ban/fail2ban/issues/132
等于

这是当前版本的正确答案。谢谢!
billynoah 2014年

得到“无效的命令(未设置操作或尚未执行)”
汤姆(Tom

需要说明的正确jailname(例如sshd的或sshd的-DOS,看到你的fail2ban日志)
海市蜃楼

53

交互模式下的SSH示例。

输入bash:

fail2ban-client -i

然后以交互方式键入读取监狱的状态:

status sshd

你会得到:

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

然后输入fail2ban交互模式:

set sshd unbanip 203.113.167.162

你会得到:

203.113.167.162

这意味着不再203.113.167.162在禁令列表中。


3
对我来说,监狱的名字是sshd(Ubuntu 16)
scipilot '17

在我的网站上,它说被禁止的总数:6,但是被禁止的IP下的列表只是空的:(必须在日志中尾随
William Hilsum

21

ukoda的答案是错误的:

fail2ban-client不带参数的调用会看到可能的命令列表:

get JAIL actionunban ACT             

这将为动作ACT for JAIL获取unban命令。

查看您定义的监狱的action参数,您可能有一个iptables操作,可能还包括sendmail,whois或其他内容。因此,如果您的操作是iptables,它将如下所示:

fail2ban-client get JAIL actionunban iptables

答案将是:

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

它只会向您显示取消禁令所要写的内容。本身没有unban命令。


3
是的,这对我很有效,可以解除SSH监狱的禁令iptables -D fail2ban-ssh -s <IP> -j DROP。谢谢你!
Deele 2013年

8

如果192.168.2.1被禁止

sudo iptables -L

检查在例如哪个链被禁止

链fail2ban-sasl(1参考)

全部删除-192.168.2.1任意位置

然后:

# 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

您首先需要获得监狱的名称。您可以获得列表(在大多数情况下,它只是ssh监狱):

fail2ban-client status

获得监狱名称后,您可以检查哪些IP被忽略。

fail2ban-client get ssh ignoreip

如果您的IP在“忽略”列表中,则可以通过以下方式将其删除:

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

删除主机条目:

fail2ban-client reload

2
忽略列表是永不禁止的IP列表。这与当前禁止的IP列表完全无关,这是OP想要从中删除IP的列表。
jlh 2015年

3

使用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

这假定使用hosts.deny中的作用....但它仍然比东西,尝试通过改变对旧版本unbanning IP地址的方法更有效actionunban
格特·范登贝尔赫

delignoreip操作不是从禁止中删除IP,而是从被忽略的IP列表中删除IP(即永远不会被禁止的IP)。
Tonin

2

不幸的是,对于fail2ban-client版本0.8.2,该命令:

fail2ban-client get jail actionunban ipaddress

不运行。要解决此问题,最好的选择是将fail2ban升级到最新版本并使用新选项:

unbanip



0

如果您正在运行v0.10.2版本:

sudo fail2ban-client取消禁止YOUR_IP_ADDRESS

这是从帮助:

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

当我最有可能由于ssh客户端使用错误密码反复登录而被禁止时,确认可以在我的情况下工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.