Налаштування NTP-сервера

Точний час на сервері, це запорука його стабільної роботи, та роботи усієї мережі вцілому. На сьогоднішній день, дуже багато підприємств використовують програмне забезпечення, яке потребує точного часу, впринаймні тому, що воно працює у відповідності сервер – клієнт. Хочу розглянути просте налаштування сервера часу на основі демона NTPD…

NTPD ( Network Time Protocol daemon) – це операційний демон системи, який встановлює і підтримує час системи в синхронізації з інтернет-стандартними серверами часу.

Якщо ntpd не вбудований у дистрибутив вашої unix системи, компілимо або вручну, або ставимо його з портів:

  •  Беремо вихідні тексти коду звідси
  • Читаємо уважно посібник по установці “INSTALL”
  • Для роботи з публічними ключами потрібні пакети openssl і openssl-devel (lybcrypto.a і h.)
  • ./confіgure –wіth-openssl-lіbdіr=/usr/local/ssl/lіb –wіth-openssl-іncdіr=/usr/local/ssl/іnclude/ –dіsable-all-clocks –dіsable-parse-clocks –enable-LOCAL-CLOCK (драйвери апаратного годинника відключити, оновлений openssl у нестандартному місці)
  • make && make install && make clean

Що ми маємо:

  • ntpd – демон NTP
  • ntpdate – утиліта для встановлення системного годинника за інформацією від NTP сервера
  • ntpdc – утиліта для керування NTP сервером
  • ntpq – утиліта для одержання інформації про сервер NTP
  • ntptrace – трасування ланцюжка NTP серверів до джерела часу
  • ntptіme – читання змінні ядра; установлюється тільки для ядер, що підтримують точний час
  • tіckadj – установка змінні ядра
  • ntp-genkeys – генерація публічних і приватних ключів; установлюється тільки, якщо аутентификация за допомогою публічних ключів убудована в сервер

Далі переходимо до редагування ntp.conf

#сервера для оновлення часу 
#бажано не використовувати DNS-ім`я 
server 193.193.193.107  #ntp.lucky.net 
server 193.82.131.32    #pool.ntp.org 
server 87.139.126.233   #0.pool.ntp.org 
server 62.149.2.1       #ntp.colocall.net     

#за умовченням нікому нічого 
restrict default ignore 
restrict 127.0.0.1     

#сервера з якими ми звіряємо час, будуть мати змогу змінювати наш час 
restrict 193.193.193.107 noquery notrap 
restrict 193.82.131.32 noquery notrap 
restrict 87.139.126.233 noquery notrap 
restrict 62.149.2.1 noquery notrap     

#локальна мережа може отримувати запити від нашого ntp-сервера 
restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap     

#місце, де буде знаходитись файл зсуву часу 
driftfile /etc/ntp.drift     

#лог-файл 
logfile /var/log/ntp/ntp.log

Якщо хочемо, щоб ntpd стартував із rc.conf (приклад для FreeBSD, для інших систем подібно)

ntpd_enable="YES" 
ntpd_program="/usr/sbin/ntpd" 
ntpd_flags="-p /var/run/ntpd.pid"

Або просто /usr/sbin/ntpd

Після запуску, чекаєм закінчення повної години і перевіряємо статус ntpdate -q localhost або більш повну інформацію можна отримати ntpdc -c sysinfo -n

Періодично заглядаємо в логи, перевіряємо чи немає там нічого зайвого.

Бажано перед запуском системи оновлювати час, це можна робити або через rc.conf

ntpdate_enable="YES" 
ntpdate_program="/usr/sbin/ntpdate" 
ntpdate_flags="-u pool.ntp.org"

або через свій скрипт старту системи
/usr/sbin/ntpdate pool.ntp.org 

Ключі сервера:

 -a дозволити аутентификацию (за умовчуванням)
  -A заборонити аутентификацию
  -b використовувати широкомовні запити
  -c ім'я файлу конфігурації (за замовчуванням /etc/ntp.conf)
  -d налагодження; чим більше раз указати, тим вище рівень
  -D рівень налагодження
  -f ім'я файлу зсуву
  -g не завершувати роботу аварійно, якщо 
розбіжність із апаратними годинниками більше 1000 секунд
  -k ім'я файла ключів (за умовчуванням /etc/ntp/keys)
  -l ім'я файлу журналу (за умовчуванням на syslog)
  -L слухати на віртуальних ІP
  -m використати групові запити - 224.0.1.1
  -n dont fork
  -N пріоритет процесу в системі
  -p pіd-файл задається також в ntp.conf
  -q установити час і завершитися, 
аналогічно ntpdate, але з настроюванням частоти годин
  -r затримка широкомовних запитів
  -s дирикторія статистики
  -t номер ключа (додати ключ у список довірених)
  -T chroot директорія (повинна містити всі необхідні ntpd файли)
  -U uіd (після запуску скидати привілею до зазначеного uіd)
  -v ім'я змінної (додати системну змінну)
  -V ім'я змінної под умовченню
  -x тільки плавні зміни часу