我想在几个小时内堵住特定地址的车辆。我使用firehol来管理我的规则。
以下规则确实会阻塞目标时间内的所有通信量。
ACCEPT all -- anywhere anywhere ctstate NEW,ESTABLISHED TIME from 06:00:00 to 16:00:00 UTC为特定IP修改的相同规则
ACCEPT all -- 10.10.10.21 anywhere ctstate NEW,ESTABLISHED TIME from 06:00:00 to 16:00:00 UTC
ACCEPT all -- anywhere anywhere ctstate NEW,ESTABLISHED不会阻塞10.10.10.21的通信量。订单看起来是正确的(从更具体到更一般),所以我想知道会缺少什么?
(请注意,这只是与时间限制有关的iptables -L摘录-在为特定IP添加特定规则时更改的规则(而不是工作规则-阻止上述时间以外的所有通信)。
发布于 2016-04-02 23:34:27
如果您只有接受规则,但一些通信最终被阻塞,这意味着您的规则的策略是删除。因此,您的第一次尝试拒绝所有未明确授权的通信量。第二次尝试还拒绝所有未显式授权的通信,但第二条规则允许大多数通信量(它只阻止一些应该允许通过的东西,例如ICMP错误- you应该始终允许RELATED通过)。
第一次匹配适用。规则1允许在某一时间窗口内从10.10.10.21流量。规则2允许(几乎)所有的流量在任何时候。因为规则1是规则2的子集,所以它是多余的。
若要在指定的时间窗口外拒绝10.10.10.21中的通信量,需要修改规则2以排除10.10.10.21中的通信量,或者在该规则之间添加拒绝通信量的规则。我认为第二种选择更为明确。
iptables -A INPUT -j ACCEPT -s 10.10.10.21 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -m time --timestart 06:00:00 --timestop 16:00
iptables -A INPUT -j REJECT -s 10.10.10.21 -m conntrack --ctstate NEW,ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -m conntrack --ctstate NEW,ESTABLISHED,RELATED
iptables -A INPUT -j REJECT注意,您几乎应该总是对阻塞的流量使用拒绝,而不是删除。。您不能将链式策略设置为DROP,这就是为什么我在最后添加了一个显式的拒绝规则。
https://unix.stackexchange.com/questions/273892
复制相似问题