Представлен (http://www.openntpd.org/txt/release-5.7p1.txt) релиз cервера синхронизации точного времени OpenNTPD 5.7p1 (http://www.openntpd.org/), развиваемого проектом OpenBSD. Это первый переносимый (http://openntpd.org/portable.html) выпуск OpenNTPD, рассчитанный на работу в операционных системах отличных от OpenBSD, представленный после длительного перерыва. Прошлая переносимая версия OpenNTPD 3.9p1 вышла в 2006 году, после чего из-за отсутствия интереса к портированию развитие OpenNTPD ограничивалось только платформой OpenBSD. Интерес к работе OpenNTPD на других платформах возродился после выявления (https://www.opennet.ru/opennews/art.shtml?num=41309) критической уязвимости в NTPD и осознания (https://www.opennet.ru/opennews/art.shtml?num=41318) проблематичности повышения качества кода из-за раздутости кодовой базы NTPD. За разработкой переносимой версии можно проследить в зеркале (https://github.com/openntpd-portable/openntpd-portable) репозитория на GitHub.
OpenNTPD создан в 2004 году для замены демона ntpd, который по лицензионным соображениям пришлось удалить из базовой системы и переместить в порты. Проект обеспечивает поддержку протокола NTP в соответствии с RFC 1305 и RFC 5905, но в отличие от остальных реализаций NTPD развивается с первичной оглядкой на обеспечение безопасности и обладает только самым необходимым набором возможностей (простой и понятный для аудита код). Для дополнительной защиты в OpenNTPD применяется механизм разделения привилегий, разделяющий работу непривилегированного кода обработки сетевых соединений от привилегированного кода установки времени. Демон ntpd запускается в отдельном изолированном chroot-окружении. Реализация кода определения имён через DNS работает в асинхронном режиме, т.е. определение имени будет выполнено даже если демон стартовал в момент, когда не было доступно сетевое соединение.
Поддерживается как синхронизация локального времени с удалённым NTP-сервером, так и работа в роли NTP-сервера, который в том числе может получать точное время от специального оборудования через sensorsd(8) (http://www.openbsd.org/cgi-bin/man.cgi?query=sensorsd). Настройка осуществляется через файл конфигурации
ntpd.conf (http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man5/...). Работа OpenNTPD 5.7p1 проверена в Linux (Ubuntu 12.04, 14.04), FreeBSD (9.x, 10.x), Solaris (10.x, 11.x) и OS X (10.9).
Особенности новой версии:
- Переход на новую сборочную инфраструктуру, основанную на наработках переносимых версий OpenSSH и LibreSSL;
- Исходные тексты интегрированы непосредственно в дерев OpenBSD с внесением небольших ручных изменений, нацеленных на упрощение сопровождения;
- Удаление поддержки устаревших операционных систем (IRIX, HP-UX, AIX и т.п.), для которых не подтверждена работоспособность OpenNTPD и не обновлён переносимый код;
- Поддержка протокола SNTPv4 (Simple Network Time Protocol), определённого в RFC 5905;
- Поддержка виртуализации таблицы маршрутизации (rdomain) для ограничения доступа по сети;
- Создана утилита ntpctl (http://www.openbsd.org/cgi-bin/man.cgi?query=ntpctl), позволяющая на лету управлять работой демона ntpd (http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/...).
- Более точная корректировка часов, благодаря использованию вызовов adjfreq / ntp_adjtime, если они доступны;
- Проведена работа по увеличению отзывчивости (latency) на высоко нагруженных системах.
URL: http://www.openntpd.org/txt/release-5.7p1.txt
Новость: https://www.opennet.ru/opennews/art.shtml?num=41419