Точний час на сервері це завжди хороша практика, хоча б для того щоб логи можна було читати без калькулятора) Ну і насправді є багацько програм які з невірним часом можуть некорректно працювати (особливо прікольно коли на серваку дата на 5-6 років назад і треба щось з https сторінки скачати). А як приємно коли все обладнання працює секунда в секунду! В моїй мережі є 2 сервери точного часу, і все обладнання налаштоване на синхронізацію з ними. Сьогодні я розкажу вам як це зробити.
У FreeBSD "з коробки" є NTP-демон ntpd, його треба тільки трохи підналаштувати. Відкриємо улюбленим редактором файл /etc/ntp.conf і впишемо в нього налаштування:
server 0.ua.pool.ntp.org iburst prefer
server 1.ua.pool.ntp.org iburst
server 2.ua.pool.ntp.org iburst
server 3.ua.pool.ntp.org iburst
driftfile /etc/ntp/drift
logfile /var/log/ntp.log
disable monitor
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 0.ua.pool.ntp.org nomodify notrap nopeer noquery
restrict 1.ua.pool.ntp.org nomodify notrap nopeer noquery
restrict 2.ua.pool.ntp.org nomodify notrap nopeer noquery
restrict 3.ua.pool.ntp.org nomodify notrap nopeer noquery
restrict 10.15.1.0 mask 255.255.255.0 nomodify notrap
Давайте розберемось що тут до чого:
- server - такими строками ми вказуємо з якими серверами ми хочемо синхронізовувати наш сервер. Параметри iburst (вказує що треба відправити кілька запитів одразу) і prefer (вказує що цей сервер є пріорітетним) необовязкові, проте корисні.
- driftfile - в цей файл записується наскільки поправляється час сервера кожної синхронізації. Якщо під час наступної синхронізації жоден сервер не буде доступний ntp автоматично підстроїть час на основі даних з цього файлу.
- logfile - ну тут все і так ясно) Сюда ntp писатиме логи.
- disable monitor - вимикає команду monitor в сервері ntp. Це пов‘язано зі знайденою уязвимістю в ntp, яка дозволяла здійснювати DDoS-атаки.
- restrict - ця команда визначає поведінку сервера відносно клієнтів. restrict default - визначає поведінку за-замовчуванням. Ми виставили флаги
-- kod - Kiss Of Death, сервер відсилатиме клієнту спеціально сформований пакет якщо клієнт надто часто запитує точний час.
-- nomodify - забороняємо змінювати конфігурацію сервера.
-- notrap - забороняємо отримувати логи
-- nopeer - забороняємо отримувати список пірів
-- noquery - забороняємо будь-які інформаційні запити окрім запитів точного часу
Наступними кількома строками ми прописуємо наші сервера з якими буде йти синхронізація (це необов‘язково, але я люблю щоб все було точно) і прописуємо підмережу з обладнанням (вона в мене, як бачите трохи більше всього може, бо там теж є 1 ретранслятор в клієнтську мережу).
Щоб це все запрацювало додаємо демона в rc:
echo 'ntpd_enable="YES"' >> /etc/rc.conf
echo 'ntpd_sync_on_start="YES"' >> /etc/rc.conf
запускаємо
service ntpd start
і за кілька хвилин можемо перевіряти як все працює:
ntpq -c peers
remote refid st t when poll reach delay offset jitter
==============================================================================
*cooler.krajany. 62.149.0.30 2 u 116 128 377 15.949 -0.555 4.009
+ntp.exact-time. .GPS. 1 u 53 128 377 8.285 -2.306 0.163
altus.ip-connec .INIT. 16 u - 1024 0 0.000 0.000 0.000
+194.40.240.12 ( 131.188.3.222 2 u 40 128 377 11.831 -2.949 0.271
як бачите в мене 1 не з‘єднався (він по IPv6 просто, в той час тунель ліг) але в нас ж їх 4, то то не страшно, сервер все одно синхронізований, адже ще 3 живі (ще й 1 з стратумом 1! Найточніший час)
Гарного адміністрування!
Коментарі