อ่าน 4 นาที
เปิดNTPD
OpenNTPD (หรือที่รู้จักกันในชื่อ OpenBSD NTP Daemon ) เป็น โปรแกรมทำงานเบื้องหลัง ( daemon) ใน ระบบ Unix ที่ใช้ โปรโตคอลเวลาเครือข่าย (Network Time Protocol)...
เปิดNTPD
| OpenNTPD (หรือที่เรียกว่า OpenBSD NTP Daemon) | |
|---|---|
"ช่วยโลกอีกครั้ง...ทันเวลา" | |
| นักพัฒนา | โครงการOpenBSD |
| เวอร์ชันเสถียร | |
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | OpenBSD , FreeBSD , NetBSD , Linux , macOS , Solaris [ 2 ] |
| มาตรฐาน | RFC 1305, RFC 5905 |
| พิมพ์ | การซิงโครไนซ์เวลา |
| ใบอนุญาต | ไอเอสซี |
| เว็บไซต์ | www.openntpd.org |
| ที่เก็บข้อมูล |
|
OpenNTPD (หรือที่รู้จักกันในชื่อOpenBSD NTP Daemon ) เป็น โปรแกรมทำงานเบื้องหลัง ( daemon) ใน ระบบ Unix ที่ใช้โปรโตคอลเวลาเครือข่าย (Network Time Protocol)เพื่อซิงโครไนซ์นาฬิกาภายในเครื่องคอมพิวเตอร์กับเซิร์ฟเวอร์ NTP ระยะไกล นอกจากนี้ยังสามารถทำหน้าที่เป็นเซิร์ฟเวอร์ NTP สำหรับไคลเอนต์ที่รองรับ NTP ได้อีกด้วย
OpenBSD NTP Daemon ได้รับการพัฒนาขึ้นครั้งแรกโดยAlexander GuyและHenning Brauerซึ่งเป็นส่วนหนึ่งของ โครงการ OpenBSD โดยได้รับความช่วยเหลือเพิ่มเติมจากผู้ เขียนหลายคน เป้าหมายในการออกแบบ ได้แก่ ความปลอดภัย ( ไม่สามารถถูกโจมตีได้ ) การกำหนดค่าที่ง่าย และความแม่นยำเพียงพอสำหรับวัตถุประสงค์ส่วนใหญ่ เวอร์ชัน พกพาเช่นเดียวกับOpenSSH [ 3 ]ได้รับการพัฒนาเป็นโครงการย่อยที่เพิ่มโค้ดการพกพาให้กับเวอร์ชัน OpenBSD และเผยแพร่แยกต่างหาก เวอร์ชันพกพาได้รับการพัฒนาโดย Brent Cook [ 4 ]ผู้พัฒนาโครงการได้รับเงินทุนบางส่วนจากมูลนิธิ OpenBSD
ประวัติศาสตร์
การพัฒนา OpenNTPD ได้รับแรงบันดาลใจจากปัญหาหลายประการของเดมอน NTP ในปัจจุบัน ได้แก่ การกำหนดค่าที่ยุ่งยาก โค้ดที่ซับซ้อนและตรวจสอบได้ยาก และการอนุญาตใช้งานที่ไม่เหมาะสม[ 5 ] OpenNTPD ได้รับการออกแบบมาเพื่อแก้ปัญหาเหล่านี้และทำให้การซิงโครไนซ์เวลาเข้าถึงได้ง่ายขึ้นสำหรับผู้ใช้ในวงกว้าง หลังจากช่วงเวลาของการพัฒนา OpenNTPD ปรากฏตัวครั้งแรกใน OpenBSD 3.6 [ 6 ]การเปิดตัวครั้งแรกได้รับการประกาศเมื่อวันที่ 2 พฤศจิกายน 2547 [ 7 ]
เป้าหมาย
OpenNTPD เป็นความพยายามของทีม OpenBSD ในการสร้างการใช้งาน NTP daemon ที่ปลอดภัยตรวจสอบได้ ง่าย ตั้งค่าและบริหารจัดการได้ง่าย มีความแม่นยำพอสมควร และใช้ทรัพยากรระบบน้อย ดังนั้นเป้าหมายในการออกแบบ OpenNTPD จึงได้แก่ ความปลอดภัย ความง่ายในการใช้งาน และประสิทธิภาพ[ 8 ]ความปลอดภัยใน OpenNTPD บรรลุผลได้ด้วยการตรวจสอบความถูกต้องที่แข็งแกร่งในเส้นทางอินพุตเครือข่าย การใช้การดำเนินการบัฟเฟอร์แบบจำกัดผ่านstrlcpyและการแยกสิทธิ์เพื่อลดผลกระทบของข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้นจากการโจมตี daemon ผ่านการยกระดับสิทธิ์เพื่อให้การใช้ NTP ง่ายขึ้น OpenNTPD จึงใช้ฟังก์ชันการทำงานที่น้อยกว่าที่มีอยู่ใน NTP daemon อื่นๆ เช่นที่จัดทำโดย Network Time Protocol Project วัตถุประสงค์คือเพื่อให้มีคุณสมบัติเพียงพอที่จะตอบสนองการใช้งานทั่วไปโดยมีความเสี่ยงที่จะไม่เหมาะสมสำหรับความต้องการเฉพาะหรือเฉพาะกลุ่ม OpenNTPD ได้รับการกำหนดค่าผ่านไฟล์การกำหนดค่าntpd.conf [ 9 ]มีตัวเลือกขั้นต่ำให้เลือก ได้แก่ ที่อยู่ IP หรือชื่อโฮสต์ที่ OpenNTPD ควรรับฟังอุปกรณ์เซ็นเซอร์ไทม์เดลต้าที่จะใช้ และชุดของเซิร์ฟเวอร์ที่จะซิงโครไนซ์เวลา ความแม่นยำของ OpenNTPD อยู่ในระดับความพยายามสูงสุด โดยเดมอนจะพยายามให้มีความแม่นยำมากที่สุดเท่าที่จะเป็นไปได้ แต่ไม่มีการรับประกันความแม่นยำที่เฉพาะเจาะจง
ตัวอย่าง
OpenNTPD จะค่อยๆ ปรับนาฬิการะบบทีละน้อย ดังที่เห็นได้จากผลลัพธ์ของ OpenNTPD ที่ทำงานบน ระบบ Linux ดังนี้ :
$ grep ntpd /var/log/daemon.log | grep adjusting 4 ส.ค. 03:32:20 nikolai ntpd[4784]: ปรับนาฬิกาภายในเครื่องโดย -1.162333 วินาที 4 ส.ค. 03:36:08 nikolai ntpd[4784]: ปรับนาฬิกาภายในเครื่องโดย -1.023899 วินาที 4 ส.ค. 03:40:02 nikolai ntpd[4784]: ปรับนาฬิกาภายในเครื่องโดย -0.902637 วินาที 4 ส.ค. 03:43:43 nikolai ntpd[4784]: ปรับนาฬิกาภายในเครื่องโดย -0.789431 วินาที 4 ส.ค. 03:47:35 nikolai ntpd[4784]: ปรับนาฬิกาภายในเครื่องโดย -0.679320 วินาที 4 ส.ค. 03:50:45 nikolai ntpd[4784]: ปรับนาฬิกาภายในเครื่องโดย -0.605858 วินาที 4 ส.ค. 03:53:31 nikolai ntpd[4784]: ปรับนาฬิกาภายในเครื่องโดย -0.529821 วินาที
การวิจารณ์
OpenNTPD ถูกวิพากษ์วิจารณ์ว่ามีความแม่นยำน้อยกว่าNTP daemonที่ผลิตโดย NTP Project (ntp.org) [ 10 ]ภายใน OpenNTPD ไม่รักษาความแม่นยำระดับมิลลิวินาที และอาจคลาดเคลื่อนจากเวลา "จริง" ได้ 50-200 มิลลิวินาที เนื่องจากละเว้นอัลกอริธึม ต่างๆ ที่เพิ่มความแม่นยำเพื่อความเรียบง่ายของโค้ด โครงการ OpenNTPD ยอมรับคำวิจารณ์ แต่ระบุว่าการขาดความแม่นยำระดับไมโครวินาทีเป็นข้อแลกเปลี่ยนในการออกแบบที่เอื้อประโยชน์ต่อความเรียบง่ายและความปลอดภัย[ 10 ]เป้าหมายการออกแบบของ OpenNTPD ระบุว่าเจตนาของโครงการคือ "[บรรลุ] ความแม่นยำที่เหมาะสม" โดยไม่เสียสละ "การออกแบบที่ปลอดภัยเพื่อให้ได้นาโนวินาทีสุดท้ายหรือกรณีพิเศษที่คลุมเครือ" [ 11 ]
ในเดือนกันยายน พ.ศ. 2547 ไม่นานหลังจากที่ OpenNTPD 3.6 ออกวางจำหน่าย Brad Knowles ผู้มีส่วนร่วมใน ntp.org ได้ตีพิมพ์บทความชื่อOpenNTPd Considered Harmful [ 12 ]ซึ่งวิพากษ์วิจารณ์แง่มุมต่างๆ ของการใช้งานโปรโตคอล NTP ของ OpenNTPD รวมถึงรูปแบบการพัฒนาแบบแยกส่วนที่โครงการใช้ ซึ่งใช้ในการพัฒนาOpenSSHและOpenBGPD ด้วย ในเดือนธันวาคม พ.ศ. 2547 Darren Tucker นักพัฒนาหลักในสาขาพกพาของ OpenNTPD ได้เขียนคำตอบโดยละเอียดถึง Knowles โดยยอมรับว่าบางประเด็นมีความถูกต้อง ปฏิเสธประเด็นอื่นๆ อีกหลายประเด็นว่าไม่สมเหตุสมผล และพิจารณาว่าประเด็นอื่นๆ นั้นทำให้เข้าใจผิด[ 13 ]ในบรรดาประเด็นที่ร้ายแรงกว่าที่ Knowles ยกขึ้นมาคือเซิร์ฟเวอร์ OpenNTPD อ้างว่าเป็นเซิร์ฟเวอร์ stratum 1 อย่างไรก็ตาม ปัญหานี้ได้รับการแก้ไขแล้วในขณะที่ Tucker ตอบกลับ ในเดือนมีนาคม พ.ศ. 2548 โนว์ลส์รับทราบการตอบกลับของทักเกอร์ และระบุว่าเขาจะ "ทำทุกอย่างที่ทำได้เพื่อร่วมมือกับทักเกอร์เพื่อแก้ไขปัญหาที่เหลืออยู่" [ 14 ]นอกจากนี้ คำถามที่พบบ่อยเกี่ยวกับเครือข่ายของ OpenBSD ยังได้รับการขยายเพิ่มเติมเพื่อตอบสนองต่อคำวิจารณ์เบื้องต้นของโนว์ลส์[ 15 ]
ข้ออ้างความแม่นยำของ OpenNTPD ในปัจจุบันมาจากการนำเสนอ 21C3 ในปี 2004 ซึ่งระบุว่า "โดยทั่วไปอยู่ที่ 50 มิลลิวินาที" [ 16 ]
วินาทีอธิกมาส
OpenNTPD (และ เคอร์เนล OpenBSD ) ไม่สนใจวินาทีอธิกมาส [ 17 ] ควรใช้ความระมัดระวังเมื่อใช้ OpenNTPD เป็นแหล่งข้อมูลระดับสูงสำหรับเซิร์ฟเวอร์ ntpd อื่นๆ หรือเมื่อมีความต้องการเวลาความละเอียดสูงที่อ้างอิงเวลาสากลเชิงพิกัด (Coordinated Universal Time ) วินาทีอธิกมาสถูกใช้ในเวลาสากลเชิงพิกัด แต่ไม่ได้ใช้ในเวลาอะตอมสากล (International Atomic Time)หรือ สัญญาณเวลา ของระบบกำหนดตำแหน่งทั่วโลก (Global Positioning System ) ความแม่นยำ 50 มิลลิวินาทีก็ไม่ใช่เรื่องปกติสำหรับแหล่งข้อมูลระดับสูงเช่นกัน
หอดูดาวกองทัพเรือสหรัฐฯและสำนักงาน ระหว่างประเทศว่าด้วยการ วัดและวัด (Bureau International des Poids et Mesures)แนะนำว่าระบบที่ไม่ใช้วินาทีอธิกสุรทินควรอ้างอิงกับเวลาอะตอมสากล หรืออ้างอิงโดยตรงกับสัญญาณเวลา GPS [ 18 ]อย่างไรก็ตาม NTP เวอร์ชันปัจจุบัน (ณ ปี 2023) ยังไม่รองรับมาตราเวลาที่ไม่ใช่ UTC
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เปิดNTPD
OpenNTPD (หรือที่รู้จักกันในชื่อ OpenBSD NTP Daemon ) เป็น โปรแกรมทำงานเบื้องหลัง ( daemon) ใน ระบบ Unix ที่ใช้ โปรโตคอลเวลาเครือข่าย (Network Time Protocol)...
ประวัติศาสตร์
การพัฒนา OpenNTPD ได้รับแรงบันดาลใจจากปัญหาหลายประการของเดมอน NTP ในปัจจุบัน ได้แก่ การกำหนดค่าที่ยุ่งยาก โค้ดที่ซับซ้อนและตรวจสอบได้ยาก และการอนุญาตใช้งานที่ไม่เหมาะสม [ 5 ] OpenNTPD...
เป้าหมาย
OpenNTPD เป็นความพยายามของทีม OpenBSD ในการสร้างการใช้งาน NTP daemon ที่ปลอดภัย ตรวจสอบได้ ง่าย ตั้งค่าและบริหารจัดการได้ง่าย มีความแม่นยำพอสมควร และใช้ทรัพยากรระบบน้อย ดังนั้นเป้าหมายในการออกแบบ OpenNTPD จึงได้แก่ ความปลอดภัย ความง่ายในการใช้งาน...
ตัวอย่าง
OpenNTPD จะค่อยๆ ปรับนาฬิการะบบทีละน้อย ดังที่เห็นได้จากผลลัพธ์ของ OpenNTPD ที่ทำงานบน ระบบ Linux ดังนี้ :