Записки IT специалиста
Мы уже неоднократно поднимали вопрос важности синхронизации времени, особенно сейчас, когда даже в небольших сетях появляется все больше и больше служб критичных к точному времени. Это криптография, системы контроля доступа и видеонаблюдения, кассовые узлы. В этих условиях точности обычных аппаратных часов начинает не хватать и хотя во многих случаях допускается разбег времени не более пяти минут, лучше не ждать пока это случится (как всегда в самый неподходящий момент), а обеспечить свою инфраструктуру собственным сервером времени. В данной статье мы рассмотрим, как это сделать в системах основанных на Debian.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Перед установкой сервера времени убедитесь. что в вашей системе правильно настроен часовой пояс, проверить и изменить его можно командой:
Данную и все последующие команды следует выполнять с правами суперпользователя.
После установки часового пояса обновите список пакетов и установите пакет NTP-сервера:
apt update
apt install ntp
Пакет работоспособен сразу после установки и конфигурация из коробки достаточно актуальна, но лучше внести в нее некоторые дополнительные штрихи. Для изменения настроек откроем файл /etc/ntp.conf.
Начнем с вышестоящих серверов для синхронизации времени, рекомендуется выбирать ближайшие к вам сервера, их адреса можно получить на сайте ntppool.org. Затем найдем в конфигурационном файле следующую секцию:
И заменим значения на следующие:
pool 0.ru.pool.ntp.org iburst
pool 1.ru.pool.ntp.org iburst
pool 2.ru.pool.ntp.org iburst
pool 3.ru.pool.ntp.org iburst
В нашем примере приведены настройки для использования российских серверов времени. Ниже зададим настройку для синхронизации с аппаратными часами на случай отсутствия синхронизации с серверами в интернет:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
Первая строка задает адрес аппаратных часов — 127.127.1.0, вторая указывает приоритет — stratum — он выбран таким образом, чтобы при наличии интернета NTP-сервер не синхронизировался с аппаратными часами. У серверов входящих в пулы ntp.org значение stratum равно двум.
Затем перейдем к списку контроля доступа, который состоит из сетевых адресов отсортированных по возрастанию адресов и масок. Запись по умолчанию — default соответствует адресу 0.0.0.0 с маской 0.0.0.0, если в записи не указана маска, то автоматически подставляется значение 255.255.255.255, что соответствует конечному хосту.
Кроме адресов строки списка содержат флаги, флаги указывают на те или иные ограничения, если строка не содержит флагов — это означает полный доступ к серверу. По умолчанию список контроля доступа, следующий:
Разберем его подробнее. Первые две строки задают значения по умолчанию, т.е. для любых клиентов, в сетях IPv4 и IPv6:
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
Перечисленные флаги имеют значения:
- kod — отправка клиенту, посылающему нежелательные запросы, пакета KoD (Kiss O’Death), получатель такого пакета обязан выполнить предписанную ему проверку и изменить свое поведение, в противном случае такой клиент будет отключен от сервера.
- notrap — запрет приема управляющих сообщений
- nomodify — запрет приема сообщений, изменяющих состояние сервера
- nopeer — запрет установки одноранговых отношений с другими NTP-серверами
- noquery — запрет любых запросов для синхронизации времени поступающих с других серверов
- limited — запрет обслуживания, если интервал между пакетами от клиента превышает разрешенные значения
Под ними расположены строки, дающие полный доступ к серверу локальной системе:
restrict 127.0.0.1
restrict ::1
Отсутствие маски указывает на то, что это конечный узел, а отсутствие флагов предоставляет полный доступ.
При необходимости мы можем добавить свои записи, скажем для клиентов собственной сети с меньшим числом ограничений:
restrict 192.168.111.0 mask 255.255.255.0 nomodify notrap
Если нужно запретить доступ к серверу времени, то следует использовать флаг ignore. Допустим, мы хотим запретить доступ для всех клиентов доменной сети, кроме эмулятора PDC:
restrict 192.168.122.0 mask 255.255.255.0 ignore #доменная сеть
restrict 192.168.122.101 nomodify notrap #PDC
Расположение строк не имеет значения, так как при запуске сервера все адреса будут отсортированы по возрастанию адреса/маски.
После внесения изменений следует перезапустить службу:
Проверить ее статус можно командой:
Состояние синхронизации с вышестоящими серверами можно узнать командой:
Которая выдаст нам следующий вывод:
На что следует обратить внимание? Прежде всего на символы слева от адреса сервера:
- * — сервер выбран для синхронизации
- + — сервер пригодный для синхронизации
- — — синхронизация с этим сервером не рекомендуется
- x — сервер недоступен
Затем на колонку refid — показывающее вышестоящий сервер синхронизации и колонку offset, которое показывает расхождение ваших часов с эталоном, при положительном значении наши часы спешат, при отрицательном отстают.
В колонке st указывается stratum — приоритет сервера, а delay содержит задержку ответа от сервера. Как видим, в нашем случае служба времени выбрала для синхронизации сервер с приоритетом 1, который синхронизируется от GPS-часов, несмотря на более высокий уровень задержки при работе с ним.
Ну и не забудьте разрешить доступ к вашему NTP-серверу в брандмауэре, добавив в правила iptables строку:
iptables -A INPUT -p udp --dport 123 -j ACCEPT
При необходимости можно ограничить доступ сетевым интерфейсом:
iptables -A INPUT -i ens33 -p udp --dport 123 -j ACCEPT
iptables -A INPUT -s 192.168.111.0/24 -p udp --dport 123 -j ACCEPT
Как видим, настроить собственный сервер времени очень и очень просто, можно просто установить пакет и работать. Но гораздо лучше разобраться с настройками, хотя бы на базовом уровне, после чего для вас конфигурация NTP перестанет быть «китайской грамотой» и вы будете понимать, как именно работает ваш сервер.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Как настроить NTP-сервер и клиент в Debian
NTP (Network Time Protocol) -протокол сетевого времени. Это протокол или служба, используемая для синхронизации часов ваших клиентских компьютеров с часами сервера. Часы сервера также синхронизируются с Интернетом. В этой статье я покажу вам, как установить NTP-сервер в вашей среде и синхронизировать часы с клиентскими машинами.
Обновление репозитория пакетов Debian
Прежде чем мы начнём установку новых пакетов, мы должны убедиться, что списки репозитория Debian обновлены. Откройте терминал с привилегиями root и выполните следующую команду для обновления репозитория пакетов.
Установка NTP-сервера в Debian
Чтобы установить NTP-сервер, выполните следующую команду в терминале. Когда появится запрос, введите Y с клавиатуры.
Дождитесь окончания установки. Это может занять несколько минут в зависимости от скорости вашего интернета.
Ниже приведен пример вывода.
Проверка установки
Вы можете проверить установку и версию, выполнив следующую команду.
Перезапуск сервера NTP
Выполните следующую команду для перезапуска NTP-сервера.
Чтобы проверить, действительно ли служба NTP запущена, выполните следующую команду.
Ниже приведен пример вывода, который показывает, что служба NTP запущена на сервере.
Настройте брандмауэр на сервере NTP так, чтобы клиенты могли получить к нему доступ
Откройте терминал на сервере NTP и выполните следующую команду с правами root.
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT iptables -A INPUT -p udp --sport 123 -j ACCEPT
Установка NTP на клиенте
Откройте терминал с привилегиями root и выполните следующую команду.
Дождитесь окончания установки. Это может занять несколько минут в зависимости от скорости интернета.
Ниже приведен пример вывода.
Настройка NTP-клиента
После того как вы установили демон NTP на клиентскую машину, пришло время настроить ее так, чтобы ее часы синхронизировались с NTP-сервером.
Выполните следующую команду, чтобы открыть файл конфигурации в редакторе nano.
Добавьте следующие строки,
Где [IP] — IP адрес NTP сервера
Ниже приведен пример вывода после добавления вышеуказанной строки в конфигурационный файл.
Перезапустите службу NTP после добавления вышеуказанной строки, выполнив следующую команду на терминале с правами root.
Чтобы проверить состояние, выполните следующую команду на терминале.
Похожие записи:
ISP NTP
apt install -y chrony nano /etc/chrony/chrony.conf local stratum 4
allow 4.4.4.0/24
allow 3.3.3.0/24
systemctl restart chronyd
RTR-L NTP
ip domain name int.demo.wsr
ip name-server 192.168.100.200 ntp server chrony.int.demo.wsr RTR-R NTP
ip domain name int.demo.wsr
ip name-server 192.168.100.200 ntp server chrony.int.demo.wsr WEB-L NTP
apt-cdrom add
apt install -y chrony nano /etc/chrony/chrony.conf pool chrony.int.demo.wsr iburst
allow 192.168.100.0/24
systemctl restart chrony WEB-R NTP
apt-cdrom add
apt install -y chrony nano /etc/chrony/chrony.conf pool chrony.int.demo.wsr iburst
allow 192.168.100.0/24
systemctl restart chrony
Ntp linux настройка debian
Network Time Protocol. This will make your system date match actual date, by synchronizing with network time servers.