如何在 Linux/Unix 之上綁定 ntpd 到特定的 IP 地址
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、教育業、安全防護、空間研究和非營利性組織的客戶工作。關注他的 Twitter, Facebook, Google+。
via: https://www.cyberciti.biz/faq/how-to-bind-ntpd-to-specific-ip-addresses-on-linuxunix/
作者:Vivek Gite 譯者:Drshu 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive