NTP, или Network Time Protocol, — это сетевой протокол для синхронизации времени и часов в компьютерной сети.
Chrony реализует протокол NTP или Network Time Protocol и является альтернативой другим приложениям, таким как up. Chrony может быть запущен на Unix-подобных операционных системах, выпущен под лицензией GNU GPL v2. Chrony используется в качестве NTP-сервера по умолчанию в некоторых дистрибутивах Linux, а также доступен для нескольких дистрибутивов Linux.
В следующем руководстве я покажу вам, как установить Chrony на сервер AlmaLinux 9. Мы установим Chrony в качестве NTP-сервера и NTP-клиента. Кроме того, вы узнаете, как использовать командную строку chronyc для управления и мониторинга Chrony.
Предварительные условия
Чтобы начать работу, убедитесь, что у вас есть следующее:
- Сервер AlmaLinux 9 — В данной демонстрации используется сервер с именем хоста alma9 и IP-адрес 192.168.10.15.
- Клиентская машина Linux также использует машину AlmaLinux с именем хоста node1 и IP-адрес 192.168.10.20.
- Некорневой пользователь с привилегиями администратора root.
Настройка системного часового пояса
Для настройки часового пояса в Linux можно использовать утилиту timedatectl. В следующем разделе мы покажем вам, как настроить и проверить системный часовой пояс перед установкой NTP-сервера Chrony.
Сначала проверьте список доступных часовых поясов с помощью следующей команды и решите, какой часовой пояс вы хотите использовать.
sudo timedatectl list-timezones
Теперь выполните приведенную ниже команду, чтобы изменить часовой пояс по умолчанию на вашем сервере. Следующая команда настроит часовой пояс по умолчанию на Европа/Амстердам.
sudo timedatectl set-timezone Europe/Amsterdam
Затем проверьте текущий часовой пояс с помощью следующей команды.
sudo timedatectl
В разделе «Часовой пояс» вы можете увидеть текущий часовой пояс.
Также вы можете проверить системный часовой пояс по умолчанию, проверив файл /etc/localtime. Убедитесь, что файл является симлинком на нужный часовой пояс.
ls -lah /etc/localtime
Установка Chrony
Chrony — это реализация протокола NTP, которая может использоваться в качестве NTP-сервера и NTP-клиента. В следующем разделе мы расскажем вам, как установить Chrony и управлять службой Chrony с помощью утилиты systemctl.
Для начала выполните приведенную ниже команду dnf, чтобы найти пакет chrony в репозитории AlmaLinux. Вы увидите, что репозиторий baseos по умолчанию содержит пакет chrony и готов к установке.
sudo dnf search chrony
Установите chrony с помощью следующей команды dnf. При появлении запроса введите y для подтверждения и нажмите ENTER.
sudo dnf install chrony
После установки Chrony выполните следующую команду для запуска и включения службы chronyd. Chronyd — это служба systemd для Chrony, с помощью этих команд chronyd будет запущен и автоматически стартует при загрузке системы.
sudo systemctl start chronyd sudo systemctl enable chronyd
Проверьте работу службы chronyd с помощью следующей команды, чтобы убедиться, что служба запущена.
sudo systemctl status chronyd
Следующий вывод подтверждает, что служба chronyd запущена, поскольку выводимое сообщение активен (работает) отображается.
Настройка Firewalld
После установки Chrony необходимо открыть порт NTP на сервере NTP. Теперь вы добавите службу NTP в firewalld с помощью командной строки firewall-cmd.
Если вы используете публичный NTP-сервер, выполните приведенную ниже команду firewall-cmd, чтобы разрешить любому пользователю доступ к вашей установке NTP-сервера.
sudo firewall-cmd --add-service=ntp --permanent sudo firewall-cmd --reload
Если же вы используете NTP-сервер для локальных сетей, выполните приведенную ниже команду firewall-cmd, чтобы указать подсеть сети с помощью правила firewalld rich-rule.
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.5.0/24' service='ntp' accept" sudo firewall-cmd --reload
Если все готово, проверьте список правил firewalld с помощью следующей команды.
sudo firewall-cmd --list-all
Вы должны получить службу ntp, добавленную в список служб firewalld.
Настройка Chrony в качестве NTP-сервера
NTP-сервер — это место, где ваши клиенты могут синхронизировать системное время. Чтобы настроить Chrony в качестве NTP-сервера, вам нужно изменить две основные конфигурации:
- Добавить NTP-пул в качестве источника: посетить https://www.ntppool.org/en/ для получения доступных NTP-серверов, которые можно использовать в качестве источника.
- Разрешить внутреннюю сеть: добавьте подсети внутренней сети, которым будет разрешен доступ и использование вашего NTP-сервера. Таким образом, вы можете создать частный/локальный NTP-сервер для вашей среды.
Откройте стандартную конфигурацию chrony /etc/chrony.conf с помощью следующей команды редактора nano.
sudo nano /etc/chrony.conf
Посетите https://www.ntppool.org/en/ и выберите доступные публичные NTP-серверы, которые будут использоваться в качестве источников. В основном это зависит от расположения ваших серверов, выбирайте в качестве источника близлежащие NTP-серверы.
Затем добавьте в сервер параметр, например, такой:
# list servers server 0.nl.pool.ntp.org iburst server 1.nl.pool.ntp.org iburst server 2.nl.pool.ntp.org iburst server 3.nl.pool.ntp.org iburst
Добавьте параметр разрешить параметр и укажите свою сетевую подсеть. Любая сетевая подсеть в пределах разрешить параметр будет разрешен доступ к вашей установке NTP-сервера.
# allowed clients allow 192.168.10.0/24
Кроме того, вам может потребоваться настроить следующие параметры:
# Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Specify the file containing keys for NTP authentication.
keyfile /etc/chrony.keys
# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC
После завершения работы сохраните и закройте редактор.
Теперь выполните приведенную ниже команду systemctl, чтобы перезапустить службу chronyd и применить изменения.
sudo systemctl restart chronyd
После перезапуска chronyd выполните приведенную ниже команду chronyc, чтобы проверить текущие источники NTP-сервера.[chronyc это утилита командной строки, предоставляемая Chrony для управления как NTP-сервером, так и клиентом.
chronyc sources
Если все прошло успешно, вы должны увидеть список источников ближайших NTP-серверов.
Кроме того, вы можете получить подробную версию отчета, добавив параметр -v опция, означающая подробный вывод.
chronyc sources -v
Настройка Chrony в качестве NTP-клиента
Вверху вы узнали, как создать NTP-сервер с помощью Chrony. Теперь вы узнаете, как настроить Chrony в качестве NTP-клиента. Пакет Chrony установлен на клиентской машине с именем хоста node1 и IP-адресом 192.168.10.20 в следующем примере.
Чтобы настроить Chrony как NTP-клиент, вы должны добавить ваш NTP-сервер в список сервер параметр в конфигурационном файле Chrony /etc/chrony.conf.
Сначала выполните следующую команду, чтобы убедиться, что служба chronyd запущена на клиентской машине.
sudo systemctl status chronyd
Если она запущена, то должен появиться следующий вывод:
Теперь откройте файл конфигурации chrony /etc/chrony.conf с помощью редактора nano.
sudo nano /etc/chrony.conf
Добавьте ваш NTP-сервер в сервер параметр. Вы можете использовать IP-адрес или fqdn вашего NTP-сервера.
Дополнительный параметр iburst позволяет службе Chronyd произвести первое обновление часов вскоре после старта, а параметр предпочитает определяет приоритет источника NTP Server среди других серверов без опции prefer.
server 192.168.10.15 iburst prefer
Теперь выполните приведенную ниже команду systemctl, чтобы перезапустить службу chronyd и применить изменения. Затем проверьте chronyd, чтобы убедиться, что служба запущена.
sudo systemctl restart chronyd sudo systemctl status chronyd
Наконец, введите следующую команду, чтобы проверить источники NTP-сервера на клиентской машине.
chronyc sources chronyc sources -v
В случае успеха вы должны увидеть, что ваш NTP-сервер используется в качестве источника NTP-сервера на клиентской машине.
Базовое использование команды Chronyc
Chronyc — это интерфейс командной строки для управления Chrony, будь то NTP-сервер или NTP-клиент. В последнем разделе вы узнаете некоторые основные команды Chronyc для управления вашей NTP-установкой.
Параметр tracking покажет вам производительность системных часов.
chronyc tracking
На Reference ID в разделе вы должны увидеть источник NTP-сервера, который в настоящее время синхронизирован.
С помощью параметра ntpdata можно измерить и проверить источник NTP.
chronyc ntpdata
На Удаленный адрес, вы можете увидеть IP-адрес источника NTP-сервера. На Удаленный порт вы должны получить порт NTP-сервера по умолчанию, который используется в настоящее время. Наконец, в разделе Локальный адрес разделе, вы должны увидеть IP-адрес клиентской машины в качестве соответствующего идентификатора ссылки.
Далее используйте параметр activity, чтобы показать количество NTP-серверов на пире.
chronyc activity
Вы можете увидеть вывод онлайн если сервер NTP доступен и только, и в автономном режиме статус, если одноранговый сервер находится в автономном режиме.
Наконец, вы также можете разрешить/запретить сетевую подсеть в Chrony с помощью командной строки chronyc.
Используйте разрешить параметр, разрешающий подсети для доступа и использования NTP-сервера Chrony.
chronyc allow IP/subnet
Чтобы запретить подсетям доступ к серверу Chrony NTP, используйте параметр deny параметр следующим образом:
chronyc deny IP/subnet
Заключение
Отличная работа! Теперь вы успешно установили Chrony на сервер AlmaLinux 9. Вы также узнали, как настроить NTP-сервер с помощью Chrony и как настроить NTP-клиент с помощью Chrony. Кроме того, вы настроили системный часовой пояс с помощью timedatectl и узнали некоторые основы командной строки chronyc для управления установкой Chrony.