Taxitaxitaxi.ru

Эволюшн
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Расширенные настройки Mikrotik RouterOS: Настройка и синхронизация точного времени в локальной сети

Настройка сервера точного времени в локальной сети на маршрутизаторах Mikrotik под управлением RouterOS.

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

Как пример, это могут быть банковские учреждения, транспортные, перевозочные организации, предприятия, на которых используется система электронного учета за сотрудниками (приход на работу, открытие смены и т.д.), а также предприятия с полной или частичной автоматизацией бизнес-процессов.

В случаях, когда время на компьютерах отличается, могут возникать определенные проблемы, в частности речь идет о сетевом программном обеспечении. Примеров может быть множество, каждый сам решает насколько для вас важно точное время. Очень часто в торговых предприятиях рабочие станции (например, кассы) хоть и объединены в локальную сеть, но доступа к сети Интернет могут и не иметь. Использование локального сервера времени позволяет установить единое время для всех устройств, работающих в локальной сети предприятия, а также обеспечить автоматическую синхронизацию времени на ПК без доступа к сети Интернет.

Процесс настройки точного времени на примере маршрутизаторов компании Mikrotik.

Первоначальная настройка времени выполняется в разделе System – Clock.

Первоначальная настройка времени выполняется в разделе System – Clock

Важно правильно указать часовой пояс. Заходим в раздел System – NTP Client.

раздел System – NTP Client

Первым делом устанавливаем опцию Enabled, для активации клиента. Режим (Mode) оставляем без изменений – unicast. Далее нам необходимо указать 2 сервера времени, первичный и вторичный – Primary NTP Server и Secondary NTP Server.

Сервер времени достаточно просто найти в интернете, самым крупным сервисом является pool.ntp.org, здесь вы можете выбрать сервер NTP, исходя из своей локации. Поскольку мы находимся в Украине, то и сервера предполагается использовать украинские – чем меньше задержки при передаче пакетов, тем лучше.

Для Украины это серверы:

На сервисе существуют серверы для других стран и регионов, например, для Европы есть сервера верхнего уровня:

выбираем NTP Client

Пока клиент NTP не активен – система будет использовать локальные часы (using local clock). Поле того, как вы укажете серверы для синхронизации и нажмете применить, система преобразует DNS в IP-адреса и начнет синхронизацию (статус synchronized – синхронизация прошла успешно).

Преобразование в IP имеет недостаток, дело в том при смене IP сервера, в маршрутизаторе он автоматически не сменится. Будем надеяться, в последующих обновлениях RouterOS разработчики учтут этот недостаток.

Настройка и синхронизация точного времени в локальной сети

На этом этапе наш маршрутизатор уже использует точное время и периодически выполняет синхронизацию. Осталось настроить его для использования в локальной сети.

Для этого нам потребуется специальный пакет NTP, который устанавливается отдельно. На официальном сайте Mikrotik в разделе загрузок (Downloads), необходимо скачать архив Extra packages для вашей платформы. В нашем случае это MIPS-BE.

архив Extra packages

Качаем all_packages-mipsbe-6.34.zip (архив для текущей версии 6.34) и извлекаем из него NPK-пакет ntp-6.34-mipsbe.npk.

NPK-пакет ntp-6.34-mipsbe.npk

Загружаем в Mikrotik, активируем, перезагружаем систему. После этого у вас появится новый раздел System – NTP Server.

раздел System – NTP Server

Это и есть наш сервер NTP. Устанавливаем опцию Enabled, а также Multicast и Manycast.

Устанавливаем опцию Enabled, а также Multicast и Manycast

Готово, теперь в нашей локальной сети есть свой сервер времени. Осталось настроить клиентские устройства. Большинство офисов используют Windows-платформу, поэтому настройку опишем на примере операционной системы Windows.

Windows время

В настройках часов присутствует специальная вкладка «Время по Интернету», здесь можно указать сервер времени и выполнить ручную синхронизацию.

Windows время - ручная синхронизация

Недостаток этого метода в том, что настройку нужно произвести на всех компьютерах, а при переустановке ОС выполнять все действия повторно. Существует альтернативный и куда более удобный вариант решения данного вопроса. Дело в том, что по-умолчанию, операционная система Windows настроена на синхронизацию времени с сервером time.windows.com

Читайте так же:
Как регулировать прием варфарина

Поскольку клиенты в локальной сети в качестве DNS-сервера используют локальный маршрутизатор, мы вполне можем «обмануть» Windows. Открываем раздел IP – DNS.

раздел IP – DNS

В настройках DNS необходимо добавить новую статическую запись, для чего нажимаем Static.

В настройках DNS необходимо добавить новую статическую запись

В поле Name указываем time.windows.com, в поле Address – IP маршрутизатора в локальной сети.

указываем time.windows.com

После этого у нас появится новая запись.

Настройка и синхронизация точного времени в локальной сети в ОС Виндовс

До того, как кеш DNS обновится может пройти достаточное количество времени, поэтому ускоряем процесс. В настройках DNS выбираем Cache (Кеш) и далее нажимаем Flush Cache, что приведет к его очистке.

Настройка и синхронизация точного времени в локальной сети в ОС Виндовс

На этом настройка завершена, а все системы на ОС Windows будут производить автоматическую синхронизацию времени с локальным сервером без каких-либо дополнительных настроек.

подскажите по настройке NTP

Не надо все контроллеры домена, только "главный", который является сервером времени для домена. Как вариант — прописать NTP сервера из интернета, те же, которые указаны на контроллере домена (он то синхронизируется с NTP серверами?).

FreeNAS случайно не в виртуалке? Там могут быть проблемы со временем.

n0000b
Member
  • Feb 25, 2019
  • #3

что вы подразумеваете под словом "главный", у нас развернутая доменная сеть с пятью уровнями, мы на третьем.И время нашему домену растаскивается и домена второго уровня стало быть, согласно иерархии времени в Active Directory.
В любом случае оставил в настройках NTP, только один ip-адрес одного из контроллеров.

Можно как-то принудительно пнуть на синхронизации и по логам посмотреть что не так конкретно, на каком этапе?

Yuriy
Member
  • Feb 25, 2019
  • #4
n0000b
Member
  • Feb 25, 2019
  • #5
Senior Member
  • Feb 25, 2019
  • #6
Yuriy
Member
  • Feb 25, 2019
  • #7

А что показывает вывод w32tm /monitor на доменных компах в том же сегменте? Какой сервер времени используется как основной?

FreeNAS ведь введен в домен? Он есть в списке доменных компьютеров в соответствующей оснастке?
При Вашей непростой сети могут быть ограничения по доступу к некоторым КД.

Mihalich
Senior Member
  • Feb 25, 2019
  • #8
Yuriy
Member
  • Feb 25, 2019
  • #9
n0000b
Member
  • Feb 26, 2019
  • #10

Отдельного NTP нет. Windows Time.

А что показывает вывод w32tm /monitor на доменных компах в том же сегменте? Какой сервер времени используется как основной?

FreeNAS ведь введен в домен? Он есть в списке доменных компьютеров в соответствующей оснастке?
При Вашей непростой сети могут быть ограничения по доступу к некоторым КД.

C:Usersadmin>w32tm /monitor
dc01.xxx.yyy.zzz *** PDC ***[10.22.0.10:123]:
ICMP: 0ms задержка
NTP: +0.0000000s смещение относительно dc01.xxx.yyy.zzz
RefID: (неизвестный) [0x500C4D0A]
Страта: 3
dc02.xxx.yyy.zzz[10.22.0.36:123]:
ICMP: 0ms задержка
NTP: -0.0132121s смещение относительно dc01.xxx.yyy.zzz
RefID: dc01.xxx.yyy.zzz [10.22.0.10]
Страта: 4

Предупреждение:
Рекомендуется использовать обратное разрешение имен. Возможно, оно выполнено
неверно, поскольку поле RefID в пакетах времени различается в
разных реализациях NTP и может не использовать IP-адреса.

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

Windows 95 стала доступна в виде приложения на современных платформах

Для начала определяю какой контроллер домена Windows Server 201x имеет роль PDC (если я этого не знаю )) ), если контроллеров домена несколько, как в моём случае. Для этого на любом компьютере или сервере, входящем в домен! , запускаю командную строку от имени Администратора:

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

Не будем обсуждать распределение ролей между контролерами, в тестовом домене у меня все роли принадлежат одному контроллеру, и перейдя на сервер ADDC01 (в моём случае) — начнем его настройку.

Читайте так же:
Регулировка системы зажигания лодочного мотора

1. Для начала создадим WMI-фильтр, который будет применять нашу новую политику только к серверу с ролью эмулятора PDC

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

2. Создадим новую групповую политику и применим к ней фильтр WMI, созданный нами выше.
Нас интересует путь: Computer Configuration — Administrative Templates — System — Windows Time Service — Time Providers (Конфигурация компьютера -> Политики -> Административные шаблоны -> Система -> Служба времени Windows -> Поставщики времени)

Здесь нам нужно включить три политики:
Enable Windows NTP Client: Enabled
Enable Windows NTP Server: Enabled
Configure Windows NTP Client: Enabled

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

Пункт Configure Windows NTP client имеет следующие настройки:

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

Я использовал следующий список серверов точного времени:

3. Создав политику не забываем применить к ней фильтр WMI:

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

4. Пришло время обновить политики на сервере времени и синхронизировать время. Запускаем командную строку от имени Администратора.

Как синхронизация времени стала безопасной

Как синхронизация времени стала безопасной
Как сделать так, чтобы время per se не врало, если у вас есть миллион больших и малых устройств, взаимодействующих по TCP/IP? Ведь на каждом из них есть часы, а время должно быть верным на всех. Эту проблему без ntp невозможно обойти.

Представим себе на одну минуту, что в одном сегменте промышленной ИТ инфраструктуры возникли трудности с синхронизацией сервисов по времени. Немедленно начинает сбоить кластерный стек Enterprise ПО, распадаются домены, мастера и Standby узлы безуспешно стремятся восстановить status quo.

Возможна также ситуация, когда злоумышленник намеренно старается сбить время через MiTM, или DDOS атаку. В такой ситуации может произойти все что угодно:

  • истечет срок действия паролей учетных записей пользователей;
  • истечет срок действия X.509 сертификатов;
  • двухфакторная аутентификация TOTP перестанет работать;
  • бэкапы «устареют» и система удалит их;
  • сломается DNSSec.

Понятно, что каждый первый департамент ИТ заинтересован в надежной работе служб синхронизации времени, и хорошо бы они были надежны и безопасны в промышленной эксплуатации.

Сломать NTP за 25 минут

Сетевые протоколы — милленниалы имеют одну особенность, они давно устарели и никуда уже не годятся, но заменить их не так-то легко даже тогда, когда набирается критическая масса энтузиастов и финансирования.

Основная претензия к классическому NTP в отсутствии надежных механизмов защиты от атак злоумышленников. Предпринимались разнообразные попытки решить эту проблему. Для этого сначала внедрили механизм заранее установленных ключей (PSK) для обмена симметричными ключами.

К сожалению этот способ себя не оправдал в сиду простой причины — он плохо масштабируется. Нужна ручная настройка на стороне клиента в зависимости от сервера. Это значит, что вот так вот просто нельзя добавить еще одного клиента. Если на сервере NTP что-то меняется, надо перенастраивать все клиенты.

Тогда придумали AutoKey, но сразу же в нем обнаружили ряд серьезных уязвимостей в самом дизайне алгоритма и от него пришлось отказаться. Все дело в том, что начальное число (seed) содержит всего лишь 32-бита, оно слишком мало и не содержит достаточно вычислительной сложности для лобовой атаки.

  • Key ID — симметричный 32-битный ключ;
  • MAC (message authentication code) — контрольная сумма NTP пакета;

Autokey рассчитывается следующим образом.

Где H() — криптографическая хэш функция.

Для расчета контрольной суммы пакеты используется та же функция.

Так получается, что вся целостность проверок пакетов держится на аутентичности кукис. Завладев ими, можно восстановить autokey и затем подделать MAC. Однако сервер NTP при их генерации использует начальное число (seed). Именно тут кроется подвох.

Функция MSB_32 отрезает от результата вычисления md5 хэша 32 старших бита. Клиентский куки не меняется до тех пор, пока параметры сервера неизменны. Дальше злоумышленнику остается лишь восстановить начальное число и получить возможность самостоятельно генерить куки.

Читайте так же:
Как произвести регулировку редукционного клапана на мотовозе

Для начала следует подключиться к серверу NTP в качестве клиента и получить куки. После этого методом перебора злоумышленник восстанавливает начальное число следуя простому алгоритму.

Алгоритм атаки на вычисление начального числа методом перебора.

IP адреса известны, так что остается лишь создать 2^32 хэша до тех пор пока созданный куки не совпадет с тем, что получен от NTP сервера. На обычной домашней станции с Intel Core i5 на это уйдет 25 мин.

NTS — новый Autokey

Мириться с такими дырами в безопасности Autokey было невозможно и в 2012 г. появилась новая версия протокола. В целях скомпрометированного названия решили провести ребрендинг, так Autokey v.2 окрестили Network Time Security.

Протокол NTS является расширением безопасности NTP и в настоящее время поддерживает лишь одноадресный режим (unicast). Он дает надежную криптографическую защиту от манипуляций пакетами, предотвращает отслеживание, хорошо масштабируется, устойчив к потере сетевых пакетов и приводит к наименьшим потерям точности, возникающим в процессе защиты соединения.

NTS соединение состоит из двух этапов, в которых используются протоколы нижнего уровня. На первом этапе клиент и сервер договариваются о различных параметрах соединения и обмениваются куки, содержащими ключи со всем сопутствующим набором данных. На втором этапе происходит собственно защищенный NTS сеанс между клиентом и сервером NTP.

Как синхронизация времени стала безопасной

NTS состоит из двух протоколов нижнего уровня: Network Time Security Key Exchange (NTS-KE), инициализация безопасного соединения поверх TLS, и NTPv4 — последней инкарнации протокола NTP. Чуть подробнее об этом ниже.

Первый этап — NTS KE

На данном этапе NTP клиент инициирует TLS 1.2/1.3 сеанс по отдельному TCP соединению с сервером NTS KE. Во время этой сессии происходит следующее.

  • Стороны определяют параметры AEAD алгоритма для второго этапа.
  • Стороны определяют второй протокол нижнего уровня, но на данный момент лишь NTPv4поддерживается.
  • Стороны определяют IP адрес и порт NTP сервера.
  • NTS KE сервер выдает куки под NTPv4.
  • Стороны извлекают из материала куки пару симметричных ключей (C2S и S2C).

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

Второй этап — NTP под защитой NTS

На втором этапе клиент безопасно синхронизирует время с NTP сервером. Для этой цели он передает четыре специальных расширения (extension field) в структуре NTPv4 пакета.

  • Unique Identifier Extension содержит случайный nonce для предотвращения атак путем повтора.
  • NTS Cookie Extension содержит один из имеющихся в наличие у клиента NTP куки. Поскольку только клиент располагает симметричными AAED ключами C2S и S2C, сервер NTP должен извлечь их из материала куки.
  • NTS Cookie Placeholder Extension способ для клиента запросить дополнительные куки с сервера. Это расширение необходимо, чтобы ответ сервера NTP не был намного длиннее, чем запрос. Это позволяет предотвратить атаки усиления.
  • NTS Authenticator and Encrypted Extension Fields Extension содержит шифр алгоритма AAED с C2S ключем, заголовком NTP, временными отметками, и упомянутыми выше EF в качестве сопутствующих данных. Без этого расширения возможно подделать временные отметки.

Как синхронизация времени стала безопасной

Получив запрос от клиента, сервер проверяет подлинность NTP пакета. Для этого он должен расшифровать куки, извлечь алгоритм AAED и ключи. После успешной проверки NTP пакета на валидность сервер отвечает клиенту в следующем формате.

  • Unique Identifier Extension зеркальная копия клиентского запроса, мера против атак путем повтора.
  • NTS Cookie Extension больше куки для продолжения сеанса.
  • NTS Authenticator and Encrypted Extension Fields Extension содержит шифр AEAD с S2C ключем.
Читайте так же:
Регулировка клапанов авео 250

Второе рукопожатие можно повторить много раз, минуя первый этап, так как каждый запрос и ответ дает клиенту дополнительные куки. Это дает то преимущество, что относительно ресурсоемкие TLS операции вычисления и передачи PKI данных делятся на число повторных запросов. Это особенно удобно для специализированных FPGA хронометров, когда весь основной функционал можно упаковать в несколько функций из области симметричной криптографии, передав весь TLS стек на другое устройство.

NTPSec

В чем особенность NTP? Несмотря на то, что автор проекта Dave Mills старался как можно лучше документировать свой код, редкий программист сумеет разобраться в хитросплетениях алгоритмов синхронизации времени 35-детней давности. Часть кода написана до эпохи POSIX, а Unix API тогда сильно отличался от того, что используется в наши дни. Кроме того, нужны знания по статистике, чтобы очистить сигнала от помех на шумных линиях.

NTS была не первой попыткой починить NTP. После того, как злоумышленники научились использовать уязвимости NTP для усиления DDoS атак, стало ясно, что нужны радикальные перемены. И пока готовились и доводились до ума черновики NTS, National Science Foundation США в конце 2014 г. срочно выделил грант на модернизацию NTP.

Рабочую группу возглавил не абы кто, а Эрик Стивен Реймонд — один из основателей и столпов сообщества Open Source и автор книги Собор и Базар . Первым делом Эрик со товарищи попробовали перенести код NTP из платформы BitKeeper на git, но не тут-то было. Лидер проекта Harlan Stenn был против этого решения и переговоры зашли в тупик. Тогда было решено форкнуть код проекта, так возник NTPSec.

Солидный опыт, в том числе работа над GPSD, математический бэкграунд и магический навык чтения древнего кода — Эрик Реймонд был именно тем хакером, который мог вытащить такой проект. В команде нашелся специалист по миграции кода и всего за 10 недель NTP обосновался на GitLab-е. Работа закипела.

Команда Эрика Раймонда взялась за дело так же, как Огюст Роден при работе с глыбой камня. Удалив 175 KLOC старого кода, им удалось значительно сократить площадь атаки, закрыв множество дыр безопасности.

Вот неполный список попавших под раздачу:

  • Недокументированные, устаревшие, устаревшие или сломанные refclock.
  • Неиспользуемая библиотека ICS.
  • libopts/autogen.
  • Старый код для Windows.
  • ntpdc.
  • Autokey.
  • C код ntpq переписан на Python.
  • C код sntp/ntpdig переписан на Python.

Помимо очистки кода были и у проекта были и другие задачи. Вот неполный список достижений:

  • Значительно усилена защита кода от переполнения буфера. Чтобы предотвратить переполнение буфера, все небезопасные строковые функции (strcpy / strcat / strtok / sprintf / vsprintf / gets) заменили безопасными версиями, которые реализуют ограничение размера буфера.
  • Добавлена поддержка NTS.
  • Десятикратно повысили точность временного шага с помощью привязки физического оборудования. Это связано с тем, что современные компьютерные часы стали гораздо точнее тех, что были в момент зарождения NTP. Больше всех от этого выиграли GPSDO и выделенные радиостанции времени.
  • Количество языков программирования сократилось до двух. Вместо скриптов Perl, awk и даже S, теперь сплошной Python. За счет этого больше возможностей повторного использования кода.
  • Вместо лапши скриптов autotools проект стал использовать систему сборки программного обеспечения waf .
  • Обновили и реорганизовали документацию проекта. Из противоречивой, и местами архаичной коллекции документов создали вполне сносную документацию. Каждый ключ командной строки и каждая сущность конфигурации теперь имеют единую версию правды. Кроме того, страницы руководства и веб документация теперь создаются из одних и тех же основных файлов.
Читайте так же:
Регулировка зажигания когда стреляет в карбюратор

NTPSec доступен для ряда Linux дистрибутивов. В данный момент последняя стабильная версия 1.1.8, для Gentoo Linux — предпоследняя.

Chrony

Была еще одна попытка заменить старый NTP более безопасный аналог. Chrony в отличие от NTPSec написан с нуля и предназначен для надежной работы в широком диапазоне условий, включая нестабильные сетевые соединения, частичная доступность или перегрузки сети и изменения температуры. Кроме того chrony обладает и другими преимуществами:

  • chrony может быстрее синхронизировать системные часы с большей точностью;
  • chrony меньше, потребляет меньше памяти и обращается к процессору только тогда, когда это необходимо. Для экономии ресурсов и энергии это большой плюc;
  • chrony поддерживает метки времени на аппаратном уровне в Linux, что обеспечивает чрезвычайно точную синхронизацию в локальных сетях.

Впрочем, в chrony отсутствуют некоторые возможности старого NTP такие, как широковещательный и многоадресный (multicast) клиент / сервер. В добавок классический NTP поддерживает большее число ОС и платформ.

Для отключения функциональности сервера и NTP запросов к процессу chronyd достаточно прописать port 0 в файл chrony.conf. Это делается в тех случаях, когда нет нужды обслуживать время для NTP клиентов или одноранговых узлов. Начиная с версии 2.0, порт сервера NTP открыт только в тех случаях, когда доступ разрешен директивой allow или соответствующей командой, либо же настроен одноранговый узел NTP, или используется директива broadcast.

Программа состоит из двух модулей.

  • chronyd — сервис, работающий в фоновом режиме. Он получает информацию о разнице системных часов с внешним сервером времени и корректирует локальное время. Он также реализует протокол NTP и может выступать в качестве клиента или сервера.
  • chronyc — утилита командной строки для мониторинга и контроля программы. Используется для тонкой настройки различных параметров сервиса, например позволяет добавлять или удалять серверы NTP в то время, как chronyd продолжает работать.

Начиная с 7-й версии RedHat Linux использует chrony в качестве службы синхронизации времени. Пакет также доступен для остальных дистрибутивов Linux. Последняя стабильная версия 3.5, готовится к выходу v4.0.

Как настроить собственный удаленный сервер chrony в интернете для синхронизации времени в офисной сети. Далее пример настройки на VPS.

Пример настройки Chrony на RHEL / CentOS на VPS

Давайте теперь немного потренируемся и поднимем свой собственный NTP сервер на VPS. Это очень просто, достаточно выбрать подходящий тариф на сайте RuVDS, получить готовый сервер и набрать с десяток несложных команд. Для наших целей вполне подойдет такой вариант.

Как синхронизация времени стала безопасной

Переходим к настройке сервиса и первым делом ставим пакет chrony.

RHEL 8 / CentOS 8 используют другой пакетный менеджер.

После установки chrony нужно запустить и активировать сервис.

При желании можно внести правки в /etc/chrony.conf, заменив сервера NPT на ближайшие локальные для сокращения времени отклика.

Далее настраиваем синхронизацию NTP сервера с узлами из указанного пула.

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

На стороне клиента достаточно правильно выставить часовой пояс.

В файле /etc/chrony.conf указывает IP или название хоста нашего VPS сервера, на котором запущен NTP server chrony.

И наконец запуск синхронизации времени на клиенте.

В следующий раз расскажу, какие есть варианты синхронизации времени без интернета.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector