在 iptables 的时间匹配中添加否定。这是什么意思?

在 iptables 的时间匹配中添加否定。这是什么意思?

我只想允许从 07:00 到 15:00 访问交通。

由于我还有其他 iptables 规则,所以我想使用否定。以下示例中使用否定是否满足我对时间段的要求?

iptables -A MYCHAIN -m time ! --timestart 07:00 --timestop 15:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP

答案1

您的否定规则可能会起作用,但您可能希望考虑将其作为两个规则分开执行,而不是使用单个否定规则(因为有时它们在调试规则集时会出现问题或造成混淆)。

您可能需要考虑将其拆分为两个规则,而不是使用一个否定规则:

iptables -A MYCHAIN -m time --timestart 00:00 --timestop 07:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
iptables -A MYCHAIN -m time --timestart 15:00 --timestop 23:59 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP

也就是说,我们也可以大大降低规则的复杂性。默认值为days“每天”,因此您不必定义它,timestart默认为 00:00,timestop默认为 23:59,因此这两个规则可以重写并简化为:

iptables -A MYCHAIN -m time --timestop 07:00 -j DROP
iptables -A MYCHAIN -m time --timestart 15:00 -j DROP

或者,我们可以这样做改为这样做:

iptables -A MYCHAIN -m time --timestart 07:00 --timestop 15:00 -j ACCEPT
iptables -A MYCHAIN -j DROP

... 然后,任何超出此范围的时间都会触发 DROP 规则。唯一可能不理想的原因是,如果您还有其他需要遵守的访问控制规则,在这种情况下,请使用我之前提出的建议。

相关内容