题 如何使用Fail2Ban正确解锁IP


我在服务器上使用Fail2Ban,我想知道如何正确解开IP。

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

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

在手册中,它表示如下: fail2ban-client get ssh actionunban <IP>。但这不起作用。

另外,我不想 /etc/init.d/fail2ban restart 因为这将失去列表中的所有禁令。


160
2018-06-29 11:43






答案:


在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 获取实际的监狱名称。规则名称和监狱名称可能不一样,但应该清楚哪一个与哪个相关。

227
2017-11-29 21:59



如果您有以下错误 'Invalid Action name',读 这个答案 - Morgan Courbet
随着最近的版本 fail2ban 你应该使用 fail2ban-client set JAIL_NAME unbanip 1.2.3.4。 - tftd
什么是默认的监狱名称? /etc/fail2ban/jail.conf 不适合我。 - Alex W
如果您查找IP,可以在fail2ban日志中找到jail名称 - fred727
sshd是我的监狱名字。 - agustaf


从v0.8.8开始就有了 unbanip 选项 (actionunban 不是为了这个目的) 它可以由 set 命令,如果你看一下选项列表,你会看到语法是。 所以它(请记录,请检查):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

更通用的:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

适合我


81
2018-02-04 08:25



版本0.8.8中添加了unbanip命令。如果您运行0.8.8或更高版本,则是最佳解决方案。 - Alexander Garden
在fail2ban跟踪器中与此相关的问题是: github.com/fail2ban/fail2ban/issues/132 - Aseques
这是当前版本的正确答案。谢谢! - billynoah
获取“无效命令(没有设置操作或尚未实现)” - Tom
你需要说明正确的jailname(例如sshd或sshd-dos,请参阅fail2ban日志) - mirage


SSH在交互模式下的示例。

输入bash:

fail2ban-client -i

然后在交互模式类型中读取jail的状态:

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 在禁令名单中。


40
2018-02-28 13:55



对我来说,监狱的名字是 sshd (Ubuntu 16) - scipilot
在我的,它说完全禁止:6,但禁止IP下的列表只是空的:(必须通过日志 - William Hilsum


ukoda的答案是错误的:

呼叫 fail2ban-client 没有参数,你会看到一个可能的命令列表:

get JAIL actionunban ACT             

这将获取JAIL操作ACT的unban命令。

查看你定义的jail的action参数,你可能有一个iptables动作,也许更像sendmail,whois或者其他什么。所以如果你的行动是iptables,它将如下所示:

fail2ban-client get JAIL actionunban iptables

答案是:

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

它只会告诉你为unban写的东西。没有unban命令本身。


21
2018-01-13 15:13



是的,这对我有用,从SSH监狱解雇 iptables -D fail2ban-ssh -s <IP> -j DROP。谢谢ingo! - Deele


如果禁止192.168.2.1

sudo iptables -L

检查它被禁止在哪个链中,例如

Chain fail2ban-sasl(1参考)

DROP all - 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

8
2018-01-24 14:04





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

4
2017-09-30 12:18



这假设hosts.deny是使用的操作....但它仍然比尝试通过使用更改旧版本上的解除IP的方法更有用 actionunban... - Gert van den Berg


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

fail2ban-client status

获取jail名称后,您可以检查哪些IP被忽略。

fail2ban-client get ssh ignoreip

如果您的IP处于忽略列表中,您可以通过以下方式将其删除:

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

删除您的主机条目:

fail2ban-client reload

4
2017-09-09 11:20



忽略列表是一个永不禁止的IP列表。这与当前被禁止的IP列表完全无关,这是OP希望从中删除IP的列表。 - jlh


不幸的是,使用版本0.8.2的fail2ban-client命令:

fail2ban-client get jail actionunban ipaddress

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

unbanip

2
2018-06-21 18:35