我在服务器上使用Fail2Ban,我想知道如何正确解除IP。
我知道我可以直接使用IPTables: iptables -D fail2ban-ssh <number>
但是有没有办法与fail2ban-client
做到这一点?
在手册中,它指出类似于: fail2ban-client get ssh actionunban <IP>
。 但是这不起作用。
此外,我不想/etc/init.d/fail2ban restart
因为这将失去列表中的所有禁令。
使用v0.8.8之前的Fail2Ban:
fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE
使用Fail2Ban v0.8.8及更高版本:
fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE
困难的部分是find合适的监狱:
iptables -L -n
查找规则名称… fail2ban-client status
来获得实际的监狱名称。 规则名称和监狱名称可能不一样,但应清楚哪一个与哪个相关。 自v0.8.8以来有unbanip
选项( actionunban
不是用于这个目的的)。它可以由set
命令触发,如果你查看选项列表,你会看到语法是。 所以这将是(心,请检查):
fail2ban-client set ssh-iptables unbanip IPADDRESSHERE
更通用:
fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE
为我工作
交互模式下的SSH示例。
键入bash:
fail2ban-client -i
然后在交互模式下input:
status ssh
你会得到:
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 ssh unbanip 203.113.167.162
你会得到:
203.113.167.162
这意味着禁止列表中不再有203.113.167.162
。
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
它只会告诉你,你将不得不写一个解除。 本身没有非class指挥。
如果192.168.2.1被禁止
sudo iptables -L
例如,检查哪个链条被禁止
Chain 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
使用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
你首先需要得到监狱的名字。 你可以得到清单(在大多数情况下,它将只是ssh jail):
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
不幸的是,使用fail2ban-client的0.8.2版本的命令:
fail2ban-client get jail actionunban ipaddress
不运行。 为了解决这个问题,最好的select是将fail2ban升级到最新版本并使用新的选项:
unbanip
如果一个知识产权处于多个监狱,这就成为一个痛苦。
单线从所有的监狱中删除192.168.1.2:
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
一个脚本做相同的https://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474