iptables忽略configuration文件中的规则

我看到很多从ip 188.241.114.22到我的apache服务器build立的连接,最终导致apache挂起。 我重新启动服务后,一切工作正常。 我尝试在iptables中添加一个规则

-A INPUT -s 188.241.114.22 -j DROP 

但尽pipe如此,我仍然看到来自IP的联系。 我使用centOS,我添加像thie规则:

 iptables -A INPUT -s 188.241.114.22 -j DROP 

正确的,我保存它使用:服务iptables保存
这是iptables -L -v的输出


    链接INPUT(策略ACCEPT 120K包,16M字节)

      pkts字节目标人选退出源目的地
     0 0 DROP全部 - 任何任何lg01.mia02.pccwbtn.net任何地方
     0 0 DROP all  - 任何任何c-98-210-5-174.hsd1.ca.comcast.net任何地方
     0 0 DROP all  - 任何任何c-98-201-5-174.hsd1.tx.comcast.net任何地方
     0 0 DROP全部 - 任何任何lg01.mia02.pccwbtn.net任何地方
     0 0 DROP全部 - 任何任何地方任何www.dabacus2.com
     0 0 DROP全部 - 任何任何地方任何116.255.163.100
     0 0 DROP全部 - 任何任何地方的任何94.23.119.11
     0 0 DROP全部 - 任何任何任何164.bajanet.mx任何地方
     0 0 DROP全部 - 任何任何173-203-71-136.static.cloud-ips.com任何地方
     0 0 DROP all  - 任何任何v1.oxygen.ro任何地方
     0 0 DROP全部 - 任何任何地方任何74.122.177.12
     0 0 DROP全部 - 任何任何58.83.227.150任何地方
     0 0 DROP all  - 任何任何v1.oxygen.ro任何地方
     0 0 DROP all  - 任何任何v1.oxygen.ro任何地方

链FORWARD(策略接受0包,0字节)
  pkts字节目标人选退出源目的地

连锁OUTPUT(策略ACCEPT 186K包,224M字节)
  pkts字节目标人选退出源目的地

命令iptables -A INPUT在INPUT链的末尾添加一条新规则。 Iptables在第一个匹配原则上工作,所以很可能你有一个规则允许在链中的早期端口80上访问。

保存你的iptables的状态

service iptables save
然后编辑/etc/sysconfig/iptables文件并将-A INPUT -s 188.241.114.22 -j DROP移动到允许端口80的那一行上面。保存文件并运行

service iptables restart

像大多数防火墙访问列表(ACL)条目是从上到下读取的。 对于有状态防火墙(基于主机和基于networking的)来说,新用户通常会检查访问列表,该列表适用于在input规则之前将匹配相同条件的类似规则。 这通常是在防火墙pipe理员在拒绝规则之后放置允许规则并且好奇为什么仍然不能从主机获得连接时完成的。

我的build议是检查你的访问列表,看看是否有什么符合你的声明之前,你正在尝试的声明。 您的拒绝规则可能应该在列表的首位,因为它是阻止该stream量的高优先级。 只要具体哪些主机,你想阻止。

根据你所提供的信息,阻止这个IP的规则似乎在那里,而且在此之前似乎没有任何东西可以接受stream量(除非你只是复制了它的一部分)。

试着阻止OUTPUT到这个IP:

  iptables -I OUTPUT -d <dst-ip> -j DROP 

给我们你的iptables -L -v 。 我敢打赌,你有一条规则,在你的新规则之前接受一个通配符。

编辑:可能的想法包括这些连接是从机器上的妥协生成的,或者多个主机反向映射到同一个域名,你不会注意,因为(只是仔细检查)。

那么,因为它是你的netfilter(至less在你的解释)是一个黑暗的问题,你可以使用IP路由来删除该主机:sudo ip route add unreachable 188.241.114.22 。 由于路由表使用Hash或Tree来存储大量路由(不是在数据包进入时继续进行的列表),所以这也将更加CPU友好。