我有一些公共互联网IP地址如ABCx服务器。 我的一个主机( ABC10 )运行ntpd,我把它从europe.pool.ntp.org上同步。
现在我只想让我的子网 ( ABCx )的主机能够同步到ABC10 。 默认情况下,整个世界可以同步到我的NTP服务器。 我如何做到这一点?
我可以find的所有示例都假设我正在同步到特定的IP地址,但是我同步到DNS名称,并且据我所知,DNS名称x .europe.pool.ntp.org指向的IP地址是可变的。 所以我不能在防火墙中设置例外,也不能在ntp.conf中使用restrict选项,因为它也只接受IP地址 ,而不接受DNS名称 (哦!和restrict既适用于客户端,也适用于服务器,如防火墙规则!)
你有几个select,这取决于防火墙的位置和/或你喜欢使用哪一个。 理想情况下,你会有一个防火墙,你可以在子网上控制。 理想情况下,你只能处理NTP服务器上的主机级防火墙。 无论哪种方式,这个概念是相同的。
对于子网防火墙:
ABC10 UDP端口123离开子网 对于NTP服务器上的主机防火墙:
例如允许10.0.0.0/8:
# allow 10.0.0.0/8 iptables -A INPUT -s 10.0.0.0/8 -p udp -m udp --dport 123 -j ACCEPT # allow localhost iptables -A INPUT -s 127.0.0.0/8 -p udp -m udp --dport 123 -j ACCEPT # allow NTP packets _from_ your host to everyone else iptables -A OUTPUT -p udp --sport 123 --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT # allow replies from hosts you've sent NTP packets to iptables -A INPUT -p udp --sport 123 --dport 123 -m state --state ESTABLISHED -j ACCEPT # the following is only useful if you have a policy ACCEPT for INPUT iptables -A INPUT -p udp -m udp --dport 123 -j DROP
基本的ntp.conf用于localnet服务看起来就像那样
#### driftfile /etc/ntp.drift disable monitor restrict -4 default kod nomodify nopeer noquery notrap restrict -6 default kod nomodify nopeer noquery notrap restrict 127.0.0.1 restrict 127.127.1.0 restrict -6 ::1 restrict 10.0.0.0 mask 255.0.0.0 restrict 172.16.0.0 mask 255.240.0.0 restrict 192.168.0.0 mask 255.255.0.0 server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst server 2.pool.ntp.org iburst ####
两条最长的行默认拒绝任何对服务器的访问,其他restric指令只允许特定的主机和子网。