NTP - Network Time Protocol.
Во FreeBSD есть 2 способа изменения системного времени: скачком при загрузке системы (ntpdate) и постоянная синхронизация с помощью демона ntpd.
Использование ntpdate может быть оправдано на некритичных рабочих станциях, на которых частая синхронизация не нужна, достаточно синхронизации времени при загрузке. На серверах неоходимо использовать ntpd, ну а самым правильным будет использование ntpdate и ntpd вместе.
NTPDATE
Добавляем 2 строки в /etc/rc.conf:
#echo “ntpdate_enable=”YES”” >> /etc/rc.conf
#echo “ntpdate_flags=”Europe.pool.ntp.org”” >> /etc/rc.conf
При загрузке системы и наличии интернета системное время скачком будет синхронизировано с временем ntp сервера.
NTPD
Создаем конфигурационный файл в /etc:
#cd /etc
#touch ntp.conf
Создаем файлы лога и дрифта (используется для хранения смещения системного времени):
#cd /var/log
#touch ntp.log
#cd /var/db
#touch ntp.drift
Редактируем конфигурационный файл /etc/ntp.conf:
server 198.123.30.132 prefer #NASA time server
server 194.159.73.43 #ntp.demon.nl
server 193.92.123.152
driftfile /var/db/ntp.drift #specify drift file
logfile /var/log/ntp.log # specify log file
restrict default ignore #deny all requests
restrict 127.0.0.1 #allow localhost
restrict 198.123.30.132 noquery notrap #allow reguests to/from 1st server
restrict 194.159.73.43 noquery notrap #allow reguests to/from 2nd server
restrict 193.92.123.152 noquery notrap #allow reguests to/from 3rd server
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap #allow requests from LAN
Блок restrict последовательно запрещает все запросы (по умолчанию сервер доступен всем), разрешает локалхост, разрешает ntp-запросы с / на ntp-сервера, объявленные ранее, разрешает запросы из локальной сети.
Добавляем правила в фаервол для разрешения порта tcp 123. Пример – разрешение доступа из локальной сети, IPFW:
******
cmd="/sbin/ipfw -q add"
******
${cmd} allow tcp from ${lan} to ${ip_server} 123 in recv ${if_lan}
${cmd} allow tcp from ${ip_server} 123 to ${lan} out xmit ${if_lan}
${cmd} allow tcp from ${lan} 123 to ${ip_server} in recv ${if_lan}
${cmd} allow tcp from ${ip_server} to ${lan} 123 out xmit ${if_lan}
Запуск сервера:
#/usr/sbin/ntpd –p /var/run/ntpd.pid
Для автозапуска добавляем в /etc/rc.conf такие стороки:
#echo “ntpd_enable=”YES”” >> /etc/rc.conf
#echo “ntpd_flags=”-c /etc/ntp.conf –l /var/log/ntp.log –p /var/run/ntpd.pid”” >> /etc/rc.conf
Синхронизироваться с сервером с клиентских машин пробуем где-то через час, пока время на сервере засинхронизируется с ntp-серверами.
Просмотреть статус ntp-серверов:
#ntpq –c peers
Вот и все
Пару слов о настройке клиентов на Windows.
Windows XP
Сервер прописывается в меню панели инструментов «Дата и время». Возможная ошибка при синхронизации: «страта другого узла меньше чем у этого компьютера». Что это значит? В двух словах, страта (stratum) - это нечто вроде приоритета сервера в протоколе синхронизации времени (NTP). Значение 1 имеют эталонные сервера, соединенные с атомными часами. Те сервера, которые сверяются с эталонными, имеют страту 2 и так далее. Данная ошибка говорит, что Ваша система считает свои внутренние часы более точными, чем на NTP-сервере. Что делать? Либо ваш ntp-сервер еще не засинхронизировался, прописать минимум 3 доступных ntp-сервера в файле конфигурации.
Windows 2000
Прописываем сервера:
#net time /setsntp:$ntp-server address$
В ключе /setsntp после двоеточия указывается серевер или список серверов времени. Указывать сервера можно как по имени (см. в приведенном выше примере), так и по IP-адресу. Если указывается список из нескольких серверов, то нужно заключить этот список в кавычки, разделяя сервера в списке пробелами.
Консольная команда net time /querysntp выводит текущий список серверов, которые установлены для синхронизации времени.
Стартуем службу из командной строки:
#net start w32time
Запустить службу можно из оснастки управления службами.