如何使用Fail2Ban正确解除IP

我在服务器上使用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合适的监狱:

    1. 使用iptables -L -n查找规则名称…
    2. 然后使用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