如何删除Ubuntu中的所有fail2ban禁令?我尝试了一切,但我不明白。
我只想删除所有禁令 - 但我不知道任何 IP 地址。
答案1
更新的答案
从版本 0.10.0 开始,fail2ban-client
该unban
命令可以通过两种方式使用:
unban --all unbans all IP addresses (in all
jails and database)
unban <IP> ... <IP> unbans <IP> (in all jails and
database)
此外,restart <JAIL>
、reload <JAIL>
和reload
命令现在也有这个--unban
选项。
旧答案
fail2ban 用于iptables
阻止流量。如果您想查看当前被阻止的 IP 地址,请键入
iptables -L -n
并查找名为 的各种链fail2ban-something
,其中something
指向fail2ban监狱(例如,Chain f2b-sshd
指的是监狱sshd
)。如果您只想删除给<IP>
定监狱的单个 IP 地址的阻止<JAIL>
,fail2ban 提供了自己的客户端:
fail2ban-client set <JAIL> unbanip <IP>
或者,您也可以使用行号。首先,iptables
使用行号列出规则:
iptables -L -n --line-numbers
接下来你可以使用
iptables -D fail2ban-somejail <linenumber>
从表中删除一行。据我所知,没有选择行号范围的选项,所以我想您必须将此命令包装在 for 循环中:
for lin in {200..1}; do
iptables -D fail2ban-somejail $lin
done
这里我编了200这个数字。检查您自己的命令输出,--line-numbers
并注意最后一行(带有RETURN
)应保留。请参阅下面 @roaima 的评论,了解倒计时背后的原因。
答案2
解封所有IP的最佳方法是将封禁时间设置为1秒,然后所有IP将立即被释放。
fail2ban-client set JailName bantime 1
之后您可以设置适当的禁止时间。
最好让fail2ban 为您解封。不要自己手动编辑 iptables。
答案3
这最新fail2ban-client
(0.10)有一个unban -all
命令。监狱也可以单独“重新启动”,有效地清除禁令。
如果您有旧版本,此技巧可能适用于自动临时禁令:删除包含禁令的监狱,然后重新启动fail2ban,以便重新创建(现在是空的)监狱。
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
答案4
将 iptable 配置保存到文件
$ iptables-save > iptables.conf
使用您喜欢的任何编辑器进行编辑然后将配置加载回 iptables
$ iptables-restore < iptables.conf
不要忘记将配置存储在 iptables 中,以便在重新启动时拾取它
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]