OpenNTPD是一個Unix系統網路時間協定(NTP)實現的守護行程,可以使電腦系統的本地時鐘與遠端NTP伺服器同步。它也可以作為一個NTP相容客戶端的NTP伺服器。

OpenNTPD
"Saving the world again... on time"
開發者OpenBSD計劃
目前版本6.2p3(2017年10月30日)
原始碼庫 編輯維基數據鏈結
作業系統跨平台
類型時間同步
許可協定BSD
網站www.openntpd.org

OpenNTPD作為OpenBSD計劃的一部分,主要由亨寧·布勞爾負責開發。其設計目標包括安全(不可被利用)、易於組態、在大多數情況足夠精確及可在BSD許可證下分發原始碼。如OpenSSH,它另有一個單獨的子專案來開發可移植版本,其為OpenBSD的版本添加了相容性代碼,且與主專案分開發布新版本。可移植版由達倫·塔克開發。最新的可移植版發布於2006年。該專案的開發者得到了一些來自OpenBSD基金會的資助。

歷史

當時NTP守護行程的一系列問題促成了OpenNTPD的開發:難以組態,複雜、難以審計的代碼,及不合適的許可[1]。OpenNTPD的目標就是要解決這些問題,擴大時間同步的使用者數量。經過一段時間的開發,OpenBSD 3.6中第一次出現了OpenNTPD[2]。它的第一個版本於2004年11月2日發布[3]

目標

OpenBSD團隊計劃開發一個安全、易於安全審計、極簡的設定和管理、占用較小主記憶體的同時又能足夠精確的NTP守護行程實現,這就是OpenNTPD。因此,OpenNTPD的設計目標是:安全、易用及效能[4]。強力的網路輸入路徑有效性檢查、由strlcpy保證的有界緩衝區操作、權限分離以防止利用守護行程進行權限提升,減小可能存在的安全漏洞的影響,這些都使得OpenNTPD更加安全。為了簡化NTP的使用,較其它如網路時間協定專案所提供的NTP守護行程,OpenNTPD只實現了部分功能。只提供足夠的功能的目標對典型的使用已經足夠,但卻可能無法滿足奇怪或或特殊的需求。OpenNTPD通過ntpd.conf設定檔進行組態[5]。其中提供的選項也是最小化的:OpenNTPD監聽的IP位址或主機名,將要修改的時間裝置,及用於同步時間的一組伺服器。OpenNTPD盡力做到精確;守護行程會儘可能精確,但不對具體的精度做出保證。

範例

OpenNTPD逐步調整系統時鐘,如在64位元Arch Linux系統上執行OpenNTPD輸出範例所示:

[root@nikolai karam]# more /var/log/daemon.log | grep ntp | grep adjusting | tail -20
Aug  4 02:58:21 nikolai ntpd[4784]: adjusting local clock by -2.134620s
Aug  4 03:02:38 nikolai ntpd[4784]: adjusting local clock by -1.983869s
Aug  4 03:06:53 nikolai ntpd[4784]: adjusting local clock by -1.884521s
Aug  4 03:08:28 nikolai ntpd[4784]: adjusting local clock by -1.819296s
Aug  4 03:12:46 nikolai ntpd[4784]: adjusting local clock by -1.712934s
Aug  4 03:15:48 nikolai ntpd[4784]: adjusting local clock by -1.607747s
Aug  4 03:19:31 nikolai ntpd[4784]: adjusting local clock by -1.535188s
Aug  4 03:21:05 nikolai ntpd[4784]: adjusting local clock by -1.439628s
Aug  4 03:24:56 nikolai ntpd[4784]: adjusting local clock by -1.376086s
Aug  4 03:29:12 nikolai ntpd[4784]: adjusting local clock by -1.271529s
Aug  4 03:32:20 nikolai ntpd[4784]: adjusting local clock by -1.162333s
Aug  4 03:36:08 nikolai ntpd[4784]: adjusting local clock by -1.023899s
Aug  4 03:40:02 nikolai ntpd[4784]: adjusting local clock by -0.902637s
Aug  4 03:43:43 nikolai ntpd[4784]: adjusting local clock by -0.789431s
Aug  4 03:47:35 nikolai ntpd[4784]: adjusting local clock by -0.679320s
Aug  4 03:50:45 nikolai ntpd[4784]: adjusting local clock by -0.605858s
Aug  4 03:53:31 nikolai ntpd[4784]: adjusting local clock by -0.529821s
Aug  4 03:56:33 nikolai ntpd[4784]: adjusting local clock by -0.429573s
Aug  4 03:59:46 nikolai ntpd[4784]: adjusting local clock by -0.312575s
Aug  4 04:03:14 nikolai ntpd[4784]: adjusting local clock by -0.232646s
[root@nikolai karam]#

批評

OpenNTPD被批評[6]沒有網路時間協定專案的NTP守護行程[7]精確。OpenNTPD專案也承認這種說法的合理性,但它聲稱這是在微秒精度和OpenNTPD提供的簡便性及安全性之間做出的平衡。

OpenNTPD也被批評違反了NTP協定,因為其在傳輸資料時省略掉了精確性資訊:OpenNTPD伺服器聲明自己是無限精確的(早期版本在第1層聲明;雖然前述問題已得到修復[8],OpenNTPD 3.9p1仍然提供的是零誤差時間[9])。

在OpenNTPD3.6發布後不久,布拉德·諾爾斯發表了一篇題為《OpenNTPd是有害的》[10]的文章,從各個方面批評了OpenNTPD,以及該專案及OpenSSHOpenBGPD所採用的拆分開發模式。作為回應,OpenNTPD可移植分支的主要開發者達倫·塔克寫了一篇詳細的文章[8],闡述了一些在OpenNTPD 3.6.1所解決的問題,並認為諾爾斯的一些言論「有誤導之嫌」。諾爾斯的文章也使OpenBSD網路常見問題添加了一個章節[11],解釋和反駁其主張。

參考

  1. ^ The OpenNTPD Project. OpenNTPD Goals. The OpenNTPD Projec. 22 December 2004 [7 June 2014]. (原始內容存檔於2014-10-12). 
  2. ^ The OpenBSD Project. OpenBSD 3.6. The OpenBSD Project. 1 November 2004 [7 June 2014]. (原始內容存檔於2014-05-16). 
  3. ^ Brauer, Henning. OpenNTPD 3.6 released (郵寄清單). 2 November 2004 [7 June 2014]. (原始內容存檔於2015-12-21).  |mailinglist=|website=只需其一 (幫助); |website=被忽略 (幫助)
  4. ^ Brauer, Henning. Page 3: OpenNTPD – Design Goals. The OpenBSD Project. September 2004 [16 September 2006]. (原始內容存檔於2016-03-04). 
  5. ^ ntpd.conf(5) – OpenBSD檔案格式(File Formats)手冊頁. 26 May 2006. Retrieved 16 September 2006.
  6. ^ The OpenBSD Project. 6.12.1 – "But OpenNTPD isn't as accurate as the ntp.org daemon!". The OpenBSD Project. 21 August 2006 [16 September 2006]. (原始內容存檔於2014-06-23). 
  7. ^ 网络时间协议项目官方网站. [2014-06-07]. (原始內容存檔於2017-09-05). 
  8. ^ 8.0 8.1 Tucker, Darren. Response to OpenNTPd Considered Harmful. Advogato: Blog for dtucker. 12 December 2004 [7 June 2014]. (原始內容存檔於2012-10-31). 
  9. ^ #436995 - Incorrect values for root delay and dispersion. Debian Bug report logs. 8 Mar 2012 [7 June 2014]. (原始內容存檔於2019-02-17). 
  10. ^ Knowles, Brad. OpenNTPd Considered Harmful. Considered Harmful. 22 September 2004 [16 September 2006]. (原始內容存檔於2005年3月4日). 
  11. ^ The OpenBSD Project. 6.12.2 - "Someone has claimed that OpenNTPD is 'harmful'!". The OpenBSD Project. 21 August 2006 [16 September 2006]. (原始內容存檔於2014-06-23). 

外部連結