Введение
NTP (Network Time Protocol) - это протокол синхронизации часов сервера с центральным сервером времени. В стандартных образах Hetzner служба NTP уже преднастроена для работы с NTP-серверами Hetzner.
Шаг 1 - Установка службы NTP
Для синхронизации времени в собственной установке ОС сначала надо установить службу NTP. Она есть в каждом дистрибутиве Linux и может быть достаточно просто установлена.
Debian:
debian root # apt-get install ntp
Gentoo:
emerge ntp
OpenSuSE:
zypper install ntp
Шаг 2 - Настройка службы NTP
С января 2010 в Hetzner работают три сервера времени, которые используют протокол NTP. Они расположены в разных дата-центрах и имеют следующие адреса:
- ntp1.hetzner.de
- ntp2.hetzner.com
- ntp3.hetzner.net
Для того чтобы использовать эти серверы времени в Linux надо соответствующим образом настроить ntpd. Например, в Debian, три следующие строки можно добавить (или заменить существующие) в файл /etc/ntp.conf
:
server ntp1.hetzner.de iburst
server ntp2.hetzner.com iburst
server ntp3.hetzner.net iburst
Для более старых версий ntpd возможно потребуется добавить дополнительный параметр dynamic к каждой вышеуказанной строке с параметрами. Этот устаревший (еще в версии ntpd 4.х) параметр позволяет указать сервер, даже если он недоступен во время настройки.
Дополнительно, в конфигурационный файл можно добавить несколько публичных серверов:
server 0.de.pool.ntp.org
server 1.de.pool.ntp.org
server 2.de.pool.ntp.org
server 3.de.pool.ntp.org
Здесь ваш сервер выбирает любой немецкий NTP-сервер из пула. Это обеспечивает распределение запросов одновременно между несколькими серверами и повышает надёжность.
После изменения настроек NTP-сервера его надо перезапустить.
Шаг 3 - Безопасность
Так как ntp основан на протоколе UDP он уязвим при использовании распределенных атак типа «отказ в обслуживании», основанные на отражении и усилении трафика, известных как DRDoS атаки.
Если возможно, обновите ntp до версии 4.2.7p26 или более поздней. Либо заблокируйте все запросы статуса с помощью оператора noquery
.
Конфигурация, в которой используются только NTP сервера Hetzner следующая:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server ntp1.hetzner.de iburst
server ntp2.hetzner.de iburst
server ntp3.hetzner.de iburst
При такой настройке запрос конфигурации и состояния ограничены локальным хостом. в то время как сервер может обмениваться информацией о времени с другими серверами.
Другой вариант - игнорировать все запросы, кроме информации о времени от явно указанных серверов. Запросы конфигурации и состояния остаются только локальными.
restrict default ignore
restrict -6 default ignore
restrict 127.0.0.1
restrict -6 ::1
server ntp1.hetzner.de iburst
restrict 213.239.239.164 nomodify notrap nopeer noquery
restrict -6 2a01:4f8:0:a0a1::2:1 nomodify notrap nopeer noquery
server ntp2.hetzner.de iburst
restrict 213.239.239.165 nomodify notrap nopeer noquery
restrict -6 2a01:4f8:0:a101::2:3 nomodify notrap nopeer noquery
server ntp3.hetzner.de iburst
restrict 213.239.239.166 nomodify notrap nopeer noquery
restrict -6 2a01:4f8:0:a112::2:2 nomodify notrap nopeer noquery
Шаг 4 - Ручная синхронизация с NTP
Ручная синхронизация может понадобится после установки NTP-сервера. Вы можете сделать это с помощью ntpd или ntpdate (может потребуется установить отдельно):
ntpd -q -g
Опция "-g" означает, что ntpd будет синхронизировать часы даже если разница будет более 1000 секунд. Опция "-q" означает, что ntpd запустится только одни раз и завершится после синхронизациии.
ntpdate NTP-Server
ntpdate ptbtime1.ptb.de
Шаг 5 - Сохранение нового времени в аппаратные часы
Последнее по порядку, но не по важности, что следует сделать — это сохранить текущее время в аппаратные часы компьютера:
hwclock --systohc
В противном случае неправильное время вновь применится после перезагрузки.
Заключение
Теперь у вас есть настроенная служба времени, использующая безопасное подключение для синхронизации времени со сторонним сервером.