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

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

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

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

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

答案1

简洁版本

列出所有当前被阻止的 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

长版本

如果你正在寻找“官方”的方式来做到这一点,有一个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:

答案2

sudo iptables -L INPUT -v -n | less

这告诉 iptables 列出 INPUT 链中的所有规则,提供详细的数字输出。我们通过 less 进行管道传输,以便每次获取一页。

答案3

您可以通过以下方式查看之前被禁止的所有 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"'

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

相关内容