我知道我可以直接使用IPTables:
iptables -D fail2ban-ssh <number>
,但是没有
fail2ban-client
的一种实现方法?手册中指出类似:
fail2ban-client get ssh actionunban <IP>
。但这是行不通的。我也不想
/etc/init.d/fail2ban restart
,因为那样会丢失列表中的所有禁令。#1 楼
对于v0.8.8之前的Fail2Ban:fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE
对于Fail2Ban v0.8.8和更高版本:
fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE
困难的部分是找到正确的监狱:
使用
iptables -L -n
查找规则名称... ...然后使用
fail2ban-client status
获取实际的监狱名称。规则名称和监狱名称可能不相同,但应该清楚哪个与哪个相关。评论
如果您遇到以下错误“无效的操作名称”,请阅读此答案
–摩根·库尔贝(Morgan Courbet)
2014年8月28日在8:04
对于最新版本的fail2ban,您应该使用fail2ban-client set JAIL_NAME unbanip 1.2.3.4。
–tftd
15年1月29日在17:45
默认的监狱名称是什么? /etc/fail2ban/jail.conf对我不起作用。
– Alex W
16 Jan 25 '14:33
如果您查找IP,则可以在fail2ban日志中找到监狱名称
– fred727
16年8月8日在18:54
sshd是我的监狱名称。
–阿古斯塔夫
16年10月9日在6:00
#2 楼
从v0.8.8开始,有一个unbanip
选项(actionunban
并非用于此目的)它可以由
set
命令触发,如果查看选项列表,将会看到语法。因此(请仔细检查):
fail2ban-client set ssh-iptables unbanip IPADDRESSHERE
更通用:
fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE
为我工作
评论
在版本0.8.8中添加了unbanip命令。如果您运行的是0.8.8或更高版本,则为最佳解决方案。
–亚历山大花园
14年4月11日在16:19
在fail2ban跟踪器中与此相关的问题是:github.com/fail2ban/fail2ban/issues/132
–古迹
2014年4月22日15:50
这是当前版本的正确答案。谢谢!
–billynoah
2014年7月6日在2:27
得到“无效的命令(未设置操作或尚未实现)”
–汤姆
16年1月1日,在2:30
您需要说明正确的监狱名称(例如ssh或sshd-dos,请参阅您的fail2ban日志)
–海市age楼
17年2月13日在5:53
#3 楼
交互模式下的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
。评论
对我来说,监狱名称是sshd(Ubuntu 16)
–密码
17-11-16在2:55
在我的服务器上,它说被禁止的总数:6,但是被禁止的ip下的列表只是空的:(必须在日志中尾随
– William Hilsum
18年1月9日在14:09
#4 楼
ukoda的回答是错误的:不带参数调用
fail2ban-client
,您会看到可能的命令列表:对于ACT for JAIL的动作。查看您定义的监狱的动作参数,您可能有一个iptables动作,也许还有诸如sendmail,whois之类的东西。因此,如果您的操作是iptables,它将看起来像这样:
get JAIL actionunban ACT
,答案将是:
fail2ban-client get JAIL actionunban iptables
它只会向您显示取消禁令所要写的内容。本身没有unban命令。
评论
是的,这对我有用,可以取消SSH监狱iptables -D fail2ban-ssh -s
– Deele
13年3月15日在12:02
#5 楼
如果192.168.2.1被禁止sudo iptables -L
检查例如eg
禁止哪个链链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
#6 楼
您首先需要获得监狱的名称。您可以获得列表(在大多数情况下,它只是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
评论
忽略列表是永不禁止的IP列表。这与当前禁止的IP列表完全无关,这是OP想要从中删除IP的列表。
– jlh
15年11月24日在18:10
#7 楼
使用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
评论
假设使用host.deny作为操作。...但是它比尝试通过使用actionunban更改取消对旧版本的IP禁止方法的方法更有用。
– Gert van den Berg
18年7月17日在10:28
delignoreip操作不是从禁止中删除IP,而是从忽略的IP列表中删除IP(即永远不会被禁止的IP)。
–胎蛋白
19-4-2在11:49
#8 楼
不幸的是,对于fail2ban-client版本0.8.2,该命令:fail2ban-client get jail actionunban ipaddress
无法运行。要解决该问题,最好的选择是将fail2ban升级到最新版本并使用新选项:
unbanip
#9 楼
fail2ban-client set sshd unbanip ip_here
会工作。
#10 楼
如果您正在运行v0.10.2版本:sudo fail2ban-client取消禁止YOUR_IP_ADDRESS
这是来自帮助的:
unban <IP> ... <IP> unbans <IP> (in all jails and database)
当我最有可能由于ssh客户端使用错误的密码反复登录而被禁止时,确认可以在我的情况下使用。
#11 楼
如果IP位于多个监狱中,这将很痛苦。从所有监狱中删除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
#12 楼
您可以使用我的简单脚本:Decho "Display all service"
#Edit and Add/Del your service
sudo fail2ban-client status phpmyadmin-syslog
sudo fail2ban-client status apache-fakegooglebot
sudo fail2ban-client status apache-noscript
sudo fail2ban-client status apache-overflows
sudo fail2ban-client status apache-auth
sudo fail2ban-client status apache-badbots
sudo fail2ban-client status mysqld-auth
sudo fail2ban-client status proftpd
sudo fail2ban-client status sshd
echo "Choose service to unban"
read service
echo "Status of Service"
sudo fail2ban-client status $service
echo "Enter ip to be unban"
read ip
sudo fail2ban-client set $service unbanip $ip
echo "Status of service after unban"
sudo fail2ban-client status $service
保存并输入'sh yourfilename.sh'
可选,如果您希望在以下时间收到结果:邮件,您可以使用此:)
#Empty file log
echo "" > /home/pi/Scripts/log/ban.log
#Add Date to log
date >> /home/pi/Scripts/log/ban.log
#Add status service on log
sudo fail2ban-client status phpmyadmin-syslog >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-fakegooglebot >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-noscript >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-overflows >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-auth >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status apache-badbots >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status mysqld-auth >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status proftpd >> /home/pi/Scripts/log/ban.log
sudo fail2ban-client status sshd >> /home/pi/Scripts/log/ban.log
#Send mail
mutt -b "yourname@gmail.com" -s "Sujet: Log Fail2Ban" < /home/pi/Scripts/log/ban.log ```
#13 楼
从0.8.8版开始,这可能是一个方便的脚本-可以轻松地进行调整,以摆脱所有监狱的限制。我将其命名为“
getf2bstatus.sh
” 示例用法
./getf2bstatus.sh 1.2.3.4
#!/bin/bash
echo "Jails where is locked up:"
JAILS=`fail2ban-client status | grep "Jail list" | sed -E 's/^[^:]+:[ \t]+//' | sed 's/,//g'`
for JAIL in $JAILS
do
currentjail=`fail2ban-client status $JAIL | grep -B 8 | grep Status | awk '{printf }'`
if [[ ${#currentjail} -gt a ]] ; then
echo $currentjail
fi
done
echo
echo "To unban use the following commands:"
for JAIL in $JAILS
do
currentjail=`fail2ban-client status $JAIL | grep -B 8 | grep Status | awk '{printf }'`
if [[ ${#currentjail} -gt a ]] ; then
echo "fail2ban-client set $currentjail unbanip "
fi
done
输出?
Jails where 1.2.3.4 is locked up:
ssh
To unban 1.2.3.4 use the following commands:
fail2ban-client set ssh unbanip 1.2.3.4
评论
尝试登录Linode VPS时,我不小心将自己锁定了,所以现在我必须通过Web控制台停止Fail2Ban才能使用PuTTY登录。我希望该禁令不是永久性的,因为我想继续登录而不必禁用fail2ban。@HeavenlyHarmony将来可以避免这种情况的一种方法是将您的监狱配置为将IP地址包含在ignoreips值中。我添加了两个VPN出口点以及Google网络的SPF范围,因为运行fail2ban的盒子是GCP Compute实例。将IP地址添加到该ignoreips属性将使您可以运行任何邪恶的命令而不会禁止自己。