Как настроить сервер NTP в CentOS
Автор Sarmed Rahman
Network Time Protocol (NTP) — используется для синхронизации системных часов различных хостов по сети. Все управляемые хосты могут синхронизировать свое время с назначенным сервером времени под названием сервер NTP. Сервер NTP с другой стороны синхронизирует свое время с любого общедоступного сервера NTP, или любого сервера по вашему выбору. Системные часы всех NTP-управляемых устройств синхронизируются с точностью до миллисекунды. В корпоративных сетях, если владельцы не хотят или нет возможности открыть брандмауэр для NTP-трафика, необходимо создать в свой сервер NTP, в таком случае сотрудники используют внутренний сервер, в отличие от публичных серверов NTP.Прежде чем углубляться в детали, давайте рассмотрим понятие NTP в первую очередь.
Зачем нам нужен NTP?
В силу существующих погрешностей в производстве, все (не атомные) часы работают с разной скоростью отсчёта времени. Некоторые, как правило, идут быстрее, а некоторые медленнее. Так в течение большого периода времени, время одного такта, постепенно дрейфует от другого, в результате чего, возникает явление, известное как «дрейф времени» или «временной дрейф». Чтобы свести к минимуму влияние дрейфа, пользователям с помощью NTP следует периодически обращаться к назначенному серверу NTP, чтобы синхронизировать их системное время.
Синхронность разных хостов важна для таких вещей, как запланированное резервное копирование, обнаружение и регистрация вторжений , распределенного планирования или бухгалтерии и многого другого.
NTP Иерархия
NTP часы организованы в слоистой иерархии. Каждый уровень иерархии называется (stratum) слой. Понятие слоя описывает, сколько NTP переходов от машины из авторитетного источника времени.
иерархия stratum-серверовНулевой слой заполняется с часами, которые не имеют практически никаких временных погрешностей, такие как атомные часы. Эти часы не могут быть непосредственно использованы в сети. Слой N (N> 1) серверы синхронизируют время от серверов stratum N -1. Часы N слоя могут быть связаны друг с другом через сеть. NTP поддерживает до 15 слоев в иерархии. Слой 16 считается не синхронизированным и непригодным для использования.
Подготовка CentOS сервера
Теперь давайте перейдем к настроить сервер NTP на CentOS. Прежде всего, мы должны убедиться, что часовой пояс сервера настроен правильно. В CentOS 7, мы можем использовать timedatectl для просмотра и изменения часового пояса сервера (например, «Австралия / Аделаида»)
# timedatectl list-timezones | grep Australia
# timedatectl set-timezone Australia/Adelaide
# timedatectl

Необходимо настроить необходимое программное обеспечение, используя yum.
# yum install ntp
Затем мы добавим глобальных серверов NTP для синхронизации времени с указанными источниками.
# vim /etc/ntp.conf
server 0.oceania.pool.ntp.org server 1.oceania.pool.ntp.org server 2.oceania.pool.ntp.org server 3.oceania.pool.ntp.org
По умолчанию журналы сервера NTP сохраняются в /var/log/messages. При необходимости можно переопределить и использовать пользовательский файл журнала, как указано ниже.
logfile /var/log/ntpd.log
Если вы выберете пользовательский файла журнала, измените соответственно пути.
# chown ntp:ntp /var/log/ntpd.log
# chcon -t ntpd_log_t /var/log/ntpd.log
Теперь можно начать обслуживание NTP но прежде — убедитесь, что он запущен.
# systemctl restart ntp
# systemctl enable ntp
Проверка сервера NTP.
Мы можем использовать команду ntpq чтобы проверить, как часы локальный сервер синхронизируется с помощью NTP.
Следующая таблица объясняет выходные столбцы.
remote | The sources defined at ntp.conf. ‘*’ indicates the current and best source; ‘+’ indicates that these sources are available as NTP source. Sources with — are considered unusable.(Источники определены в ntp.conf. ‘*’ Означает, только лучший источник; «+» Указывает на то, что эти источники доступны в качестве источника NTP. Источники с » — » считаются непригодными для использования.)
|
refid | The IP address of the clock with which the remote server clock is synchronized with.(IP-адрес, с которым дистанционно синхронизируются часы)
|
st | Stratum
|
t | Type. ‘u’ is for unicast. Other values may include local, multicast, broadcast.(Тип. ‘U’ для одноадресной передачи. Другие значения могут включать в себя местную, групповой, трансляцию.)
|
when | The time elapsed (in seconds) since the last contact with the server. (Время, прошедшее (в секундах) с момента последней синхронизации с сервером.)
|
poll | Polling frequency with the server in seconds.( голосование, частота опроса сервера, в секундах. )
|
reach | An octal value that indicates whether there are any errors in communication with the server. The value 377 indicates 100% success.(Восьмеричное значение, которое указывает, есть ли какие-либо ошибки в связи с сервером. Значение 377 указывает на 100% успех.)
|
delay | The round trip time between our server and the remote server. (округлённая задержка времени передачи между нашим сервером и удаленным сервером. смещение)
|
offset | The time difference between our server and the remote server in milliseconds.(Разница во времени между нашим сервером и удаленным сервером в миллисекундах.)
|
jitter | The average time difference in milliseconds between two samples.(Разница в среднем раз в миллисекундах между двумя запросами) |
Управление доступом к NTP-серверу
По умолчанию, сервер NTP позволяет входящие запросы от всех хостов. Если вы хотите, чтобы фильтровать входящие соединения NTP синхронизации, можно добавить правило в брандмауэре, чтобы фильтровать трафик.
# iptables -A INPUT -s 192.168.1.0/24 -p udp —dport 123 -j ACCEPT
# iptables -A INPUT -p udp —dport 123 -j DROP
Правило позволит NTP трафик (порт UDP / 123) от 192.168.1.0/24, и запретить трафик от всех других сетей.Вы можете обновить правило, в соответствии вашим требованиям.
Настройка NTP клиентов
1. Linux Клиент NTP Необходим пакет Ntpdate для синхронизации времени на сервере. Пакет может быть легко получен и установлен с помощью Yum или APT. После установки пакета, выполните команду с IP-адресом сервера.
# ntpdate <server-IP-address>
Команда идентична для систем основанных на RHEL и Debian.
2. Windows Если вы используете Windows, ищите в интернете ‘Time’ под настройки даты и времени.
3. Cisco Устройства Если вы хотите, чтобы синхронизировать время устройства Cisco, вы можете использовать следующую команду из режима глобальной конфигурации.
# ntp server <server-IP-address>
NTP включен в устройства от других производителей и имеют свои собственные параметры для интернет-времени. Пожалуйста, проверьте документацию устройства, если вы хотите, чтобы синхронизировать свое время с сервером NTP.