⏲️ Как проверить, работают ли настройки NTP (синхронизация) или нет в Linux?

Любая возможность незаметно обращаться к внешнему миру с хоста внутри защищенной сети — драгоценная находка для пентестера. Один из последних доступных путей — это NTP, протокол синхронизации времени на часах. Его трафик разрешен почти везде, так что он будет отличным транспортом для данных. Я покажу, как реализовать базовые клиент и сервер, которые будут использовать этот феномен, а кодить мы будем на C#.

Пару месяцев назад я гулял по загнивающей Германии, где по каждому удобному и не очень поводу строят туннель. И тут мне пришла идея: а не сделать ли свой туннель? В качестве протокола я выбрал NTP — его использование не требует специальных привилегий, системы защиты не видят в нем никаких проблем, ведь там по определению быть ничего не может, кроме текущего времени, а его формат простой как палка, что позволяет нам использовать его без необходимости закапываться в документацию.

Этот трюк могут использовать и вирусописатели — для вывода данных из зараженных систем, причем незаметно для стандартных средств защиты.

image

WARNING

Создание и распространение вредоносных программ карается по статье 273 УК РФ. Ни автор, ни редакция «Хакера» не несут ответственности ни за какой вред, принесенный использованием материалов этой статьи.

Что такое NTP

NTP (Network Time Protocol) — протокол, который работает поверх UDP и используется для синхронизации локальных часов с часами на сервере точного времени. При работе в интернете точность синхронизации составляет до 10 мс, а в локальных сетях — до 0,2 мс. При этом NTP нечувствителен к задержкам канала.

Актуальная версия протокола (по данным Википедии) — 4, но мы будем использовать версию 3, которой для наших целей предостаточно.

Для максимальной точности служба обновления времени постоянно должна работать в фоновом режиме, регулярно отправляя запросы на сервер точного времени, то есть генерируя довольно много трафика. Это нам на руку, так как из-за этой особенности IDS давно не обращают внимания на трафик NTP.

За синхронизацию в Windows отвечает служба W32Time, а в Linux — демон ntpd или chronyd. Также существует более простая реализация этого протокола, известная как SNTP (Simple Network Time Protocol) — простой протокол сетевого времени. Применяют его во встраиваемых системах и устройствах, которые не требуют высокой точности, как, например, системы умного дома.

Структура пакета NTP

Структура пакета NTP описана в RFC 958 (v1), 1119 (v2), 1305 (v3) и 5905 (v4). Нас интересует версия 3, как довольно распространенная и простая, хотя ты свободно можешь пользоваться версией 4, она почти не отличается.

image

Для прожженных программистов на C есть псевдокод:

public struct NtpPacket {   public byte First8bits; // 2 бита — индикатор секунды коррекции (Leap Indicator, LI)                           // 3 бита — версия протокола (Version Number, VN)                           // 3 бита — режим работы (Mode)   public byte Stratum;    // Stratum — расстояние до корневого сервера по иерархии   public byte Poll;       // Насколько часто можно спрашивать сервер   public byte Precision;  // Точность системных часов   public uint RootDelay;  // Задержка сервера относительно главного источника времени   public uint RootDisp;   // Разброс показаний часов сервера   public uint RefID;      // ID часов   public ulong Reference; // Последние показания часов на сервере   public ulong Originate; // Правильное время отправки пакета клиентом (заполняет сервер)   public ulong Receive;   // Время получения пакета сервером   public ulong Transmit;  // Время отправки пакета с сервера клиенту } 

Теперь немного о назначении этих полей.

  • Leap indicator (LI), 2 бита — число, предупреждающее о секунде координации. Может быть от 0 до 3, где 0 — нет коррекции, 1 — последняя минута дня содержит 61 с, 2 — последняя минута дня содержит 59 с, 3 — неисправность сервера. При значении 3 полученным данным доверять не следует. Вместо этого нужно обратиться к другому серверу. Наш псевдосервер будет всегда возвращать 0.
  • Version number (VN), 2 бита — номер версии протокола NTP (1–4). Мы поставим туда 3.
  • Mode — режим работы отправителя пакета. Значение от 0 до 7, где 3 — клиент, а 4 — сервер.
  • Stratum — сколько посредников между клиентом и эталонными часами (включая сам NTP-сервер). 1 — сервер берет данные непосредственно с атомных (или других точных) часов, то есть между клиентом и часами только один посредник (сам сервер); 2 — сервер берет данные с сервера со значением Stratum 1 и так далее.
  • Poll — целое число, задающее интервал в секундах между последовательными обращениями. Клиент может указать здесь интервал, с которым он хочет отправлять запросы на сервер, а сервер — интервал, с которым он разрешает, чтобы его опрашивали.
  • Precision (точность) — число, которое сообщает точность локальных системных часов. Значение равно двоичному логарифму секунд.
  • Root delay (задержка сервера) — время, за которое показания эталонных часов доходят до сервера NTP. Задается как число секунд с фиксированной запятой.
  • Root dispersion — разброс показаний сервера.
  • RefID (идентификатор источника) — ID часов. Если поле Stratum равно единице, то RefID — имя атомных часов (четыре символа ASCII). Если текущий сервер NTP использует показания другого сервера, то в RefID записан IP-адрес этого сервера.
  • Reference — последние показания часов сервера.
  • Originate — время, когда пакет был отправлен, по версии сервера.
  • Receive — время получения запроса сервером.
  • Transmit — время отправки ответа сервера клиенту, которое заполняет клиент.

В целом процесс крайне прост и понятен, если изучить картинку. Клиент посылает запрос на сервер, запоминая, когда этот запрос был отправлен. Сервер принимает пакет, запоминает и записывает в пакет время приема, заполняет время отправки и отвечает клиенту. Клиент запоминает, когда он получил ответ, и получает нечто вроде RTT (Round-Trip Time, в простонародье — пинг) до сервера. Дальше он определяет, сколько времени понадобилось пакету, чтобы дойти от сервера обратно ему (время между запросом и ответом клиента минус время обработки пакета на сервере, деленное на два).

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

Ограничения на трафик по порту UDP-123

Системы обнаружения вторжений не такие глупые, какими могут показаться, так что просто пустить трафик, например, OpenVPN по 123-му порту UDP мы не сможем, по крайней мере без риска спалиться. Соответствие RFC все же проверяется. Это можно посмотреть на примере Wireshark.

Придется нам заставить наши пакеты соответствовать RFC. Проще всего это сделать, назначая некоторые поля по своему усмотрению. Мы можем внедрить свои данные в поля Transmit и Originate. Последнее не вполне соответствует RFC, но так глубоко проверки обычно не добираются.

Концепт

Идея проста: мы составляем собственный «заряженный» пакет NTP и пытаемся синхронизировать время со своим сервером. Чтобы не привлекать лишнего внимания к своей передаче, на каждый запрос должен отправляться внешне валидный ответ, в котором могут быть инструкции для клиента (читай: бота).

Чтобы всякие там системы предотвращения утечек (DLP) не мешали нам, можно, например, поксорить наши данные со статическим ключом. Естественно, в рамках PoC я не буду этого делать, но в качестве простейшего способа сокрытия данных должно сработать.

Для передачи данных с клиента на сервер подходят поля Poll, Originate и Transmit. Из них Poll пригоден ограниченно, но мы на этом останавливаться не будем. Если ты задумаешь учесть его ограничение, то имей в виду, что использовать в этом поле можно только младшие три бита (как я понял из документации). Без учета этого мы можем использовать 17 байт из 48 (35% всего объема пакета) на отправку данных, что уже неплохо.

А что на прием? Сервер заполняет поля Precision, Root delay, Root dispersion, Reference, RefID, Receive и, ограниченно, Poll. На ответ сервера в этом поле распространяются такие же ограничения, как на клиента. Итого имеем 29 (28 без Poll) байт из 48 (60% пакета). Полезный объем пакета — 46 из 48 байт (96%). Оставшиеся два байта — флаги и заголовки, которые мы менять не можем без вреда для скрытности.

Реализация

Писать код и дебажить наше творение мы будем в Visual Studio. Я использую версию 2019 Community, благо она бесплатная, а скачать ее можно с сайта Microsoft.

Сервер

Как только IDE установлена, включена темная тема и любимый плей-лист, можно приступать. Для начала создадим новый проект типа «консольное приложение» (мы ведь не прячемся от юзера) с названием NtpTun_SERVER.

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

WWW

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

Уже из этого кода видно, что мы будем притворяться сервером Stratum 3. Если бы мы были Stratum 1, то нужно было бы в поле RefID указывать ID атомных часов, которых у нас нет. А список серверов первого уровня общеизвестен, и, если IP нашего псевдосервера не окажется в таких публичных списках, обман быстро будет раскрыт.

Stratum 2 не следует использовать, потому что тогда RefID должен был бы содержать IP сервера первого уровня, список которых опять же известен. А вот третий уровень позволяет указывать в RefID IP сервера второго уровня, полного списка которых нет. То есть мы сможем в RefID передавать еще четыре байта произвольных данных.

Код методов упаковки и распаковки на скриншот не поместился, к тому же нам надо разобрать его отдельно. Вот он:

public NtpPacket Parse(byte[] data) {   var r = new NtpPacket();   // NTP packet is 48 bytes long   r.First8bits = data[0];   r.Poll = data[2];   r.Precision = data[3];   r.RootDelay = BitConverter.ToUInt32(data, 4);   r.RootDisp = BitConverter.ToUInt32(data, 8);   r.RefID = BitConverter.ToUInt32(data, 12);   r.Reference = BitConverter.ToUInt64(data, 16);   r.Originate = BitConverter.ToUInt64(data, 24);   r.Receive = BitConverter.ToUInt64(data, 32);   r.Transmit = BitConverter.ToUInt64(data, 40);   return r; } 

Тут никаких сложностей: принимаем массив байтов и при помощи BitConverter получаем оттуда данные.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Я уже участник «Xakep.ru» ← Ранее Исследователи выявили 37 уязвимостей в популярных реализациях VNC Далее → Разработчики Windows и Linux рассказывают, как отключить Intel TSX для борьбы с Zombieload 2

Для управлением службой времени в Windows используется команда win32tm.exe.

Посмотреть текущие настройки службы времени (выполнять из консоли с правами администратора):

w32tm /query /configuration

Посмотреть текущее состояние службы времени можно командой:

w32tm /query /status

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

Возможные две ситуации:

  • компьютер (сервер) входит в состав рабочей группы, т.е. это домашний компьютер или компьютер в небольшом офисе;
  • компьютер (сервер) входит в состав домена Active Directory.

Компьютер входит в состав рабочей группы.

В этом случае централизованного управления компьютером нет, он сам заботиться о синхронизации времени. На нем вывод команды w32tm /query /configuration будет следующим.

Обратите внимание на параметры: SpecialPollInterval — интервал синхронизации в секундах, 604800 секунд — это неделя, т.е. синхронизация будет проводиться раз в неделю. Type — определяет источник синхронизации времени. Возможные значени параметра Type:           NoSync. Служба времени вообще не синхронизируется ни с чем.           NTP. Служба времени синхронизируется с серверами указынными в параметре NtpServer. Типично для домашних компьютеров. Как на скриншоте вверху.           NT5DS. Служба времени синхронизируется используя доменную иерархию (только для компьютеров — членов домена Active Directory). Как на самом первом скриншоте.           AllSync. Служба времени использует все возможные механизмы для синхронизации. NtpServer — указывает сервреры, с которым может синхроинизировать время компьютер.

Как можно видеть, по умолчанию интервал синхронизации 1 неделя, сервер time.windows.com, значение Type NTP.

Компьютер входит в состав домена Active Directory.

Домен AD —  иерархичная централизованная структура. Время на всех компьютерах в домене синхронизируется с контроллерами домена, а те в свою очередь синхронизируются с одним контроллером,  выполняющим FSMO роль PDC-Emulator. Синхронизация времени происходит раз в 1 час.

Как узнать какой контроллер — PDC-Emulator? Простейший способ — это выполнить команду из командной строки:

netdom /query fsmo

и вот на нем то и надо настраивать синхнонизацию времени в внешним источников времени, которым является какой либо NTP сервер.

Делается это из командной строки с адмнистративными правами следующим образом (один из способов):

  1. Останавливаем службу времени W32Time:  C:>net stop w32time
  2. Конфигурируем внешние источники синхронизации: C:> w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org
  3. Делаем PDC-Emulator надежным источником для клиентов: C:>w32tm /config /reliable:yes
  4. Запускаем службу времени w32time : C:>net start w32time
  5. Служба должна начать синхронизироваться. Можно проверить как применились настройки уже знакомой командой: C:>w32tm /query /configuration
  6. Проверяем Event Viewer на наличие ошибок, относящихся к службе времени.

На остальных компьютерах домена вывод команды C:>w32tm /query /configuration будет следующим:

w32tm /config /syncfromflags:domhier /reliable:no /update

Несколько комментариев:

  1. В примере настройки контроллера домена мы останавливали службу времени, меняли настройки, потом запускали опять. Можно этого не делать, а использовать ключ /update, который принуждает службу времени считать конфигурацию заново.
  2. Для работы протокола NTP необходимо открыть порт UDP 123 на вход и на выход, на файерволе сервера и внешнем файерволе.
  3. Существует еще одна старая команда конфигурации времени net time, оставленная для совместимости, с меньшим количеством опций, которую все еще можно использовать.

Настраиваем NTP, Время, Часовой пояс

Владимир Демянович 30.03.2016

Сегодня пришлось повозиться на держателе домена (windows 2003) и корректно настроить ntp.  Ниже будет информацию, которая мне помогла.

Процедура по восстановлению работоспособности сервиса w32tm

1. Находим все DC и того, кто из них PDC эмулятор

netdom query fsmo

2. Проверяем доступность сервера времени с PDC эмулятора

portqry –n ntp.mydomain.ua –e 123 –p UDP Querying target system called: ntp.mydomain.ua Attempting to resolve name to IP address… Name resolved to 10.10.72.17 UDP port 123 (ntp service): LISTENING or FILTERED

Должно быть именно так “LISTENING or FILTERED”.

Эта утилита входит в комплект Support Tools для Windows 2003 Server. К сожалению, на Windows 2008 R2 она не работает.

3. В regedit открываем параметры ntp сервера

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParametersNtpServer

Там должен быть записан ip адрес или полное имя нашего ntp сервера и запись должна обязательно заканчиваться строкой “,0x1”. Кавычки, понятное дело, нужно убрать. Для уверенности в том, что тут нету ошибки, можно пропинговать указанный ntp-сервер.

4. Там же, следует перейти к параметру Type:

HKLMSYSTEMCurrentControlSetServicesW32TimeParametersType

и убедиться, что там прописано  NTP, а не NT5DS

5. Теперь следует проверить еще одно значение: AnnounceFlags

HKLMSYSTEMCurrentControlSetServicesW32TimeConfigAnnounceFlags

тут должна быть 5

6. Перезапускаем сервис времени:

net stop w32time && net start w32time

7. Синхронизируемся:

w32tm /resync /rediscover

8. На остальных контроллерах домена рекомендуется переустановить службу времени

Команда: “w32tm /unregister && w32tm /register” удаляет службу времени, а затем снова ее устанавливает, причем, что важно, удаляется, а затем создается заново вся ветка параметров в реестре.

9. Рекомендуется перезапустить контроллер домена, являющийся pdc эмулятором, да и все остальные тоже.

10. Если на pdc эмуляторе ошибки все равно наблюдаются, то стоит попробовать изменить формат клиентских запросов

В параметре

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParametersNtpServer

Меняем значение с 0x1 на 0x8

11. Перезапускаем сервис времени

net stop w32time && net start w32time

12. Рекомендуется проверить все политики, имеющие отношение к настройкам сервиса времени:

Default Domain Controllers group policy, Default Domain group policy и другие в которых изменены любые значения в разделе

Computer configuration/Administrative Templates /System/Windows Time service/Time Providers

Убедитесь, что все значения там в состоянии “not configured”. При необходимости, играть с параметрами следует позже.

Если что-то меняли в политике, то перезапускаем сервис времени: net stop w32time && net start w32time

13. Если так ничего не помогло, то нужно обнулить параметры сервиса времени и на pdc эмуляторе:

net stop w32time w32tm /unregister w32tm /register

После чего нужно будет настраивать все параметры заново, начиная с п.3.

Если вдруг, на этапе удаления напишет про запрет доступа, то нужно перезагрузиться.

Включение лога сервиса времени

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

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig

Если нижеприведенных ключей там нету, а их нету по умолчанию, то их следует создать

  • FileLogSize, Type: DWORD, Data: 10000000 – максимальный размер лог-файла в байтах.
  • FileLogName, Type: REG_SZ (String), Data: C:Testw32time_log.txt – адрес нахождения лог-файла
  • FileLogEntries, Type: REG_SZ (String), Value: 0-116 – уровень детализации лога. Максимальный диапазон: 0-300.

Вместо изменения значений в реестре, можно то же самое сделать из командной строки:

w32tm /debug /enable /file:C:Testw32time_log.txt /size:100000 /entries:0-300

Чтобы выключить логи отладки можно ввести команду:

w32tm /debug /disable

Если Вы перенесли роль PDC Emulator на другой сервер, необходимо дополнительно выполнить настройку старого сервера командой

w32tm /config /syncfromflags:domhier /reliable:no /update

и перезапустить службу времени:

net stop w32time && net start w32time

Первое решение проблемы “no time data was available”

Еще раз обращу внимание, что проблема была в доменных политиках.

Команда w32tm /resync выдавала ошибку

The computer did not resync because no time data was available.

Решено это было следующим образом:

  1. Start / Run / dsa.msc / OK.
  2. Right-click the Domain Controllers container and press Properties.
  3. Select the Group Policy tab.
  4. Select the Default Domain Controllers Policy and press Edit. If GPMC is implemented, press Open first.
  5. Expand Computer Configuration / Administrative Templates / System / Windows Time Service.
  6. Right-click Global Configuration Settings and press Properties.
  7. Select Not Configured.
  8. Press Apply and OK.
  9. Expand Windows Time Service.
  10. Double-click Enable Windows NTP Client.
  11. Select Not Configured.
  12. Press Apply and OK.
  13. Double-click Configure Windows NTP Client.
  14. Select Not Configured.
  15. Press Apply and OK.
  16. Double-click Enable Windows NTP Server.
  17. Select Not Configured.
  18. Press Apply and OK.
  19. Exit the Group Policy Editor.
  20. Close any open policy dialog boxes.
  21. Open a CMD.EXE window.
  22. Type gpupdate /force and press Enter.

Второе решение проблемы “no time data was available”

Во второй раз с этой же ошибкой с я столкнулся через пару лет. При попытке получить время от нашего cisco роутера, при помощи команды w32tm /resync, видел ошибку:

Sending resync command to local computer… The computer did not resync because no time data was available.

Или на русском:

Команда синхронизации отправлена на local computer… Синхронизация не выполнена, поскольку нет доступных данных о времени.

При этом вышеописанные действия уже были совершены.

Служба win32time отсылала “симметрические пакеты”: в снифере wireshark я видел что windows сервер отсылает пакеты “NTP Version 3, symmetric active”, но никакого ответа от CISCO не получал.

В логах службы сообщалось “No response from peer”, а в логах роутера:

252755: Jul  2 11:52:48.456 EEST: NTP message received from 192.168.2.31 on interface 'FastEthernet0/0.5' (192.168.2.10). 252756: Jul  2 11:52:48.456 EEST: NTP Core(DEBUG): ntp_receive: message received 252757: Jul  2 11:52:48.456 EEST: NTP Core(DEBUG): ntp_receive: peer is 0x00000000, next action is 5. 252758: Jul  2 11:52:48.456 EEST: NTP Core (NOTICE): ntp_receive: dropping message: AM_NEWPASS, passive association disabled..

В этой случае мне помогла команда:

w32tm /config /manualpeerlist:192.168.2.10,0x8 /syncfromflags:MANUAL

и перезапуск службы времени.

После этого в wireshark увидел нормальный обмен пакетами:

  • windows сервер посылал пакеты “NTP Version 3, client”
  • cisco роутер отвечал пакетами “NTP Version 3, server”

Настраиваем период синхронизации времени

Инструкция работает на компьютерах которые не включены в домен.

Переходим к редактированию реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32Time TimeProvidersNtpClientSpecialPollInterval – ключ в реестре, задает период обновления синхронизации времени в системе в секундах. Вводим в десятичном формате необходимый период.

После этого перезагружаем компьютер или вводим команду w32tm /config /update

Проверить с какой периодичностью происходит синхронизация времени:

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

Указание часового пояса через групповые политики

  • Открываем политику для контейнера где находиться компьютер
  • Переходим к Конфигурация компьютера – Настройка – Конфигурация Windows – Реестр
  • Левый клик по правой белой области в области “Реестр” и выбираем пункт меню “Создать” – “Мастер реестра”
  • Выбираем компьютер на котором установлен нужный часовой пояс (у меня это локальный)
  • В Браузере реестра переходим к “HKLM System CurrentControlSet Control TimeZoneInformation”
  • Отмечаем все ключи в этой папке и жмем “готово”
  • Все теперь на локальных компьютерах автоматически будет устанавливаться необходимый часовой пояс и после перезагрузки устанавливаться правильной время

Полезные команды связанные со службой времени ntp:

  • netdom query fsmo – раскажет кто PDC (главный сервер времени в домене)
  • w32tm /monitor
  • w32tm /config /manualpeerlist:time.windows.com,0x1 /syncfromflags:manual /reliable:yes /update – команда которая настроит ваш доменный контроллер с ролью «Эмулятора PDC» на синхронизацию с внешним источником
  • w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly – 5 сравнений с источником
  • net time /querysntp – показывает кто является ntp сервером
  • w32tm /query /peers – показывает источник, сколько времени осталось до синхронизации, режим работы, страту, интервал опроса
  • w32tm /query /status – отображает индикатор помех, старту, точность, задержку корня, дисперсию, время последней успешной синхронизации, источник и интервал опроса
  • net time /setsntp:192.168.1.1 – задает ntp-сервер.
  • w32tm /debug /enable /file:C:Testw32time_log.txt /size:100000 /entries:0-300 – включаем ведение лога службой времени
  • w32tm /debug /disable – отключаем логирование
  • w32tm /config /update – применить/обновить конфигурацию.
  • w32tm /query /configuration – полный список параметров службы

Помните что после любых изменений в конфигурации ntp-службы нужно ее перезапускать, команда:

net stop w32time && net start w32time

Полезные ссылки:

Понравилось? =) Поделись с друзьями: Опубликовано в рубрике Администрирование Метки: windows « Как расшифровать BSoD Как быстро отключить некоторые функции Windows »

Обсуждение записи “Настраиваем NTP, Время, Часовой пояс”

  1. lev (shuvalov.com) says: 17.12.2013 в 18:31

    Отличный пост.

    Только смутило «обязательно заканчиваться строкой “,0?1”» Вероятно «,0x01». А запись в регистри NtpServer разделяется пробелами, те нормально записать без флагов «time.windows.com pool.ntp.org». Флаги необязательные:

    ,0x01 SpecialInterval ,0x02 UseAsFallbackOnly ,0x04 SymmatricActive ,0x08 Client

  2. Владимир Демянович (elims.org.ua) says: 17.12.2013 в 21:13

    lev, спасибо за дополнение. Действительно ошибка в тексте.

Обсудить

Нажмите, чтобы отменить ответ.

Не работает синхронизация времени в операционной системе Windows 10? Давайте поищем проблему и попробуем её устранить.

Уже не один раз, на протяжении почти всего периода использования новой версии операционной системы, я замечаю, что часы на Панели задач периодически начинают глючить. То автоматически переводятся на несколько часов назад, то на несколько вперед.

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

Также бывали нередки случаи, когда работа службы завершалась неудачей. Системное время никак не удавалось синхронизировать через Интернет.

И вот, по состоянию на сегодняшний день, на моем компьютере эта проблема решена полностью. Виновата оказалась неправильная настройка работы службы «W32Time» по умолчанию. Дальше я расскажу о её правильной настройке. Готовы? Поехали!

Синхронизация времени

Откройте системную утилиту «Выполнить» (нажмите сочетание клавиш клавиатуры Win+X) и введите:

services.msc

после чего нажмите клавишу Enter и дождитесь появления окна программы под названием «Службы».

Выполнить

Найдите в списке «Служба времени Windows» и откройте окно её настроек, дважды кликнув курсором мышки.

Служба времени Windows

Теперь о том, что необходимо сделать. Нажмите кнопку «Запустить» и убедитесь, что в состоянии службы отображается надпись «Выполняется», а также установите Тип запуска на «Автоматически». После чего кликните по кнопкам «Применить» и «ОК».

Запустить

Больше ничего вам не потребуется! Если же, после проделанных изменений, часы продолжат глючить, попробуйте найти решение в следующем:

  • запустите системную утилиту «System File Checker» в Командной строке с правами администратора. После окончания её работы перезагрузите компьютер;
  • выключите и обратно включите в автоматический режим установку часового пояса и времени в Параметрах ОС;
  • измените интернет-сервер для синхронизации;
  • принудительно заставьте операционную систему синхронизировать время при помощи Командной строки (последовательность команд можете найти в Интернете).

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

Другие полезные компьютерные советы сможете просмотреть в Карте блога. Наши странички в Google+ и Facebook ждут вас. Кнопка и виджет расположены справа вверху.

Настройка службы DHCP и синхронизации времени в сети NTP

Особенности DHCP: Автоматически назначает IP-адрес для удобного управления. DHCP не передает один и тот же IP-адрес двум хостам одновременно. Администратор DHCP может ограничить использование определенных IP-адресов для определенных компьютеров. Вы можете установить множество параметров для каждой области DHCP. Клиентам не нужно сбрасывать IP-адрес при перемещении между различными подсетями. Достаточно автоматически получать IP-адрес каждый раз. . Недостатки DHCP: Когда в сети несколько серверов, DHCP-сервер не может определить IP-адрес, который был сдан в аренду другими серверами; DHCP-сервер не может связываться с клиентами через маршрутизаторы, если только маршрутизатор не разрешает пересылку протокола BOOTP. Порт: Пример: просмотр файла разрешения порта    vim /etc/services    Протокол DHCP разработан на основе протокола bootp и представляет собой расширенную версию BOOTP. bootps представляет порт сервера, а bootpc представляет порт клиента.

протокол bootp: протокол загрузочной программы (BOOTP). Это позволяет бездисковым рабочим станциям получать IP-адреса с центрального сервера и назначать динамические IP-адреса бездисковым рабочим станциям в локальной сети, не требуя от каждого пользователя установки статического IP-адреса.

Как работает служба DHCP

Примечание. После того, как клиент выполнит DHCP DISCOVER, если ни один DHCP-сервер не ответит на запрос клиента, клиент будет случайным образом использовать IP-адрес в сегменте сети 169.254.0.0/16 для настройки локального адреса.

Для понимания мы сравниваем DHCP-клиента с гостем ресторана.В принципе работы DHCP-сервера сервер сравнивается с официантом (в ресторане также может быть несколько официантов), а IP-адрес сравнивается с едой, которая нужна клиенту. Тогда весь процесс можно описать следующим образом: гость заходит в ресторан и спрашивает: «Есть ли официанты?» (Обнаружение DHCP), несколько официантов одновременно отвечают: «Да, у меня есть куриные крылышки» «Да, у меня есть бургеры» (DHCP предложение). Гость сказал: «Хорошо, я хочу гамбургер» (запрос DHCP, этот гость относительно жесткий и всегда выбирает еду, которую я услышал в первый раз), и официант с гамбургером ответил: «Подойди сюда» (DHCP ack ), И принесите еду гостям для удовольствия (свяжите сетевую карту с IP-адресом). В следующий раз, когда клиент придет, он напрямую пойдет к официанту, чтобы заказать свой любимый гамбургер (запрос DHCP). Если есть гамбургер, официант еще раз подтвердит и подаст (DHCP ack), и если он будет распродан, официант Гостям скажут: «Извините, это распродано» (DHCP nack). Конечно, официант будет время от времени чистить стол, если только гость специально не скажет, что блюдо будет продолжать есть, официант уберет остатки.

Установить DHCP

dhcp-common-4.1.1-25.P1.el6.x86_64.rpm # Включает некоторые файлы, которые нужны клиенту и серверу DHCP совместно.

dhclient-4.1.1-25.P1.el6.x86_64.rpm #dhcpclient, клиент DCHP.

Примечание. Откройте файл конфигурации /etc/dhcp/dhcpd.conf и найдите приглашение найти файл конфигурации шаблона:

Примечание. В служебном программном обеспечении с открытым исходным кодом файлы, заканчивающиеся на .sample, являются образцами шаблонов программного обеспечения.

option domain-name “test.com”; option domain-name-servers 192.168.1.1; option default-lease-time 600; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; range 192.168.1.20 192.168.1.50; # Следующий хост www устанавливает фиксированный адрес хоста. host www { hardware ethernet 00:0C:29:37:5B:11; fixed-address 192.168.1.35; } }

  1. Конфигурация подсети: если DNS, назначенный клиенту, не определен в подсети, но определен глобально, подсеть наследует глобальный DNS.Если DNS определен в подсети, а DNS также определен глобально, то в соответствии с Чем меньше сфера, тем конечный эффект будет. Обычно каждая область (пул адресов) определяется подсетью. Пример: подсеть 192.168.1.0 маска сети 255.255.255.0 { Диапазон 192.168.1.0 маска сети 255.255.255.0 # Определить назначенный адрес (пул адресов) option routes routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; # В определении подсети вы также можете использовать опцию для определения шлюза, но она действует только в области действия подсети. }

3) Конфигурация хоста: Обычно назначает адрес определенному MAC-адресу. host fantasia { Hardware Ethernet 08: 00: 07: 26: c0: a5; # Определить MAC-адрес. fixed-address fantasia.fugue.com; # Определить фиксированный IP-адрес. }

Подробная документация: option domain-name “example.org”; # Поиск домена. option domain-name-servers ns1.example.org, ns2.example.org; # Глобальный DNS по умолчанию. время аренды по умолчанию 600; # Минимальная продолжительность аренды по умолчанию (в секундах). максимальное время аренды 7200; # Максимальная продолжительность аренды (в секундах). Концепция аренды введена в DHCP, поэтому, когда DHCP-сервер отправляет IP-адрес каждому клиенту, он информирует другую сторону о том, как долго будет использоваться назначенный адрес или как долго он может использоваться по умолчанию. Когда выделенное время использования достигает 50%, клиент автоматически инициирует запрос возобновления аренды на сервер (в это время он связывается в одноадресном режиме).

50%: ЗАПРОС DHCP. Когда он достигнет 50%, он инициирует продление аренды на сервер. Только в момент продления аренды он обновит предыдущие 50%. Если возобновление аренды не удастся в это время, то остальные 50% времени обновляется запрос на аренду (то есть 75% от общего времени).

  75%: ЗАПРОС DHCP. Когда общее время достигает 75%, запрос возобновления аренды снова инициируется. Если в это время возобновление аренды не удается, то запрос возобновления аренды инициируется снова в 50% от оставшегося времени (то есть общее время 87,5%).             87,5%: ЗАПРОС DHCP. Когда общее время достигает 87,5%, запрос возобновления аренды инициируется снова. Если возобновление аренды не удастся в это время, возобновление аренды будет отменено.         Когда аренда последнего использованного адреса отменяется, широковещательная передача DHCP DISCOVER запускается снова, чтобы получить адрес снова. 

# ddns-update-style none; # Динамический днс. средство ведения журнала local7; # Адрес реакции журнала, все определения журнала, отправленные на local7, определены в файле конфигурации службы журналов /etc/rsyslog.conf и сохранены в /var/log/boot.log файл. подсеть 10.254.239.0 маска сети 255.255.255.224 {# Определить назначенный IP-адрес и маску. диапазон 10.254.239.10 10.254.239.20; # Определить пул адресов, начальный адрес, конечный адрес, разделенные пробелами. option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; # Предоставляемый шлюз }

subnet 10.254.239.32 netmask 255.255.255.224 { range dynamic-bootp 10.254.239.40 10.254.239.60; # Определить предоставление служб для bootp совместимых протоколов. Опция широковещательный адрес 10.254.239.31; # Определить широковещательный адрес. option routers rtr-239-32-1.example.org; }

subnet 10.5.5.0 netmask 255.255.255.224 { range 10.5.5.26 10.5.5.30; option domain-name-servers ns1.internal.example.org; # Определить DNS. option domain-name “internal.example.org”; Маршрутизаторы опций 10.5.5.1; # Определите шлюз по умолчанию. Опция широковещательный адрес 10.5.5.31; # Определить широковещательный адрес. время аренды по умолчанию 600; # Минимальная продолжительность аренды по умолчанию (в секундах). максимальное время аренды 7200; # Максимальная продолжительность аренды (в секундах). }

host fantasia { Hardware Ethernet 08: 00: 07: 26: c0: a5; # Определить MAC-адрес другой стороны. fixed-address fantasia.fugue.com; # Определить фиксированный IP-адрес. }

Использование общих утверждений 1. номер сети подсети маска подсети маска подсети {…} Функция: определите область и укажите подсеть. определяет область действия Примечание. Номер сети должен совпадать с номером сети сервера DHCP.

Привязка IP-адреса Привязка IP-адреса в DHCP используется для назначения клиенту фиксированного IP-адреса. Например, когда серверу необходимо использовать фиксированный IP-адрес, он может использовать привязку IP-адреса и передавать MAC-адрес. Соответствующее отношение с IP-адресом назначает фиксированный IP-адрес указанному компьютеру с физическим адресом. Конфигурация хоста, параметры оборудования и параметры фиксированного адреса требуются в течение всего процесса настройки. (1) имя хоста хоста {…} Функция: используется для определения зарезервированных адресов.

  1. Отредактируйте файл конфигурации DHCP vim /etc/dhcp/dhcpd.conf # Найдите соответствующий диапазон подсети и измените его следующим образом. subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option domain-name-servers 192.168.1.1; option domain-name “internal.example.org”; option routers 192.168.1.1; option broadcast-address 192.168.1.255; default-lease-time 600; max-lease-time 7200; host xuegod64 {# Этот абзац должен быть записан в поле подсети и использоваться с подсетью. аппаратная сеть Ethernet 00: 0C: 29: 12: ec: 1e; # Укажите MAC-адрес хоста xuegod64. fixed-address 192.168.1.251; # Укажите адрес, назначенный хосту xuegod64. } }

Использование ntpdate относительно просто. Формат выглядит следующим образом: Формат команды: ntpdate [-nv] [IP-адрес NTP / имя хоста] ntpdate 192.168.1.63 # Используйте режим IP для синхронизации времени при условии, что указанному узлу IP необходимо предоставить службу сетевого времени. ntpdate ntp1.aliyun.com# Используйте имя хоста для синхронизации времени. В этом примере в качестве примера используется служба сетевого времени ntp1.aliyun.com. Однако такая синхронизация является обязательной только для установки системного времени на время сервера ntp. Как правило, она используется вместе с командой cron для выполнения периодических настроек синхронизации. Например, добавьте в crontab: crontab -e # Добавьте запланированное задание и определите полное время синхронизации в 12 часов каждый день. Сервер ntp – 192.168.1.1. 0 12 * * * /usr/sbin/ntpdate 192.168.1.1

Расширенные знания:

Используйте меньше, чтобы перемещать заметки напрямую ==

Интеллектуальная рекомендация

[MyBatis] О кеше

Уровень 1 кеш (локальный кеш) По умолчанию он всегда включен. Он действителен после запроса из Mapper и помещения в локальный. Он действителен в сеансе. Например, объект 01 отправляет sql, объект 02 т…

Учебка летакода: классификация цвета

https://leetcode-cn.com/problems/sort-colors/…

Spring Framework IOC контейнер и анализ АОП

  Базовая структура Spring в основном включает шесть модулей: DAO, ORM, AOP, JEE, WEB, CORE. Spring DAO: Spring обеспечивает поддержку операций для JDBC: класс инструментальных шаблонов JdbcTempl…

Базовый обзор веб-интерфейса_day07_JavaScript advanced

Расширенный JavaScript JavaScript = ECMAScript + BOM + DOM; 1. Объект спецификации Объектная модель браузера. Объектная модель браузера; Доступ и управление различными компонентами браузера для предос…

Использование pthread_join () и pthread_detach () для многопоточности

Потоки делятся на присоединяемые и несоединяемые. Ассоциируемый поток может быть освобожден и уничтожен другими потоками. Отдельный поток не может быть уничтожен или восстановлен другими потоками. Про…

Вам также может понравиться

Закрыть виртуальную кнопку Android

Функция редактирования столбца блокнота

URL этой статьи: https://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_function_column_mode.html. Полный каталог Notepad ++: https://www.crifan.com/files/doc/docbook/rec_soft_npp/rel…

Python заменяет несколько пробелов на один space.md

Python заменяет несколько пробелов в один пробел Недавно столкнулся с этой проблемой во время предварительной обработки текста, решение заключается в следующем: Кроме того, несколько чисел могут быть …

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

Запросите каждый цикл, а затем выполните метод Поскольку каждый из них асинхронный, необходимо добавить счетчик….

Годовая зарплата 500 000 инженеров по развитию данных: некоторые предложения для детей, которые хотят ввести в большую данную отрасль

Подведите итоги некоторых друзей, которые заинтересованы в большой индустрии данных. ☟☟☟ У меня был пятилетний опыт работы в пятилетнем продвинутом инженере по развитию данных, один год опыта интервью…

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Егор Новиков
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий