2012年3月5日 星期一

[ How-To] Debain NTP-server


OS : Debian 6.04

安裝套件
# apt-get install ntp

設定conf 檔
# cp /etc/ntp.conf.dpkg-dist  /etc/ntp.conf

設定說明

1. 先處理權限方面的問題,包括放行上層伺服器以及開放區網用戶來源:

# vim /etc/ntp.conf

# restrict [你的IP] mask [netmask_IP] [parameter]


parameter 參數:

    ignore  : 拒絕所有類型的 NTP 連線;
    nomodify: 用戶端不能使用 ntpc 與 ntpq 這兩支程式來修改伺服器的時間參數,
        但用戶端仍可透過這部主機來進行網路校時的;
    noquery:用戶端不能夠使用 ntpq, ntpc 等指令來查詢時間伺服器,等於不提供 NTP 的網路校時囉;
    notrap: 不提供 trap 這個遠端事件登錄 (remote event logging) 的功能。
    notrust: 拒絕沒有認證的用戶端。
    無      : 表示『該 IP 或網段不受任何限制』的意思。

restrict default kod nomodify notrap nopeer noquery     <==拒絕 IPv4 的用戶
restrict -6 default kod nomodify notrap nopeer noquery  <==拒絕 IPv6 的用戶
restrict 220.130.158.71   <==放行 tock.stdtime.gov.tw 進入本 NTP 伺服器
restrict 59.124.196.83    <==放行 tick.stdtime.gov.tw 進入本 NTP 伺服器
restrict 59.124.196.84    <==放行 time.stdtime.gov.tw 進入本 NTP 伺服器
restrict 127.0.0.1        <==底下兩個是預設值,放行本機來源
restrict -6 ::1
restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行區網來源


2. 設定主機來源,請先將原本的 [0|1|2].centos.pool.ntp.org 的設定註解掉:

# server [IP or hostname] [prefer]

server 220.130.158.71 prefer  <==以這部主機為最優先
server 59.124.196.83
server 59.124.196.84



3.預設時間差異分析檔案與暫不用到的 keys 等,不需要更動它:

# driftfile [可以被 ntpd 寫入的目錄與檔案]

driftfile /var/lib/ntp/drift
keys      /etc/ntp/keys    後面跟著的是存放 keys 資訊的檔案 .(Client 向 Server 連結的時候 , 可用 key 認證-ntp-keygen)



NTP 的啟動與觀察

1. 啟動 NTP
# /etc/init.d/ntpd start
# chkconfig ntpd on
# tail /var/log/messages  <==自行檢查看看有無錯誤
# tail -f /var/log/syslog

2. 觀察啟動ntp-sever 的 123 埠口是否有開啟:

# netstat -tlunp |grep ntp

udp        0      0 192.168.15.161:123      0.0.0.0:*                      1692/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           1692/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                             1692/ntpd
udp6       0      0 fe80::20c:29ff:fe65:123 :::*                                1692/ntpd
udp6       0      0 ::1:123                 :::*                                1692/ntpd
udp6       0      0 :::123                  :::*                                1692/ntpd


3.如何確認 NTP 伺服器有順利向上層連線後的更新本機的時間
列出目前 NTP-server 與相關的上層 NTP 的狀態

# ntpq -p

 remote             refid        st t when poll reach   delay   offset  jitter
========================================================================
*alqualonde.org  220.130.158.71   3 u   26   64    1   59.984   31.040   9.175
 59-125-147-68.h 220.130.158.72   3 u   25   64    1   15.194    7.389   3.562
 59-124-196-83.h 59.124.196.87    2 u   24   64    1   27.462    5.209   8.279
 59-124-196-84.h 59.124.196.87    2 u   23   64    1   27.716    5.532   7.376



remote:亦即是 NTP 主機的 IP 或主機名稱囉~注意最左邊的符號

    如果有『 * 』代表目前正在作用當中的上層 NTP
    如果是『 + 』代表也有連上線,而且可作為下一個提供時間更新的候選者。

refid:參考的上一層 NTP 主機的位址
st:就是 stratum 階層囉!
when:幾秒鐘前曾經做過時間同步化更新的動作;
poll:下一次更新在幾秒鐘之後;
reach:已經向上層 NTP 伺服器要求更新的次數
delay:網路傳輸過程當中延遲的時間,單位為 10^(-6) 秒
offset:時間補償的結果,單位與 10^(-3) 秒
jitter:Linux 系統時間與 BIOS 硬體時間的差異時間, 單位為 10^(-6) 秒。







其它補充說明

用手動寫入校對時間
# crontab -e
0 0 * * * /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w

ntpdate:與 NTP Server 進行時間同步的指令,後面接的是所要同步的 NTP Server。
hwclock:可讀取 BIOS 的時間及將時間寫入 BIOS。    


參考網站 :
ntp-keygen  


沒有留言:

張貼留言