Синхронизация времени в Centos 7

0
3212
Обложка статьи: Синхронизация времени в Centos 7

Статья о CentOS, поддержка которого закончилась. Для новых серверов выберите замену: Rocky, AlmaLinux или Astra. Описание ниже сохранено как справка по старым системам.

Нужно, чтобы часы Linux шли по NTP. Заголовок про CentOS 7 — система в EOL. Команды ниже — для chrony на Alma/Rocky/RHEL и Debian/Ubuntu. Старый ntpd не поднимайте «по привычке».

1. Поставить и включить chrony

sudo dnf install -y chrony
sudo systemctl enable --now chronyd
chronyc tracking

Debian/Ubuntu: пакет и юнит chrony.

sudo apt install -y chrony
sudo systemctl enable --now chrony
chronyc tracking

Ожидание: Leap status : Normal, System time в долях секунды, не минутах. Если Not synchronised — нет источника или UDP/123 режет файрвол.

2. Свои серверы времени

Файл: /etc/chrony.conf (RHEL) или /etc/chrony/chrony.conf (Debian). Пример пула — подставьте корпоративный NTP, не копируйте чужой IP:

pool ru.pool.ntp.org iburst
# или внутренний:
# server ntp.example.internal iburst
sudo systemctl restart chronyd
chronyc sources -v

Ожидание: хотя бы один источник с * (текущий) или +. На закрытом контуре разрешите исходящий UDP/123 только на свои NTP.

3. Разовая синхронизация, если сильно убежало

sudo chronyc makestep
chronyc tracking
timedatectl

Ожидание timedatectl: System clock synchronized: yes, нужный часовой пояс. Мониторинг расхождения — в статье про время в Zabbix.

Защищённая синхронизация (NTS)

Обычный NTP не аутентифицирован: подмену ответов в сети заметить нельзя. chrony версии 4.0 и выше поддерживает NTS, где источник проверяется сертификатом:

server time.cloudflare.com iburst nts

Проверьте, что chrony достаточно новый (chronyc --version) и источник поддерживает NTS. Для внутренних серверов без выхода в интернет используйте собственный NTP.

Свой сервер времени для сети

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

# /etc/chrony.conf на сервере
allow 192.0.2.0/24
sudo firewall-cmd --permanent --add-service=ntp
sudo firewall-cmd --reload
sudo systemctl restart chronyd

Остальные узлы указывают на него директивой server ntp.example.internal iburst. Так наружу ходит один сервер, а не вся сеть.

Диагностика

chronyc sourcestats      # стабильность каждого источника
chronyc ntpdata          # детали обмена
journalctl -u chronyd --since "1 hour ago"

Если источники недостижимы: проверьте UDP/123 в обе стороны и DNS-имена. В виртуальных машинах не допускайте двойной синхронизации с гипервизором и по NTP. Мониторинг расхождения: время в Zabbix.

chrony заменил ntpd в RHEL-семействе и в современных Debian/Ubuntu. Одновременно держать ntpd и chrony нельзя: оставьте одну службу.

Как проверить

chronyc tracking
chronyc sources -v
timedatectl

Leap Normal, есть звёздочка у источника, systemd считает часы синхронизированными.

Источники

Оставьте свой ответ