Пример настройки NTP (Network Time Protocol) на шлюзе «С-Терра Шлюз»

Скачать в формате PDF

 

Настоящий документ содержит описание способа совместного использования Продуктов компании ООО

«С-Терра СиЭсПи» и Продуктов третьих производителей.

ООО «С-Терра СиЭсПи» осуществляет сопровождение настоящего сценария в части настроек Продуктов Компании. Упоминание наименований, продуктов, торговых марок третьих организаций исключительно неформально и не является поддержкой, рекомендацией либо рекламой. ООО «С-Терра СиЭсПи» не несет какой-либо ответственности в отношении работоспособности и использования этих Продуктов.

Документ имеет статус вспомогательного материала, который может быть использован технологическими партнерами, компаниями-интеграторами, при разработке собственных решений.

Решения, разработанные на базе данного сценария, могут применяться в действующих сетях/системах

только после тестовой и/или опытной эксплуатации.

Логика работы NTP

NTP – протокол для синхронизации внутренних часов компьютера по сети.

С-Терра Шлюз может выступать NTP клиентом, NTP сервером, так и одновременно клиентом и сервером.

В данной инструкции предполагается, что NTP сервер (который также является клиентом) настраивается на шлюзе (его IP-адрес 10.0.1.100) в условном центре, а NTP клиентами являются шлюзы, установленные в условных филиалах.

Рассматривается два варианта настроек – без аутентификации NTP сервера и с аутентификацией по симметричному ключу.

Настоятельно рекомендуется защищать обмен протокола NTP при помощи IPsec, так как встроенной аутентификации в протоколе NTP недостаточно для обеспечения надлежащей защиты.

Предварительные требования

1.    На шлюзе должен быть открыт порт 123 протокола UDP (по умолчанию открыт).

2.    На шлюзе должен быть настроен соответствующий часовой пояс:

root@sterragate:~# dpkg-reconfigure tzdata

3.    На шлюзе должны быть заданы рабочие DNS-сервера:

root@sterragate:~# vim.tiny /etc/resolv.conf

nameserver 8.8.8.8

nameserver 8.8.4.4

Пример настройки без аутентификации NTP сервера

Пример настройки NTP сервера

1.    Выполните предварительные требования.

2.    Очистите конфигурационный файл /etc/ntp.conf службы ntp, выполнив команду:

root@sterragate:~# echo > /etc/ntp.conf

3.    Добавьте в конфигурационный файл /etc/ntp.conf следующие строки:

root@sterragate:~# vim.tiny /etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift

server 0.ru.pool.ntp.org iburst

server 1.ru.pool.ntp.org iburst

server 2.ru.pool.ntp.org iburst

server 3.ru.pool.ntp.org iburst

restrict default kod notrap nomodify nopeer noquery

restrict 127.0.0.1

где:

·         driftfile /var/lib/ntp/ntp.drift – файл для записи смещения частоты локального генератора тактовых импульсов (не рекомендуется менять).

·         server 0.ru.pool.ntp.org iburst – указываем сервер, с которым будет производиться синхронизация времени.

·         restrict default kod notrap nomodify nopeer noquery – разрешаем всем только синхронизацию времени.

·         restrict 127.0.0.1 – разрешаем любой доступ сервера к самому себе.

 

Более подробнее смотрите описание параметров по ссылке https://manpages.debian.org/jessie/ntp/ntp.conf.5.en.html.

4.    Перезагрузите службу ntp:

root@sterragate:~# service ntp restart

5.    Подождите 10 – 15 минут и выполните:

root@sterragate:~# ntpq –p

     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

+webhost2.mitht. 77.37.134.150    2 u  229  256  377   44.955    2.320   1.446

*time.ooonet.ru  194.190.168.1    2 u   26  256  377   27.832    1.751   0.926

+89.169.173.117  89.109.251.24    2 u  129  256  377    4.846    1.504   0.492

+46-8-40-31.regn 212.20.50.208    2 u   99  256  377   50.095    1.747   0.976

Обратите внимание на звездочку (*), которая говорит о том, что синхронизация производится с данного сервера.

6.    Для того чтобы служба ntp запускалась после перезагрузки системы, выполните команду:

root@sterragate:~# update-rc.d ntp enable

Пример настройки NTP клиента

1.    Выполните предварительные требования.

2.    Очистите конфигурационный файл /etc/ntp.conf службы ntp, выполнив команду:

root@sterragate:~# echo > /etc/ntp.conf

3.    Добавьте в конфигурационный файл /etc/ntp.conf следующие строки:

root@sterragate:~# vim.tiny /etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift

server 10.0.1.100 iburst

restrict default kod notrap nomodify nopeer noquery

restrict 127.0.0.1

где:

·         driftfile /var/lib/ntp/ntp.drift – файл для записи смещения частоты локального генератора тактовых импульсов (не рекомендуется менять).

·         server 10.0.1.100 iburst – указываем сервер, с которым будет производиться синхронизация времени (10.0.1.100 – IP- адрес шлюза с настроенным NTP сервером).

·         restrict default kod notrap nomodify nopeer noquery – разрешаем всем только синхронизацию времени.

·         restrict 127.0.0.1 – разрешаем любой доступ сервера к самому себе.

4.    Перезагрузите службу ntp:

root@sterragate:~# service ntp restart

5.    Подождите 10 – 15 минут и выполните:

root@sterragate:~# ntpq –p

     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*10.0.1.100      89.169.173.117   3 u   44  128  377    0.191   13.500   2.848

Обратите внимание на звездочку (*), которая говорит о том, что синхронизация производится с данного сервера.

6.    Для того чтобы служба ntp запускалась после перезагрузки системы, выполните команду:

root@sterragate:~# update-rc.d ntp enable

Пример настройки с аутентификацией NTP сервера

Пример настройки NTP сервера

1.    Выполните предварительные требования.

2.    Очистите конфигурационный файл /etc/ntp.conf службы ntp, выполнив команду:

root@sterragate:~# echo > /etc/ntp.conf

3.    Создайте директорию для файла с ключами:

root@sterragate:~# mkdir -p /etc/ntp/

4.    Создайте файл /etc/ntp/keys с ключами и добавьте в него ключ:

Идентификатор ключа (key ID), алгоритм хеширования (hash algorithm) и сам ключ (key) должны быть одинаковыми как на сервере, так и на клиенте.

root@sterragate:~# vim.tiny /etc/ntp/keys

# key ID | hash algorithm | key

1 MD5 secret

В качестве алгоритма хеширования поддерживается только MD5. Длина пароля ограничена 20 символами ASCII.

5.    Добавьте в конфигурационный файл /etc/ntp.conf следующие строки:

root@sterragate:~# vim.tiny /etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift

server 0.ru.pool.ntp.org iburst

server 1.ru.pool.ntp.org iburst

server 2.ru.pool.ntp.org iburst

server 3.ru.pool.ntp.org iburst

restrict default kod notrap nomodify nopeer noquery

restrict 127.0.0.1

keys /etc/ntp/keys

trustedkey 1

где:

·         driftfile /var/lib/ntp/ntp.drift – файл для записи смещения частоты локального генератора тактовых импульсов (не рекомендуется менять).

·         server 0.ru.pool.ntp.org iburst – указываем сервер, с которым будет производиться синхронизация времени.

·         restrict default kod notrap nomodify nopeer noquery – разрешаем всем только синхронизацию времени.

·         restrict 127.0.0.1 – разрешаем любой доступ сервера к самому себе.

·         keys /etc/ntp/keys – файл с ключами.

·         trustedkey 1 – список доверенных ключей (key ID) из файла с ключами (если ключей несколько, то укажите их через пробел «trustedkey 1 2 3»).

 

Более подробнее смотрите описание параметров по ссылке https://manpages.debian.org/jessie/ntp/ntp.conf.5.en.html.

6.    Перезагрузите службу ntp:

root@sterragate:~# service ntp restart

7.    Подождите 10 – 15 минут и выполните:

root@sterragate:~# ntpq –p

     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

+webhost2.mitht. 77.37.134.150    2 u  229  256  377   44.955    2.320   1.446

*time.ooonet.ru  194.190.168.1    2 u   26  256  377   27.832    1.751   0.926

+89.169.173.117  89.109.251.24    2 u  129  256  377    4.846    1.504   0.492

+46-8-40-31.regn 212.20.50.208    2 u   99  256  377   50.095    1.747   0.976

Обратите внимание на звездочку (*), которая говорит о том, что синхронизация производится с данного сервера.

8.    Для того чтобы служба ntp запускалась после перезагрузки системы, выполните команду:

root@sterragate:~# update-rc.d ntp enable

Пример настройки NTP клиента

1.    Выполните предварительные требования.

2.    Очистите конфигурационный файл /etc/ntp.conf службы ntp, выполнив команду:

root@sterragate:~# echo > /etc/ntp.conf

3.    Создайте директорию для файла с ключами:

root@sterragate:~# mkdir -p /etc/ntp/

4.    Создайте файл /etc/ntp/keys с ключами и добавьте в него ключ:

Идентификатор ключа (key ID), алгоритм хеширования (hash algorithm) и сам ключ (key) должны быть одинаковыми как на сервере, так и на клиенте.

root@sterragate:~# vim.tiny /etc/ntp/keys

# key ID | hash algorithm | key

1 MD5 secret

В качестве алгоритма хеширования поддерживается только MD5. Длина пароля ограничена 20 символами ASCII.

 

5.    Добавьте в конфигурационный файл /etc/ntp.conf следующие строки:

root@sterragate:~# vim.tiny /etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift

server 10.0.1.100 iburst key 1

restrict default kod notrap nomodify nopeer noquery

restrict 127.0.0.1

keys /etc/ntp/keys

trustedkey 1

где:

·         driftfile /var/lib/ntp/ntp.drift – файл для записи смещения частоты локального генератора тактовых импульсов (не рекомендуется менять).

·         server 10.0.1.100 iburst key 1 – указываем сервер, с которым будет производиться синхронизация времени (10.0.1.100 – IP- адрес шлюза с настроенным NTP сервером) и key ID из файла с ключами.

·         restrict default kod notrap nomodify nopeer noquery – разрешаем всем только синхронизацию времени.

·         restrict 127.0.0.1 – разрешаем любой доступ сервера к самому себе.

·         keys /etc/ntp/keys – файл с ключами.

·         trustedkey 1 – список доверенных ключей (key ID) из файла с ключами (если ключей несколько, то укажите их через пробел «trustedkey 1 2 3»).

6.    Перезагрузите службу ntp:

root@sterragate:~# service ntp restart

7.    Подождите 10 – 15 минут и выполните:

root@sterragate:~# ntpq –p

     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*10.0.1.100      89.169.173.117   3 u   44  128  377    0.191   13.500   2.848

Обратите внимание на звездочку (*), которая говорит о том, что синхронизация производится с данного сервера.

8.    Для того чтобы служба ntp запускалась после перезагрузки системы, выполните команду:

root@sterragate:~# update-rc.d ntp enable

 

Особые случаи

1.    Проблема со работой NTP сервиса после старта ОС.

Если конфигурация шлюза достаточна объемная и в LSP или cisco-like консоли заданы маршруты до NTP серверов, то сервис NTP после старта ОС может зависнуть в состоянии INIT (связано это с тем, что сервис NTP запускается раньше, чем прогружается конфигурация и устанавливаются маршруты). Для того, чтобы предотвратить эту проблему, создайте скрипт /etc/network/if-pre-up.d/ntprestart и добавьте в него строки:

root@sterragate:~# vi /etc/network/if-pre-up.d/ntprestart

#!/bin/bash

 

INTERFACE="eth0"

 

if [[ $IFACE == $INTERFACE ]]; then

    /root/ntprestart &

fi

 

exit 0

Установите права на запуск этого файла:

root@sterragate:~# chmod +x /etc/network/if-pre-up.d/ntprestart

Далее, необходимо создать скрипт «/root/ntprestart», который будет вызываться из скрипта «/etc/network/if-pre-up.d/ntprestart»:

root@sterragate:~# vi /root/ntprestart

#!/bin/bash

 

sleep <время ожидания в секундах>

service ntp restart

 

exit 0

Задайте нужное значение вместо <время ожидания в секундах>. Например, для LSP в 20000 строк нужно указать 260 секунд.

Установите права на запуск этого файла:

root@sterragate:~# chmod +x /root/ntprestart

Обратите внимание на то, в каких директориях создаются файлы.