当前位置: 首页>>技术教程>>正文


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

,

问题描述

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

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

我似乎只能在禁用 ufw 的情况下才能远程登录到我的服务器。我似乎无法找到如何解除自己的禁令。我什至不知道为什么我首先被禁止。是否有某种日志可以查看所有尝试?

最佳思路

简洁版本:

列出所有当前阻止的 ip:

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

长版:

如果您正在寻找 “official” 方式来做到这一点,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:

次佳思路

sudo iptables -L INPUT -v -n | less

这告诉 iptables 列出 INPUT 链中的所有规则,提供详细的数字输出。我们正在减少管道,以便我们一次得到一页。

第三种思路

通过/var/log/fail2ban.log可以看到之前所有被禁止的IP

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"'

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12333.html,未经允许,请勿转载。