iptables 与 NTP

iptables 与 NTP

我用它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

相关内容