Network Time Protocol 就是 NTP 的全名。NTP 主機主要在提供網路上可以進行網路校時的主機功能!
|
|
|
GMT , Greenwich Mean Time | 0 W/E | 標準時間 |
CET , Central European | 15 E | +1 東一區 |
EET , Eastern European | 30 E | +2 東二區 |
BT , Baghdad | 45 E | +3 東三區 |
USSR, Zone 3 | 60 E | +4 東四區 |
USSR, Zone 4 | 75 E | +5 東五區 |
Indian, First | 82.3E | +5.5東五半區 |
USSR, Zone 5 | 90 E | +6 東六區 |
SST , South Sumatra | 105 E | +7 東七區 |
JT , Java | 112 E | +7.5東七半區 |
CCT , China Coast (台灣所在地) | 120 E | +8 東八區 |
JST , Japan | 135 E | +9 東九區 |
SAST, South Australia | 142 E | +9.5東九半區 |
GST , Guam | 150 E | +10 東十區 |
NZT , New Zealand | 180 E | +12 東十二區 |
Int'l Date Line | 180 E/W | 國際換日線 |
BST , Bering | 165 W | -11 西十一區 |
SHST, Alaska/Hawaiian | 150 W | -10 西十區 |
YST , Yukon | 135 W | -9 西九區 |
PST , Pacific | 120 W | -8 西八區 |
MST , Mountain | 105 W | -7 西七區 |
CST , Central | 90 W | -6 西六區 |
EST , Eastern | 75 W | -5 西五區 |
AST , Atlantic | 60 W | -4 西四區 |
Brazil, Zone 2 | 45 W | -3 西三區 |
AT , Azores | 30 W | -2 西二區 |
WAT , West Africa | 15 W | -1 西一區 |
[root@test
root]# chkconfig --level 2345 ntpd off
[root@test root]# /etc/rc.d/init.d/ntpd stop |
0. 解壓縮,並閱讀一下
ntp 底下的 README 與 INSTALL:
[root@test root]# cd /usr/local/src [root@test src]# tar -zxvf /root/ntp-4.1.2.tar.gz [root@test src]# cd ntp-4.1.2 [root@test ntp-4.1.2]# vi INSTALL (vi README) 1. 開始設定參數、編譯與安裝: [root@test ntp-4.1.2]# ./configure --help | more #可以察看一下可用的參數! [root@test ntp-4.1.2]# ./configure --prefix=/usr/local/ntp \ > --enable-all-clocks --enable-parse-clocks [root@test ntp-4.1.2]# make clean ; make [root@test ntp-4.1.2]# make check #確定一下,是否有問題!? [root@test ntp-4.1.2]# make install # 將資料給他安裝在 /usr/local/ntp 底下 |
[root@test
root]# vi /etc/ntp.conf
# 1. 關於權限設定部分 # 權限的設定主要以 restrict 這個參數來設定,主要的語法為: # # restrict IP mask netmask_IP parameter # # 其中 IP 可以是軟體位址,也可以是 default ,default 就類似 0.0.0.0 咯! # 至於 paramter 則有: # ignore :關閉所有的 NTP 連線服務 # nomodify:表示 Client 端不能更改 Server 端的時間參數,不過, # Client 端仍然可以透過 Server 端來進行網路校時。 # notrust :該 Client 除非通過認證,否則該 Client 來源將被視為不信任網域 # noquery :不提供 Client 端的時間查詢 # 如果 paramter 完全沒有設定,那就表示該 IP (或網域) 『沒有任何限制!』 # # 在我們這個例子當中,因為拒絕所有,僅開放 192.168.0.0/24 , # 並且讓 127.0.0.1 以及本機 IP 192.168.0.2 可以不受限制,所以: restrict default ignore # 關閉所有的 NTP 要求封包 restrict 127.0.0.1 # 開啟內部遞迴網路介面 lo restrict 192.168.0.2 # 主機本身的 IP 也同時開啟! restrict 192.168.100.20 mask 255.255.255.255 nomodify # 針對另一個 IP 開放讓他可以更新時間! restrict 192.168.0.0 mask 255.255.255.0 nomodify # 在網域裡面的 client 可以進行網路校時,但不會影響 Server ! # 2. 上層主機的設定 # 上層主機我們選擇 time.stdtime.gov.tw ,要設定上層主機主要以 server # 這個參數來設定,語法為: # # server [IP|FQDN] [prefer] # # Server 後面接的就是我們上層 Time Server 囉!而如果 Server 參數 # 後面加上 perfer 的話,那表示我們的 NTP 主機主要以該部主機來作為 # 時間校正的對應。另外,為了解決更新時間封包的傳送延遲動作, # 所以可以使用 driftfile 來規定我們的主機 # 在與 Time Server 溝通時所花費的時間,可以記錄在 driftfile # 後面接的檔案內,例如下面的範例中,我們的 NTP server 與 # time.stdtime.gov.tw 連線時所花費的時間會記錄在 /etc/ntp/drift 檔案內 # 先輸入第二層主機的 IP server 210.59.157.10 prefer server 210.59.157.30 prefer server 202.39.157.155 prefer # 第一層的主機就列為參考用! server 210.59.157.40 server 210.59.157.41 server 202.39.157.151 # 當然要讓 Server 可以進入我們的 NTP 主機啦!權限要開放啊! restrict 210.59.157.10 restrict 210.59.157.30 restrict 202.39.157.155 restrict 210.59.157.40 restrict 210.59.157.41 restrict 202.39.157.151 driftfile /etc/ntp/drift |
[root@test
root]# date MMDDhhmmYYYY
MM:月份 DD:日期 hh:小時 mm:分鐘 YYYY:西元年 [root@test root]# date 082110002003 Thu Aug 21 10:00:00 CST 2003 # 時間立刻就修正了! [root@test root]# hwclock [-rw] -r:檢視目前的 BIOS 時間 -w:將目前 Linux 的時間寫入 BIOS 當中! [root@test root]# date ; hwclock -r Thu Aug 21 10:01:46 CST 2003 Thu 21 Aug 2003 09:57:52 AM CST 0.647923 seconds # 你可以看到, date 與 hwclock -r 所顯示的時間是『不一致的』! # 這就是因為 Linux 時間與 BIOS 時間不一致所導致的一個問題! # 我們需要以 hwclock -w 來將 Linux 時間寫入 BIOS 喔! [root@test root]# hwclock -w [root@test root]# date ; hwclock -r Thu Aug 21 10:03:42 CST 2003 Thu 21 Aug 2003 10:03:43 AM CST 0.113323 seconds # 呵呵!這樣時間就一致啦! |
[root@test
root]# ntpdate 192.168.0.2
# 那個 192.168.0.2 是我們剛剛建立的 NTP Server ,您也可以選擇 # time.stdtime.gov.tw 這部主機來校時喔! 21 Aug 10:05:29 ntpdate[23420]: step time server 192.168.0.2 offset -236.117047 sec [root@test root]# hwclock -w # 這樣時間就修正了!若要每日進行時間校正,可以寫入 cron [root@test root]# vi /etc/crontab # 加入這一行: 10 5 * * * root /usr/sbin/ntpdate 192.168.0.2 ; /sbin/hwclock -w |
NTP 伺服器在安全的相關性方面,其實剛剛我們在 /etc/ntp.conf 裡面的 restrict 參數中就已經設定了 NTP 這個 daemon 的服務限制範圍了!不過,在防火牆 iptables 的部分,還是需要啟用的啦!所以,在您的 iptables 規則的腳本 (scripts) 當中,需要加入這一段 (我是以開放 192.168.0.0/24 這個網域作為範例的!)
/sbin/iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24 \
> --dport 123 -j ACCEPT
若還要開放其他的網段或者主機,請自行修改您的防火牆機制咯!