在 Linux/Unix 之上绑定 ntpd 到特定的 IP 地址的方法

2018-04-25 23:02:00
Angela
转贴
176

NTP 是网络时间协议的首字母简写,这是一个用来同步两台电脑之间时间的协议。ntpd 是一个操作系统守护进程,可以设置并且保证系统的时间与互联网标准时间服务器同步。

-- Vivek Gite


本文导航

◈ /etc/ntp.conf 之中的端口指令 15%

◈ 重启 ntpd                               46%

◈ 校验                                       59%

编译自 | https://www.cyberciti.biz/faq/how-to-bind-ntpd-to-specific-ip-addresses-on-linuxunix/ 
       作者 | Vivek Gite
       译者 | ShuCheng

默认的情况下,我们的 ntpd/NTP 服务器会监听所有的端口或者 IP 地址,也就是:0.0.0.0:123。 怎么才可以在一个 Linux 或是 FreeBSD Unix 服务器上,确保只监听特定的 IP 地址,比如 localhost 或者是 192.168.1.1:123 

NTP 是网络时间协议Network Time Protocol的首字母简写,这是一个用来同步两台电脑之间时间的协议。ntpd 是一个操作系统守护进程,可以设置并且保证系统的时间与互联网标准时间服务器同步。

NTP 使用 /etc/directory 之下的 ntp.conf 作为配置文件。

/etc/ntp.conf 之中的端口指令

你可以通过设置端口命令来防止 ntpd 监听 0.0.0.0:123,语法如下:

    interface listen IPv4|IPv6|all
    interface ignore IPv4|IPv6|all
    interface drop IPv4|IPv6|all
       上面的配置可以使 ntpd 监听那个地址或者不出来任何请求而直接丢弃。ignore 会防止打开匹配的地址,drop 会导致 ntpd 打开该地址并丢弃所有接收到的包,而不做任何检查。举个例子,如果要忽略所有端口之上的监听,加入下面的语句到 /etc/ntp.conf
    interface ignore wildcard
如果只监听 127.0.0.1 和 192.168.1.1 则是这样:
    interface listen 127.0.0.1
    interface listen 192.168.1.1
这是我 FreeBSD 云服务器上的样例 /etc/ntp.conf 文件:
    $ egrep -v '^#|$^' /etc/ntp.conf
样例输出为:
    tos minclock 3 maxclock 6
    pool 0.freebsd.pool.ntp.org iburst
    restrict    default limited kod nomodify notrap noquery nopeer
    restrict -6 default limited kod nomodify notrap noquery nopeer
    restrict    source  limited kod nomodify notrap noquery
    restrict 127.0.0.1
    restrict -6 ::1
    leapfile "/var/db/ntpd.leap-seconds.list"
    interface ignore wildcard
    interface listen 172.16.3.1
    interface listen 10.105.28.1

重启 ntpd

在 FreeBSD Unix 之上重新加载/重启 ntpd:

    $ sudo /etc/rc.d/ntpd restart
或者 在 Debian 和 Ubuntu Linux 之上使用下面的命令
    $ sudo systemctl restart ntp
或者 在 CentOS/RHEL 7/Fedora Linux 之上使用下面的命令
    $ sudo systemctl restart ntpd

校验

使用 netstat 和 ss 命令来检查 ntpd 只绑定到了特定的 IP 地址:

    $ netstat -tulpn | grep :123
或是:
    $ ss -tulpn | grep :123
样例输出:
udp        0      0 10.105.28.1:123         0.0.0.0:*                           -               
udp        0      0 172.16.3.1:123          0.0.0.0:*       
在 FreeBSD Unix 服务器上使用 sockstat 命令
    $ sudo sockstat
    $ sudo sockstat -4
    $ sudo sockstat -4 | grep :123
样例输出:
    root     ntpd       59914 22 udp4   127.0.0.1:123         *:*
    root     ntpd       59914 24 udp4   127.0.1.1:123         *:*

作者是 nixCraft 的创始人并且是一位经验丰富的系统管理员、DevOps 工程师,也是一名 Linux 操作系统和 Unix shell 脚本的训练师。他为全球不同行业,包括 IT、教育业、安全防护、空间研究和非营利性组织的客户工作。


via: https://www.cyberciti.biz/faq/how-to-bind-ntpd-to-specific-ip-addresses-on-linuxunix/

作者:Vivek Gite 译者:Drshu 校对:wxy

发表评论
评论通过审核后显示。
联系我们