Time sync — различия между версиями

Материал из pNp Wiki
Перейти к: навигация, поиск
(Конфигурирование ntpd)
(Проверка)
Строка 89: Строка 89:
 
   polling server every 64 s
 
   polling server every 64 s
 
[root@vm-01 ~]#
 
[root@vm-01 ~]#
 +
</syntaxhighlight>
 +
 +
При необходимости раздавать точное время в локальной сети, следует открыть порт в файрволле:
 +
<syntaxhighlight lang="bash">
 +
[root@vm-01 ~]# firewall-cmd --permanent --zone=public --add-port=123/udp
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Версия 15:29, 7 марта 2018

Конфигурирование сервера точного времени

Предварительные требования

  • Виртуальная машина с двумя сетевыми интерфейсами
  • Установленные пакеты: bash-completion, chorny, либо ntpd и ntpdate

Общая информация

Сервер точного времени необходим для определения точного времени наступления событий, которые будут записаны в журнал, так же он чрезвычайно важен для системы билетов kerberos, так как при расхождении времени между сервером и клиентом kerberos, больше чем в 5 минут, клиент билета не получит. При синхронизации времени, разница между источником и клиетом хранится в так называемом driftfile. При запуске системы, сервис точного времени читает данный файл и корректирует время на клиенте, согласно разнице записанной в driftfile. Так же протокол точного времени вводит понятие stratum. stratum - это величина удаления от атомных часов, градации 0-15. Атомные часы, имеют stratum 0, но они не имеют открытого доступа в интернет и все подключены к серверам, раздающим точное время и имеющим stratum 1.

Конфигурирование chrony

Конфигурирование ntpd

Сервис ntpd читает конфигурационный файл /etc/ntp.conf, однако ключи, с которыми запускается демон находятся в файле /etc/sysconfig/ntpd:

[root@vm-01 ~]# cat /etc/sysconfig/ntpd
# Command line options for ntpd
OPTIONS="-g"
[root@vm-01 ~]#

По-умолчанию, в нем находится опция -g, которая разрешает один раз скорректировать время, если разница между источником и приемником составляет более 1000 секунд (без этого ключа, ntpd пишет сообщение в системный журнал и прекращает работу). Если после корректировки времени, разница все еще превышает 1000 секунд, ntpd пишет сообщение в системный журнал и прекращает работу. В некоторых случаях, бывает полезно добавить опцию -x которая, увеличивает шаг подгонки времени (по-умолчанию 128 миллисекунд) до 600 секунд, однако nix ядра ограничены подгонкой времени на 0.5 миллисекунд в секунду, для каждой следующей секундной подгонки требуется интервал в 2000 секунд, таким образом корректировка 600 секунд займет примерно 14 дней. Поскольку время может меняться на клиентской машине как вперед, так и назад, то некоторое программное обеспечение может выдавать ошибки, в связи с резкой сменой времени. В конфигурационном файле изменим серверы точного времени на те, что предоставляются ФГУП «Всероссийский научно-исследовательский институт физико-технических и радиотехнических измерений», в результате файл /etc/ntp.conf примет следующий вид:

[root@vm-01 ~]# grep "^[^#]" /etc/ntp.conf 
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1 
restrict ::1
server ntp1.vniiftri.ru iburst
server ntp2.vniiftri.ru iburst
server ntp3.vniiftri.ru iburst
server ntp4.vniiftri.ru iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
[root@vm-01 ~]#

Доступ к демону ntpd регулируется списками доступа, указанными в директиве restrict, конфигурационного файла /etc/ntp.conf. По-умолчанию запрещены:

  1. nomodify - попытки модифицировать состояние сервера (то есть переконфигурировать время) утилитами ntpq и ntpdc
  2. notrap - получения трапов, созданых утилитой ntpdc
  3. nopeer - попытки неатунтицированного обмена информацией
  4. noquery - попытки запросов не касающихся времени, при помощи утилит ntpq и ntpdc

Управление разрешается только с localhost'а по протоколам ipv4 и ipv6

Запуск

[root@vm-01 ~]# systemctl status -l ntpd
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@vm-01 ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@vm-01 ~]# systemctl start ntpd
[root@vm-01 ~]# systemctl is-active ntpd
active
[root@vm-01 ~]#

Проверка

Для проверки запустим утилиту timedatectl:

[root@vm-01 ~]# timedatectl 
      Local time: Wed 2018-03-07 12:54:33 MSK
  Universal time: Wed 2018-03-07 09:54:33 UTC
        RTC time: Wed 2018-03-07 09:54:33
       Time zone: Europe/Moscow (MSK, +0300)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@vm-01 ~]#

Теперь посмотрим статистику, которая выдает утилита ntpstat

[root@vm-01 ~]# ntpstat 
synchronised to NTP server (89.109.251.21) at stratum 2 
   time correct to within 3942 ms
   polling server every 64 s
[root@vm-01 ~]#

При необходимости раздавать точное время в локальной сети, следует открыть порт в файрволле:

[root@vm-01 ~]# firewall-cmd --permanent --zone=public --add-port=123/udp

Ссылки

Configuring NTP using chrony
Configuring NTP using ntpd