Итак, у меня есть соединение точка-точка Ethernet от моего ПК к устройству, на котором запущен NTP на UDP-порту 123. Вот что показывает nmap:
root@kali:~# nmap -sU mydevice
PORT STATE SERVICE
123/udp open|filtered ntp
Теперь, когда я запускаю ntp и проверяю его статус, я получаю следующее:
root@kali:~# sudo service ntp start
root@kali:~# sudo service ntp status
● ntp.service - Network Time Service
Loaded: loaded (/lib/systemd/system/ntp.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2019-12-06 10:31:22 CET; 1s ago
Docs: man:ntpd(8)
Process: 4203 ExecStart=/usr/lib/ntp/ntp-systemd-wrapper (code=exited, status=0/SUCCESS)
Main PID: 4209 (ntpd)
Tasks: 2 (limit: 4915)
Memory: 2.2M
CGroup: /system.slice/ntp.service
└─4209 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:111
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 2 lo 127.0.0.1:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 3 eth0 10.96.104.97:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 4 wlan0 192.168.1.126:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 5 lo [::1]:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 6 eth0 [fe80::868a:75a:e3ad:2cbc%2]:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 7 wlan0 [fe80::cbd2:c686:502d:d0d0%3]:123
Dec 06 10:31:22 kali ntpd[4209]: Listening on routing socket on fd #24 for interface updates
Dec 06 10:31:22 kali ntpd[4209]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
Dec 06 10:31:22 kali ntpd[4209]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
Dec 06 10:31:23 kali ntpd[4209]: Soliciting pool server 162.159.200.123
А это ответ от ntpq -npcrv
root@kali:~# ntpq -npcrv
remote refid st t when poll reach delay offset jitter
==============================================================================
10.96.104.98 .STEP. 16 u - 64 0 0.000 0.000 0.000
0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
*83.168.200.199 192.36.143.130 2 u 76 64 1 3.652 -0.742 0.646
193.182.111.143 194.58.202.20 2 u 40 64 1 2.206 -0.768 4.768
-213.199.225.30 212.160.106.226 2 u 46 64 3 44.320 0.156 4.717
+213.251.52.202 195.66.241.10 2 u 11 64 3 19.966 -1.813 1.371
-109.201.133.100 151.80.124.104 3 u 44 64 3 31.114 1.118 0.964
+147.78.228.41 193.11.166.36 2 u 11 64 3 3.708 -1.263 0.946
193.182.111.14 192.36.143.130 2 u 40 64 1 2.196 -0.488 0.677
+193.182.111.13 194.58.202.20 2 u 47 64 3 2.062 -1.249 4.331
+27.124.125.250 85.199.214.98 2 u 45 64 3 31.547 -1.261 1.389
218.186.3.36 .GPS. 1 u 38 64 1 307.278 37.465 11.156
162.159.200.1 10.128.8.119 3 u 41 64 1 1.660 -0.669 0.295
+62.201.225.9 62.201.214.162 2 u 45 64 3 84.179 -1.641 0.768
-45.231.168.6 23.31.21.163 3 u 46 64 3 170.302 -27.169 0.945
193.182.111.141 194.58.202.20 2 u 42 64 1 2.567 -0.554 2.066
102.130.49.223 85.199.214.98 2 u 42 64 1 186.493 -1.765 0.277
176.9.241.107 130.149.17.8 2 u 40 64 1 36.654 -0.853 0.272
associd=0 status=0618 leap_none, sync_ntp, 1 event, no_sys_peer,
version="ntpd 4.2.8p13@1.3847-o (1)", processor="x86_64",
system="Linux/5.3.0-kali2-amd64", leap=00, stratum=3, precision=-22,
rootdelay=4.995, rootdisp=219.827, refid=83.168.200.199,
reftime=e19b727a.eb1b269c Wed, Dec 11 2019 14:49:46.918,
clock=e19b72c6.3c2e95c2 Wed, Dec 11 2019 14:51:02.235, peer=1791, tc=6,
mintc=3, offset=-1.425931, frequency=-5.187, sys_jitter=0.437287,
clk_jitter=0.668, clk_wander=0.017, tai=37, leapsec=201701010000,
expire=202006280000
В нем написано "Слушайте нормально на 3 eth0", которое является моим удаленным устройством. B Теперь с wirehark я могу видеть входящие и исходящие NTP-пакеты к / от этого хоста.
РЕДАКТИРОВАТЬ: это папка на Google Диске, содержащая скриншоты двух запросов, одного клиента и одного сервера, а также полный .pcap от wirehark: https://drive.google.com/drive/folders/1PbvjJugtpRJKN0YrvX5VbI9iJfnJxdYH
Пока все в порядке, похоже, между моим компьютером и устройством существует NTP-связь.
Однако, когда я пытаюсь выполнить ntp-запрос устройства:
root@kali:~# ntpdate -q mydevice
29 Nov 12:59:17 ntpdate[9599]: no server suitable for synchronization found
root@kali:~# ntpq -p mydevice
10.96.104.98: timed out, nothing received
***Request timed out
Почему я не могу вручную запросить удаленный хост, когда мой wirehark ясно показывает мне, что у меня с ним "автоматическая связь по протоколу ntp"? Это потому, что на удаленном хосте работает только клиент ntp, а не сервер ntp? Если да, то какие команды ntpq я могу использовать для связи с ним?
На основе захвата вашего пакета локальные часы 10.96.104.98 были установлены на 00:00 1 января 1997 г., когда вы запустили NTP. Для первых 4 опросов часы все еще были установлены на это время, что означало бы, что вы не были синхронизированы (потому что смещение было слишком большим). К моменту 5-го опроса 10.96.104.98 изменил свои часы на правильное время, а к 6-му опросу он показал 10.96.104.97 в качестве эталонных часов.
В ntpq -npcrv
записанный вами вывод показывает максимум 3 успешных опроса для любого сервера времени. Это говорит о том, что результат был получен до 5-го опроса. Если вы попробуете снова сейчас (или в любое время после этого 6-го опроса), синхронизация должна быть успешной.
Обратите внимание, что если вы не контролируете 10.96.104.97, это нормально, если вы откажетесь отвечать на ntpq -p
, и ntpdate
не выбрал бы его, потому что ваше время было слишком далеко.
Дважды проверьте, что ваш ntpd
начинается с -g
или -G
flags, чтобы он правильно устанавливал часы при первоначальном запуске.