Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。 默认的情况下,我们的 ntpd/NTP 服务器会监听所有的端口或者 IP 地址,也就是:0.0.0.0:123。 怎么才可以在一个 Linux 或是 FreeBSD Unix 服务器上,确保只监听特定的 IP 地址,比如 localhost 或者是 192.168.1.1:123? NTP 是网络时间协议的首字母简写,这是一个用来同步两台电脑之间时间的协议。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 restrictdefault limited kod nomodify notrap noquery nopeer restrict -6 default limited kod nomodify notrap noquery nopeer restrictsource 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 样例输出: udp0 0 10.105.28.1:123 0.0.0.0:* - udp0 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 *:* Linux是一套免费使用和自由传播的类Unix操作系统 |
温馨提示:喜欢本站的话,请收藏一下本站!