Для любой локальной сети, а особенно доменной, для избежания проблем взаимодействия между сетевыми программами рекомендуется синхронизация компьютеров с сервером точного времени.
Наиболее популярной программой сервера точного времени является демон ntpd из пакета ntp. Ntp обычно устанавливать не требуется, программа уже входит в минимальный набор программ устанавливаемый вместе с системой.
Конфигурация сервера достаточно проста – создаем файл /etc/ntpd.conf с таким содержимым
#сервера синхронизации времени. 0 сервер выбран основным
server 0.pool.ntp.org iburst prefer
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst
#Отключаем мониторинг list (из-за уязвимости к DDoS атакам)
disable monitor
#Файл смещения - корректирует отклонение времени системных часов
driftfile /var/db/ntpd.drift
#логфайл демона ntpd
logfile /var/log/ntp.log
#разрешаем доступ на изменение времени через локальный интерфейс
restrict 127.0.0.1
# Разрешаем менять наше время с серверов с которыми сверяемся
restrict 0.pool.ntp.org noquery notrap
restrict 1.pool.ntp.org noquery notrap
restrict 2.pool.ntp.org noquery notrap
restrict 3.pool.ntp.org noquery notrap
#сервер времени может принимать запросы только из локальной сети
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap nopeer
Сервера точного времени с которыми мы собираемся сверяться лучше выбирать из своей временной зоны. Список серверов можно посмотреть здесь.
Вот и вся настройка, от root или sudo запускаем сервер, если он не был запущен
#ntpd -c /etc/ntp.conf
если был запущен, как это обычно бывает в debian и ubuntu – перезапускаем ntpd
#sudo /etc/init.d/ntp restart
Убедимся что в логе /var/log/ntp.log нет ошибок и демон корректно запустился. Теперь надо подождать минут 15-20, пока пройдет полная синхронизация времени между вашим сервером и серверами интернет.
Проверяем сервера синхронизации. “+” показывает тот сервер с которым в последний раз была синхронизация
# ntpq -c peers
remote refid st t when poll reach delay offset jitter
==============================================================================
*host-81.200.8.2 82.219.4.31 3 u 41 256 377 25.596 -3.286 0.181
+ns.mipt.ru 62.117.76.138 2 u 117 128 377 16.996 0.371 0.331
-95.140.94.2 193.79.237.14 2 u 111 128 377 9.457 5.808 0.349
+ddt2.static.cor 192.36.143.151 2 u 108 128 377 51.185 -5.608 1.775
Запрос на синхронизацию с самим собой
#ntpdate -q localhost
server 127.0.0.1, stratum 4, offset -0.000003, delay 0.02562
27 Sep 17:16:23 ntpdate[16306]: adjust time server 127.0.0.1 offset -0.000003 sec
Самой лучшей проверки работы сервера времени будет успешная синхронизация времени клиентского компьютера. Для клиентов ОС unix выполняем команду от root или sudo
#ntpdate <сервер времени>
например
# ntpdate gw
27 Sep 15:44:15 ntpdate[32159]: adjust time server 192.168.0.1 offset -0.272284 sec
Сервер работает и отдает правильное время – задача выполнена. Добавим загрузку демона в стартовые скрипты ОС и при необходимости открываем порт 123 udp.
Для FreeBSD
add pass udp from any to me 123 via <интерфейса_нашего_сервера>
add pass udp from me 123 to any via <интерфейса_нашего_сервера>
Для Linux
#пердполагается что все исходящее у нас разрешено по умолчанию
iptables -A INPUT -p udp -s 0/0 --sport 123 -d <ip_интерфейса_нашего_сервера> \
--dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
В большинстве linux дистрибутивов что-то дополнительно для прописывания в запуск не требуется, это делается автоматически при установке пакета ntp.
Для FreeBSD добавим в /etc/rc.conf
ntpd_enable="YES"
ntpd_config="/etc/ntp/ntp.conf"
ntpd_sync_on_start="YES"
Для сети с доменом из win машин в GPO AD указываем включение сервиса времени на всех ПК, и указать сервер с кем синхронизироваться.