我用它iptables
来过滤流量并chronyd
同步系统时间。但是,它无法工作,不知为何chronyd
无法访问 NTP 服务器。
这是我的 iptables 规则:
# iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -i eth0 -p udp -m udp --dport 123 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 123 -j ACCEPT
这是我尝试同步系统时间:
# chronyd -4 -q 'server 0.openembedded.pool.ntp.org iburst'
2021-01-27T09:06:15Z chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC -PRIVDROP -SCFILTER -SIGND +ASYNCDNS -SECHASH +IPV6 -DEBUG)
2021-01-27T09:06:15Z No suitable source for synchronisation
2021-01-27T09:06:15Z chronyd exiting
当我清除所有规则时,上述同步命令可以正常工作。
答案1
当您的计算机尝试访问 NTP 服务器时,源端口将不确定,服务器上的目标端口将为 123。因此,与您当前的情况相反。请执行以下操作:
# iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -i eth0 -p udp -m udp --sport 123 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 123 -j ACCEPT
编辑:来自评论问题:
对于 INPUT 链来说--sport 123
意味着远程机器上的端口,对于 OUTPUT 链来说--dport 123
意味着远程机器上的端口。
通过不指定网络接口,一条规则可以在多个网络接口上工作,尽管我不明白你为什么要这样做。因此(未经测试):
-A INPUT -p udp -m udp --sport 123 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 123 -j ACCEPT