iptables 时间规则在 ubuntu 20.04 上不起作用

iptables 时间规则在 ubuntu 20.04 上不起作用

这是我的规则:

iptables -A INPUT -m mac --mac-source 40:e2:30:f4:00:04 -m time --timestart 18:00:00 --timestop 23:59:59 --weekdays Mon,Tue,Wed,Thu,Fri -j ACCEPT
iptables -A INPUT -m mac --mac-source 40:e2:30:f4:00:04 -j DROP

它在 20.04 (iptables v1.8.4) 中不起作用。有什么帮助吗?

PD:这里作者说这是因为 iptables 不读取系统时间而是 UTC。我尝试了该规则,但它也不起作用

iptables -A INPUT -m mac --mac-source 40:e2:30:f4:00:04 --match time --weekdays Mon,Tue,Wed,Thu,Fri --timestart $(date -u -d @$(date "+%s" -d "18:00") +%H:%M) --timestop $(date -u -d @$(date "+%s" -d "23:00") +%H:%M) -j ACCEPT
iptables -A INPUT -m mac --mac-source 40:e2:30:f4:00:04 -j DROP

PD:我已经使用了--kerneltz这里解释)参数,据说使用内核时区,而不是 UTC,但两者都不是(并且使用--kerneltz 非常气馁

我的电脑时间:

timedatectl status
               Local time: sáb 2021-08-28 12:42:49 -05
           Universal time: sáb 2021-08-28 17:42:49 UTC
                 RTC time: sáb 2021-08-28 17:42:48    
                Time zone: America/Bogota (-05, -0500)
System clock synchronized: yes                        
              NTP service: active                     
          RTC in local TZ: no

date --utc 
sáb 28 ago 2021 17:44:23 UTC

如果解决方案不是在我的计算机上设置 UTC 时间,我将不胜感激,因为这可能会影响其他应用程序

另一条规则不起作用(maclist.txt内容40:e2:30:f4:00:04等)

current_time=$(date +%H) # actual 13
allowed_time=08
denied_time=12
maclist=$(awk '{print $1}' maclist.txt)
if [ \( $current_time -ge $allowed_time -a $current_time -lt $denied_time \) ]; then
    for mac in $(echo -e "$maclist"); do
        iptables -I INPUT -m mac --mac-source $mac -j NFLOG --nflog-prefix 'macblock'
        iptables -I INPUT -m mac --mac-source $mac -j ACCEPT
        iptables -I FORWARD -m mac --mac-source $mac -j NFLOG --nflog-prefix 'macblock'
        iptables -I FORWARD -m mac --mac-source $mac -j ACCEPT
    done
fi

出去sudo iptables -nvL

    0     0 NFLOG      tcp  --  eno2   *       0.0.0.0/0            0.0.0.0/0            MAC 40:e2:30:f4:00:04 TIME from 08:00:00 to 17:59:59 UTC nflog-prefix  blockports
    0     0 DROP       tcp  --  eno2   *       0.0.0.0/0            0.0.0.0/0            MAC 40:e2:30:f4:00:04 TIME from 08:00:00 to 17:59:59 UTC
    0     0 ACCEPT     tcp  --  eno2   *       0.0.0.0/0            0.0.0.0/0            MAC 40:e2:30:f4:00:04
          

相关内容