您如何通过命令行查看Ubuntu 12.04的所有禁用IP?


36

我似乎找不到快速的命令来查看服务器上所有被禁止的IP。还是有我可以编辑的文件?

我猜fail2ban是输入所有要禁止的IP的那个。在哪里调整设置?

我似乎只有在禁用ufw后才能远程登录到我的服务器。我似乎无法找出如何解除自我约束的方法。我什至不知道为什么我一开始就被禁止。是否有某种日志可以查看所有尝试?


5
sudo iptables -L -n
塞斯(Seth)2014年

有这么多的输出。我想找什么?i.imgur.com/zTTXJTE.png .....谢谢..我做了一个ufw允许<ip_address>,但它仍然无法正常工作。我不知道它在哪里被禁止。
Patoshiパ托シ2014年

还做了ufw状态,然后禁用了ufw,做了iptables -F,然后启用了ufw。仍然我无法远程访问服务器。我的IP明确显示在状态框中为允许:i.imgur.com/f7JD2Ny.png
Patoshi oshi托シ

在关闭服务器之前,您是否已打开ssh端口?
卡西姆

我该如何检查?防火墙关闭时,我可以SSH进入。所以默认情况下不起作用吗?
Patoshiパトシ2014年

Answers:


24

sudo iptables -L INPUT -v -n | less

这告诉iptables列出INPUT链中的所有规则,并提供详细的数字输出。我们正在整理内容,以便一次获取一页。


2
自2014年以来,情况可能有所变化,但就目前情况而言,此问题是错误的,因为fail2ban不会将事情放在INPUT链中。
Billynoah

@billynoah当然有些变化。生活中没有什么是静止的。例如,不再支持12.04。如果你还在使用它,我建议你升级到支持,直到2021年四月16.04 LTS
上古野人

我不确定您是否引用的是12.04,因为我说过2014?我说的是你回答的年份。
billynoah

1
@billynoah我引用的是12.04,原因是在提供此答案的问题中引用了它。对于可能遇到的困惑,您深表歉意。:-)
怪杰长老

45

简短版本

列出所有当前被阻止的ips:

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list"

取消IP:

fail2ban-client set postfix-mail unbanip 111.222.333.444

长版

如果您正在寻找这样做的“官方”方式,那么fail2ban有一个命令行客户端https://www.fail2ban.org/wiki/index.php/Commands

~ # fail2ban-client status
Status
|- Number of jail:      8
`- Jail list:           roundcube, sshd, sogo, postfix-sasl, postfix-mail, dovecot, ssh, sshd-ddos

那你就可以跑

~ # fail2ban-client status roundcube

Status for the jail: roundcube
|- filter
|  |- File list:        /var/log/mail.log
|  |- Currently failed: 0
|  `- Total failed:     12
`- action
   |- Currently banned: 1
   |  `- IP list:       111.222.333.444
   `- Total banned:     1

或者您可以使用我的命令,该命令遍历所有现有的监狱:

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list"

输出:

Status for the jail: roundcube
   |  `- IP list:
Status for the jail: sshd
   |  `- IP list:
Status for the jail: sogo
   |  `- IP list:
Status for the jail: postfix-sasl
   |  `- IP list:
Status for the jail: postfix-mail
   |  `- IP list:
Status for the jail: dovecot
   |  `- IP list:
Status for the jail: ssh
   |  `- IP list:
Status for the jail: sshd-ddos
   |  `- IP list:

现在应该是公认的答案。
巴斯基

没有awk:fail2ban-client status | grep "Jail list:" | sed "s/`- Jail list://" | sed "s/\s//g" | sed "s/,/\n/g" | xargs -L1 fail2ban-client status | less
Quamis,

21

您可以通过查看所有先前禁止的IP /var/log/fail2ban.log

sudo zgrep 'Ban' /var/log/fail2ban.log*

不过,有些禁令是暂时的,因此我不确定如何最好地取消这些禁令(我的fail2ban日志为空,这使得这很难测试!)。您可以使用该awk命令进入大型会计方案,但是它变得非常乏味。

无论如何,如果您正在寻找被禁止的原因,就是您想要的方式。

另一种方法是查看IP表并查看要删除的内容。再次,这有一些问题,因为它显示了默认路由,这些默认路由已被覆盖,但我阻止了源为0.0.0.0/0的规则,这似乎使其在实际使用中足够干净:

sudo iptables -L -n | awk '$1=="DROP" && $4!="0.0.0.0/0"'

但这不能解释为什么会发生禁令。


fail2ban是禁止的主要应用程序,而不是其他任何应用程序?我的服务器只是一个基本的ubuntu服务器,所以我从没安装其他东西。
Patoshiパトシ

在这种情况下,是的。
奥利(Oli)

1
请注意,我当前的版本写的是NOTICE [snap-iptables] Ban 45.32.216.148- ':'在单词Ban后面没有,但前后都有空格。
Alexis Wilke
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.