W jednym z poprzednich artykułów przedstawiłem konfigurację SAMBY w środowisku CentOS-a. Okazało się wówczas, że wykorzystuje ona od niedawna protokół Kerberos do zabezpieczenia przepływu informacji między komputerami (aplikacjami, kontrolerami domeny - replikacja) i jest na tyle istotna, że rzutuje na rozwój całego projektu. Podobnie ma się sprawa z usługą czasu, która jest filarem funkcjonowania protokołu Kerberos V5 (Windows 2000), a zatem może służyć do ataku na domenę. Z drugiej strony należy pamiętać, że windowsowa usługa czasu oparta o bibliotekę w32Time.dll ( %Systemroot%\System32 ) nie została zaprojektowana jako źródło czasu wysokiej dokładności (1 ms względem czasu UTC dla Windows Serwer 2016, ale maksymalne odchylenie między klientem, a serwerem może wynieść nawet 5 min.) i na jej działanie mają wpływ przede wszystkim:
stałe źródło czasu dla twojej sieci, np. urządzenia GPS
stabilne działanie zegara klienta, np. kwarc komputera
symetryczność działania sieci, np. jakość (kategoria) wykonania sieci strukturalnej
Jak widać z powyższych założeń usługa czasu ma wbudowane algorytmy uwzględniające stałe odchylenia, jeśli jednak zaczynają one przypominać fale na morzu to stracimy wcześniej niż później synchronizację czasu między urządzeniami aktywnymi naszej sieci. Konfigurację usługi czasu możemy przeprowadzić na trzy sposoby:
z poziomu konsoli (cmd)
z poziomu rejestru windows (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\)
z poziomu zasad grup (Configuration->Policies->Administrative Templates->System->Windows Time Service->Time Providers)
Ja się skupię oczywiście na konsoli. By sprawdzić status działania usługi wykonujemy następującą komendę:
w32tm /query /configuration
Znajdujemy źródło czasu następującymi komendami:
w32tm /query /status
w32tm /stripchart /computer:moj_komputer /packetinfo /samples:1
w32tm /monitor /domain:moja_domena
Modyfikujemy je następującą komendą ustawiając w ten sposób jako źródło czasu polskie serwery czasu:
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pl.pool.ntp.org 1.pl.pool.ntp.org 2.pl.pool.ntp.org 3.pl.pool.ntp.org" /reliable:yes /update
Uruchamiamy ponownie usługę w32time:
net stop w32time
net start w32time
Opracowane na podstawie:
https://docs.microsoft.com/pl-pl/windows-server/networking/windows-time-service/windows-time-service