Настройка Сервера Точного Времени (NTP)

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настройка Сервера Точного Времени (NTP)

Сообщение RomA »

Первое, с чего следует начать настройку фри - это с установки сервера точного времени, или с синхранизации с уже имеющимся. Нужно это для того, что бы не путаться в показаниях логов. Сегодня мы какраз и рассмотрим как это сделать.
Всё что надо у нас на сервере уже стоит, потому приступаем сразу к конфигурированию. В современных системах файл конфига уже присутствует, но в старых его еще не было, потому если нет, то создаём файл конфига

Код: Выделить всё

touch /etc/ntp.conf
и добавляем в него следующие данные

Код: Выделить всё

server ntp1.imvp.ru
server ntp1.oma.be
server ptbtime2.ptb.de
server ntp1.nl.net
server ntp1.inrim.it
server ntp.certum.pl
driftfile /etc/ntp.drift
logfile /var/log/ntp.log
restrict default ignore             
restrict 127.0.0.1                      
restrict ntp1.imvp.ru noquery notrap    
restrict ntp1.oma.be noquery notrap   
restrict ptbtime2.ptb.de noquery notrap   
restrict ntp1.nl.net noquery notrap        
restrict ntp1.inrim.it noquery notrap     
restrict ntp.certum.pl noquery notrap 
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap
Синтаксис прост - сначала мы описываем сервер с которыми хотели бы синхрится, потом мы даём этим серверам права для изменения времени у нас на сервере, ну и в конце описываем нашу сетку - каким ИП адресам мы разрешаем доступ к нашему сервере для сверки времени, но изменение времени для них у себя на сервере запрещаем. таким образом у нас появляются сервера которые могут менять наше время, тем самым делая его правильным, и сервера, которые просто спрашивают у нас точное время

Теперь самое время прописать запуск сервера точного времени в автозагрузку, то есть идем в /etc/rc.conf куда добавляем

Код: Выделить всё

#
ntpdate_enable="NO"
ntpd_enable="YES"
ntpd_program="/usr/sbin/ntpd"
ntpd_flags="-p /var/run/ntpd.pid"
ntpd_sync_on_start="YES"
#
часть ntpd_sync_on_start заставляет сервер при загрузке синхронизировать своё время с сервером в интернете. Список серверов берёт из конфига
часть ntpd запускает наш собственный сервер синхронизации

давайте переходить к запуску.. для начала просинхрим совё время вручную с выбранным сервером

Код: Выделить всё

hotel# ntpdate -u ntp1.imvp.ru
22 Mar 12:42:22 ntpdate[1103]: step time server 62.117.76.134 offset -4426.682381 sec
и проверим что всё верно

Код: Выделить всё

hotel# date
Tue Mar 22 12:42:25 MSK 2011

Теперь попробуем запустить сервер точного времени

Код: Выделить всё

hotel# /etc/rc.d/ntpd start
Starting ntpd.
это если запущен ntpdate сервер и ли просто

Код: Выделить всё

hotel# /etc/rc.d/ntpd start
Starting ntpd.
если делаем уже всё по новой схеме

Проверить работу

Код: Выделить всё

hotel# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 www.naos.ru     .INIT.          16 u    -   64    0    0.000    0.000   0.002
 ntp1.oma.be     .INIT.          16 u    -   64    0    0.000    0.000   0.002
 ptbtime2.ptb.de .INIT.          16 u    -   64    0    0.000    0.000   0.002
 ntp1.nl.uu.net  .INIT.          16 u    -   64    0    0.000    0.000   0.002
 ntp1.inrim.it   .INIT.          16 u    -   64    0    0.000    0.000   0.002
 smtp.certum.pl  .INIT.          16 u    -   64    0    0.000    0.000   0.002
hotel# 
Сервер заработал, иначе бы мы получили вот такое сообщение

Код: Выделить всё

hotel# ntpq -p
ntpq: read: Connection refused
но у нас всё хорошо и через некоторое время информация начинает меняться - сервер раставляет приоритеты, определяет какой сервер что из себя представляет

Код: Выделить всё

hotel# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 www.naos.ru     .INIT.          16 u    -   64    0    0.000    0.000   0.000
 ntp1.oma.be     .PPS.            1 u   57   64    1   71.547  -27.758   0.002
 ptbtime2.ptb.de .PTB.            1 u   56   64    1   83.633  -34.082   0.002
 ntp1.nl.uu.net  .PPS.            1 u   55   64    1   72.168  -28.121   0.002
 ntp1.inrim.it   .INIT.          16 u    -   64    0    0.000    0.000   0.000
 smtp.certum.pl  .PPS.            1 u   53   64    1  103.083  -25.940   0.002
hotel#
появляются приоритетные сервера, отбрасываются ненужные. Определяет это он по тому,на сколько время тех серверов отличается от наших, и какая у них страта. В итоге будут выбраны сервера, временя между которыми различаются незначительно

Код: Выделить всё

hotel# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 http://www.naos.ru     .INIT.          16 u    -   64    0    0.000    0.000   0.000
*ntp1.oma.be     .PPS.            1 u   43   64   17   70.318  -27.717   3.069
-ptbtime2.ptb.de .PTB.            1 u   43   64   17   88.068  -32.688   3.744
+ntp1.nl.uu.net  .PPS.            1 u   40   64   17   72.162  -26.885   3.119
 ntp1.inrim.it   .INIT.          16 u    -   64    0    0.000    0.000   0.000
+smtp.certum.pl  .PPS.            1 u   37   64   17  102.958  -23.682   3.569
hotel#
ещё через некоторые время картина поменяется окончательно и будут выбраны 3 конкретные сервера для синхронизации

Код: Выделить всё

hotel# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 www.naos.ru     .INIT.          16 u    -   64    0    0.000    0.000   0.000
*ntp1.oma.be     .PPS.            1 u   14   64   77   70.472  -19.341   9.457
+ptbtime2.ptb.de .PTB.            1 u   17   64   77   80.963  -24.636   9.784
+ntp1.nl.uu.net  .PPS.            1 u   13   64   77   72.027  -18.670   9.487
 ntp1.inrim.it   .INIT.          16 u    -   64    0    0.000    0.000   0.000
+smtp.certum.pl  .PPS.            1 u    9   64   77  103.103  -15.467   9.916
hotel#
Теперь можно посмотреть информацию и о себе командой ntpdc -c sysinfo -n
Вот так он покажет что сервер не работает

Код: Выделить всё

hotel# ntpdc -c sysinfo -n  
system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -18
root distance:        0.00000 s
root dispersion:      47.03468 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  9:28:16.000
system flags:         auth monitor ntp kernel stats 
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.003998 s
authdelay:            0.000000 s
hotel#
Видите, stratum: 16 - страта должна быть ну до 5 максимум, а тут 16... и нет сервера, с которым мы синхримся system peer: 0.0.0.0
Если же всё хорошо, то мы увидим такой вывод

Код: Выделить всё

hotel# ntpdc -c sysinfo -n
system peer:          192.53.103.104
system peer mode:     client
leap indicator:       00
stratum:              2
precision:            -18
root distance:        0.07666 s
root dispersion:      0.46089 s
reference ID:         [192.53.103.104]
reference time:       d17f9cad.9374a773  Thu, May 19 2011 17:42:05.575
system flags:         auth monitor ntp kernel stats 
jitter:               0.009323 s
stability:            0.000 ppm
broadcastdelay:       0.003998 s
authdelay:            0.000000 s
hotel# 
С какого-то момента вторая команда перестала работать, но была найдена альтернатива:

Код: Выделить всё

ntpq -p -c sysinfo

Код: Выделить всё

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp2.ivlan.net  .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 ns1.ooonet.ru   .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 ntp1.ivlan.net  .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 expirepages-kia .INIT.          16 u    - 1024    0    0.000    0.000   0.000
+ntp1.oma.be     .MRS.            1 u   76  128  377  128.252  -50.612 141.189
+ptbtime2.ptb.de .PTB.            1 u    2  128  377  109.228  -63.415 231.122
+ntp1.nl.uu.net  .PPS.            1 u   75  128  173  300.890  -60.964 167.552
*ntp1.inrim.it   .CTD.            1 u  127  128  277  107.944  -65.037 145.603
+213.222.200.99  .PPS.            1 u   69  128  377  115.801  -65.500 217.106
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
system peer:        ntp1.inrim.it:123
system peer mode:   client
leap indicator:     00
stratum:            2
log2 precision:     -23
root delay:         107.944
root dispersion:    104.437
reference ID:       193.204.114.232
reference time:     db443bdb.680e96b6  Thu, Jul 28 2016 11:07:55.406
system jitter:      9.287411
clock jitter:       20.626
clock wander:       0.259
broadcast delay:    -50.000
symm. auth. delay:  0.019

Послесловие:
1) Может так случиться, что когда ставили сервер - выбрали не тот часовой пояс - в этом случае надо его изменить. В версиях FreeBSD до 10.0 это можно было сделать через sysinstall, начиная же с версии 10.0 это делается утилитой bsdconfig - в обеих случаях просто ходите по менюшкам и выбираете нужный часовой пояс.
2) Сегодня много DDoS атак осуществляется с помощью протокола ntp - потому ограничте в конфиге кто может иметь к нему доступ и запретите через файрвол доступ всем остальным
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Синхранизация UNIX машин с сервером точного времени

Сообщение RomA »

На сегодня есть несколько вариантов:

Первый:
Сервер будет сам корректировать своё время постепень и в процессе всегой жизненного цикла. Для этого в файл /etc/ntp.conf, удаляя всё, вписываем следующие строки

Код: Выделить всё

server 192.168.1.7
restrict default ignore
restrict 192.168.1.7 nomodify noquery notrap
restrict 127.0.0.1 nomodify notrap
где 192.168.1.7 - это ИП адрес вашего сервера, настроенного по статье выше

Второй:
Сервер будет менять системное время при загрузки системы

Код: Выделить всё

ntpdate_enable="YES"
ntpdate_hosts="-u 192.168.1.7"  
Третий:
Сервер будет менять своё время скачками, периодически сверяясь с сервером точного времени. Для этого в /etc/crontab добавляем

Код: Выделить всё

6-59/15 *       *       *       *       root    sleep 21; /usr/sbin/ntpdate -s 192.168.1.7  
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Мониторинг Сервера Точного Времени (NTP)

Сообщение RomA »

http://forum.cz6.ru/viewtopic.php?f=16&t=58&p=319#p319 - статья про мониторинг работы сервера точного времени
Ответить