iptables 字符串匹配,一些数据包仍能通过

iptables 字符串匹配,一些数据包仍能通过

我正在使用 fail2ban 来监控纯文本 http 数据包(负载均衡器正在使用 SSL 卸载),使用由负载均衡器添加的标头。fail2ban 抱怨说,它在禁止 IP 地址之后在日志中看到这些 IP 地址,但是 iptables 上的数据包数量却在增加,它们怎么可能被忽略呢?

我的 fail2ban 日志如下所示

2020-09-27 19:10:42,748 fail2ban.actions        [1744]: NOTICE  [jailprov] Ban 5.180.220.215
2020-09-27 19:11:34,478 fail2ban.actions        [1744]: NOTICE  [jailprov] 5.180.220.215 already banned
2020-09-27 19:12:08,097 fail2ban.actions        [1744]: NOTICE  [jailprov] 5.180.220.215 already banned
2020-09-27 19:12:21,119 fail2ban.actions        [1744]: NOTICE  [jailprov] 5.180.220.215 already banned
2020-09-27 19:12:50,088 fail2ban.actions        [1744]: NOTICE  [jailprov] 5.180.220.215 already banned
2020-09-27 19:13:08,609 fail2ban.actions        [1744]: NOTICE  [jailprov] 5.180.220.215 already banned

我的 iptables 如下所示

[me@server log]# iptables -vnL
Chain INPUT (policy ACCEPT 2917 packets, 368K bytes)
 pkts bytes target     prot opt in     out     source               destination
2751K  199M fail2ban-default  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
2749K  198M fail2ban-default  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 2952 packets, 530K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain fail2ban-default (2 references)
 pkts bytes target     prot opt in     out     source               destination
   18  6408 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 STRING match  "5.180.220.215" ALGO name bm TO 65535
   [other rules removed for brevity]
5499K  396M RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0 

在此处输入图片描述

答案1

/etc/sysconfig/iptables其中某处有一个无效(且不可见)的字符,可能是 Windows 样式的行尾而不是 Unix 样式。它阻止了 iptables 服务的运行。使用简单的复制粘贴重建文件并重新启动 iptables 服务解决了该问题。快速说明,如果我在iptables -vnL修复后仅包含 fail2ban 规则,它仍然与我在原始问题中显示的内容相同。

相关内容