OpenNTPD
OpenNTPD (المعروف أيضًا باسم OpenBSD NTP Daemon ) هو برنامج يعمل في أنظمة يونكس ، ويُنفذ بروتوكول وقت الشبكة (NTP) لمزامنة الساعة المحلية لنظام الكمبيوتر مع خوادم NTP البعيدة. كما أنه قادر على العمل كخادم NTP للعملاء المتوافقين مع بروتوكول NTP.
طُوِّر برنامج OpenBSD NTP Daemon في البداية بواسطة ألكسندر جاي وهينينغ براور كجزء من مشروع OpenBSD ، بمساعدة لاحقة من العديد من المؤلفين. تشمل أهداف تصميمه الأمان ( عدم إمكانية استغلاله )، وسهولة التكوين، والدقة الكافية لمعظم الأغراض. يتم تطوير نسخته المحمولة ، مثل OpenSSH ، [ 3 ] كمشروع فرعي يُضيف رمز قابلية النقل إلى نسخة OpenBSD ويُصدرها بشكل منفصل. طوّر برنت كوك النسخة المحمولة. [ 4 ] يتلقى مطورو المشروع تمويلًا من مؤسسة OpenBSD .
تاريخ
كان الدافع وراء تطوير OpenNTPD مجموعة من المشكلات التي واجهتها برامج NTP الحالية: صعوبة التكوين، وتعقيد الكود وصعوبة مراجعته، وعدم ملاءمة الترخيص. [ 5 ] صُمم OpenNTPD لحل هذه المشكلات وجعل مزامنة الوقت متاحة لشريحة أوسع من المستخدمين. بعد فترة من التطوير، ظهر OpenNTPD لأول مرة في OpenBSD 3.6. [ 6 ] أُعلن عن إصداره الأول في 2 نوفمبر 2004. [ 7 ]
الأهداف
يُعدّ OpenNTPD محاولةً من فريق OpenBSD لإنتاج تطبيقٍ لبرنامج NTP خفيّ يتسم بالأمان، وسهولة التدقيق ، وبساطة الإعداد والإدارة، ودقة معقولة، واستهلاك منخفض لموارد النظام. ولذلك، فإنّ أهداف تصميم OpenNTPD هي: الأمان، وسهولة الاستخدام، والأداء. [ 8 ] يتحقق الأمان في OpenNTPD من خلال فحص صحة قويّ في مسار إدخال الشبكة، واستخدام عمليات المخزن المؤقت المحدود عبر strlcpy ، وفصل الصلاحيات للتخفيف من آثار الثغرات الأمنية المحتملة التي قد تستغل البرنامج الخفيّ من خلال تصعيد الصلاحيات . ولتبسيط استخدام NTP، يُطبّق OpenNTPD مجموعةً أصغر من الوظائف مقارنةً بتلك المتوفرة في برامج NTP الخفية الأخرى، مثل تلك التي يُقدّمها مشروع بروتوكول وقت الشبكة (NTP). والهدف هو توفير ميزات كافية لتلبية الاستخدام النموذجي، حتى وإن لم تكن مناسبةً للمتطلبات المتخصصة أو النادرة. يتم تكوين OpenNTPD من خلال ملف التكوين ntpd.conf . [ ٩ ] تُقدَّم خيارات محدودة: عنوان 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 التابع لمشروع NTP (ntp.org). [ 10 ] داخليًا، لا يحافظ OpenNTPD على دقة تصل إلى أجزاء من الألف من الثانية، وقد يختلف وقته الفعلي بمقدار 50-200 مللي ثانية، وذلك لأنه يُهمل العديد من الخوارزميات التي تزيد الدقة لصالح تبسيط الكود. أقر مشروع OpenNTPD بهذه الانتقادات، لكنه أوضح أن عدم دقة أجزاء الميكروثانية كان تنازلًا تصميميًا يخدم البساطة والأمان. [ 10 ] تنص أهداف تصميم OpenNTPD على أن نية المشروع هي "الوصول إلى دقة معقولة" دون التضحية "بالتصميم الآمن من أجل الحصول على تلك النانوثانية الأخيرة أو الحالات الشاذة النادرة". [ 11 ]
في سبتمبر 2004، بعد فترة وجيزة من إصدار OpenNTPD 3.6، نشر براد نولز، أحد المساهمين في موقع ntp.org، مقالًا بعنوان "OpenNTPD يُعتبر ضارًا " [ 12 ] ينتقد فيه جوانب مختلفة من تطبيق OpenNTPD لبروتوكول NTP، بالإضافة إلى نموذج التطوير المجزأ الذي يستخدمه المشروع، وهو النموذج نفسه المستخدم في تطوير OpenSSH و OpenBGPD . في ديسمبر 2004، كتب دارين تاكر، المطور الرئيسي للفرع المحمول من OpenNTPD، ردًا مفصلًا على نولز، معترفًا بصحة بعض المشكلات، ورافضًا أخرى لعدم مبررها، ومعتبرًا بعضها الآخر مضللًا. [ 13 ] من بين المشكلات الأكثر خطورة التي أثارها نولز، ادعاء خوادم OpenNTPD أنها خوادم من الطبقة الأولى. مع ذلك، كانت هذه المشكلة قد حُلت بالفعل بحلول وقت رد تاكر. في مارس 2005، أقرّ نولز برد تاكر، وصرح بأنه "سيبذل قصارى جهده للعمل مع تاكر لحل أي مشكلات متبقية". [ 14 ] بالإضافة إلى ذلك، تم توسيع قسم الأسئلة الشائعة حول الشبكات في نظام OpenBSD ليشمل ردًا على انتقادات نولز الأولية. [ 15 ]
يُزعم حاليًا أن دقة OpenNTPD، وفقًا لعرض 21C3 لعام 2004، "تبلغ عادةً 50 مللي ثانية". [ 16 ]
الثواني الكبيسة
يتجاهل OpenNTPD (ونواة OpenBSD ) الثواني الكبيسة . [ 17 ] يجب توخي الحذر عند استخدام OpenNTPD كمصدر عالي الدقة لخوادم ntpd الأخرى، أو مع متطلبات زمنية عالية الدقة تعتمد على التوقيت العالمي المنسق . تُستخدم الثواني الكبيسة في التوقيت العالمي المنسق، ولكن ليس في التوقيت الذري الدولي أو إشارات نظام تحديد المواقع العالمي . كما أن دقة 50 مللي ثانية ليست نموذجية لمصدر عالي الدقة.
يوصي المرصد البحري الأمريكي والمكتب الدولي للأوزان والمقاييس بأن تُربط الأنظمة التي لا تستخدم الثواني الكبيسة بالتوقيت الذري الدولي، أو مباشرةً بإشارات توقيت نظام تحديد المواقع العالمي (GPS). [ 18 ] ومع ذلك، لا يوجد إصدار حالي من بروتوكول التوقيت الوطني (NTP) ( حتى عام 2023)يدعم ) مقاييس زمنية غير التوقيت العالمي المنسق (UTC).
مراجع
- ↑ "OpenNTPD" . تم الاطلاع عليه بتاريخ 9 ديسمبر 2020 .
- ↑ "إصدار OpenNTPD المحمول" . OpenBSD . تم الاطلاع عليه في 3 أبريل 2016 .
- ↑ "openssh/openssh-portable" . GitHub . تم الاطلاع عليه بتاريخ 13 مايو 2016 .
- ↑ "openntpd-portable/openntpd-portable" . GitHub . تم الاطلاع عليه بتاريخ 13 مايو 2016 .
- ↑ مشروع OpenNTPD. "أهداف OpenNTPD" . مشروع OpenNTPD . تم الاطلاع عليه بتاريخ 3 أبريل 2016 .
- ↑ مشروع OpenBSD (1 نوفمبر 2004). "OpenBSD 3.6" . مشروع OpenBSD . تم الاطلاع عليه بتاريخ 3 أبريل 2016 .
- ↑ براور، هينينغ (2 نوفمبر 2004). "إصدار OpenNTPD 3.6" . قائمة بريدية openbsd-announce . MARC . تاريخ الاسترجاع: 7 يونيو 2014 .
- ↑ براور، هينينغ (سبتمبر 2004). "الصفحة 3: OpenNTPD - أهداف التصميم" . مشروع OpenBSD . تم الاطلاع عليه في 16 سبتمبر 2006 .
- ↑ – دليل تنسيقات ملفات OpenBSD . 26 مايو 2006. تم الاطلاع عليه في 16 سبتمبر 2006.
- 1 2 مشروع OpenBSD (21 أغسطس 2006). "الأسئلة الشائعة 6.12.1: 'لكن OpenNTPD ليس دقيقًا مثل برنامج ntp.org!'"مشروع OpenBSD . مؤرشف من الأصل في 5 فبراير 2016. تم الاطلاع عليه في 14 مايو 2020 .
- ↑ مؤلفو OpenNTPD (2004)، "الأهداف" ، OpenNTPD ، مشروع OpenNTPD.
- ↑ نولز، براد (22 سبتمبر 2004). "يُعتبر OpenNTPd ضارًا" . يُعتبر ضارًا . مؤرشف من الأصل في 4 مارس 2005. تم الاسترجاع في 16 سبتمبر 2006 .
- ^ تاكر ، دارين (12 ديسمبر 2004). "الرد على OpenNTPd يعتبر ضارًا" . Advogato: مدونة لـ dtucker . تم الاسترجاع 16 سبتمبر 2006 .
- ↑ نولز، براد (12 مارس 2005). "تحديث: OpenNTPd..." يُعتبر ضارًا . مؤرشف من الأصل في 25 مايو 2006. تم الاطلاع عليه في 16 سبتمبر 2006 .
- ↑ مشروع OpenBSD (21 أغسطس 2006). "الأسئلة الشائعة: 6.12.2: 'زعم أحدهم أن OpenNTPD 'ضار'!"مشروع OpenBSD . مؤرشف من الأصل في 24 سبتمبر 2006. تم الاطلاع عليه في 16 سبتمبر 2006 .
- ↑ براور، هينينغ. "OpenBGPD وOpenNTPD" . quigon.bsws.de .
- ↑ "التعامل مع الثواني الكبيسة على طريقة OpenBSD" . مجلة OpenBSD . 28 يونيو 2015. تم الاطلاع عليه بتاريخ 9 أكتوبر 2018 .
- ↑ "الثواني الكبيسة" . مرصد البحرية الأمريكية . مؤرشف من الأصل في 24 ديسمبر 2017. تم الاطلاع عليه في 27 فبراير 2019 .
روابط خارجية
- برامج متعلقة بوقت الشبكة
- برمجيات بي إس دي
- أوبن بي إس دي
- برنامج OpenBSD الذي يستخدم ترخيص ISC
