vfc*_*sts 8 bandwidth firewall iptables
iptables 规则多久生效?
我使用带有以下代码的脚本试图阻止主机,但它们似乎没有立即采取。是否有一些延迟,是 iptables 不起作用还是代码完全错误?
#!/bin/sh
echo $1 >> /etc/dropped_hosts
iptables -A INPUT -s $1 -j DROP
iptables -A OUTPUT -d $1 -j DROP
Run Code Online (Sandbox Code Playgroud)
Ste*_*day 14
iptables规则立即生效。由于您的脚本将 (-A) 附加到 INPUT 和 OUTPUT 链,因此您的规则将被添加到这些链的末尾。如果您在这些规则之前有其他终止规则,则它们将生效(而后面的规则则不会)。
例如,-m state --state ESTABLISHED,RELATED -j ACCEPT在 INPUT/OUTPUT 链的早期有一个规则是很常见的,并且该规则将优先于它之后的任何规则生效。该规则允许已建立的连接继续,即使它们是您通过脚本添加到防火墙的 IP 地址。
如果您的 INPUT/OUTPUT 链中有 ESTABLISHED,RELATED 规则(或其他一些覆盖以后规则的规则),那么您要么必须接受您的新规则许多不会立即生效,要么您可以让您的脚本在 ESTABLISHED,RELATED 规则之前插入 IP 地址 DROP 规则。这可以通过将您的脚本更改为插入 (-I) 而不是附加 (-A) 您的 IP 地址 DROP 规则来完成,例如
iptables -I INPUT -s $1 -j DROP
iptables -I OUTPUT -d $1 -j DROP
Run Code Online (Sandbox Code Playgroud)
小智 7
iptables 规则立即生效。
由于此脚本是附加的,因此在此之前可能有一条规则表示自动允许您尝试阻止的主机。iptables 从上到下读取规则,并在找到匹配项后立即中断(因此,如果您有一些内容说“允许 badhostx”然后下一行是“drop badhostx”,则它永远不会删除,因为该规则已经与之匹配主持人。
如果您在脚本中使用 -A,您可能希望在 (iptables --flush) 之前刷新您的表,以确保规则与您在脚本中应用的规则完全相同(但还要确保您拥有所有规则在那个脚本中)。
另一个选择而不是运行该脚本是获取您想要工作的规则,然后执行“service iptables save”或“/etc/init.d/iptables save”。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
25388 次 |
| 最近记录: |