Wyszukiwanie w witrynie

Jak zainstalować i skonfigurować serwer i klienta NTP w Debianie


Network Time Protocol (NTP) zapewnia firmom wyjątkową możliwość synchronizacji zegarów wszystkich systemów w firmie. Synchronizacja czasu jest ważna z wielu powodów, począwszy od znaczników czasu aplikacji, przez bezpieczeństwo, aż po odpowiednie wpisy w dzienniku.

Kiedy wszystkie systemy organizacji mają różne czasy zegara, z punktu widzenia rozwiązywania problemów bardzo trudno jest określić, kiedy i w jakich warunkach może wystąpić określone zdarzenie.

NTP zapewnia łatwy sposób zapewnienia, że wszystkie systemy będą utrzymywać prawidłowy czas, co z kolei może znacznie odciążyć administratorów/wsparcie techniczne.

NTP działa w oparciu o synchronizację z zegarami referencyjnymi, znanymi również jako serwery „warstwa 0”. Wszystkie pozostałe serwery NTP stają się wówczas serwerami warstwowymi niższego poziomu w zależności od odległości od serwera referencyjnego.

Początkiem łańcucha NTP jest serwer warstwa 1, który jest zawsze bezpośrednio podłączony do zegara referencyjnego warstwa 0. Stąd serwery warstwy niższego poziomu są połączone za pośrednictwem połączenia sieciowego z serwerem warstwy wyższego poziomu.

Aby uzyskać jaśniejszą koncepcję, zapoznaj się z poniższym diagramem.

Chociaż konfiguracja serwera warstwa 0 lub warstwa 1 jest możliwa, jest to jednak kosztowne, dlatego ten przewodnik skupi się na konfiguracji serwerów niższej warstwy.

Tecmint ma podstawową konfigurację hosta NTP pod następującym linkiem:

  1. Jak zsynchronizować czas z serwerem NTP

Różnica w tym przewodniku polega na tym, że zamiast wysyłania zapytań do publicznych serwerów NTP przez wszystkie hosty w sieci, jeden (lub, co jest lepszą praktyką, kilka) serwerów, skontaktuje się z publicznym systemem NTP, a następnie zapewni czas wszystkim hostom w obrębie lokalna sieć.

Wewnętrzny serwer NTP jest często idealnym rozwiązaniem w celu oszczędzania przepustowości sieci, a także zapewnienia większego bezpieczeństwa dzięki ograniczeniom NTP i kryptografii. Aby zobaczyć, czym różni się to od pierwszego diagramu, spójrz na drugi diagram poniżej.

Krok 1: Instalacja serwera NTP

1. Pierwszym krokiem do skonfigurowania wewnętrznej struktury NTP jest instalacja oprogramowania serwera NTP. Pakiet oprogramowania w Debianie o nazwie „NTP” zawiera obecnie wszystkie narzędzia serwerowe niezbędne do skonfigurowania hierarchii NTP. Podobnie jak w przypadku wszystkich tutoriali na temat konfiguracji systemu, zakładany jest dostęp Root lub sudo.

apt-get install ntp
dpkg --get-selections ntp          [Can be used to confirm NTP is installed]
dpkg -s ntp                        [Can also be used to confirm NTP is installed]

Krok 1: Konfiguracja serwera NTP

2. Po zainstalowaniu NTP nadszedł czas, aby skonfigurować serwery wyższej warstwy, do których będą wysyłane zapytania o czas. Plik konfiguracyjny NTP jest przechowywany w „/etc/ntp.conf” i można go modyfikować za pomocą dowolnego edytora tekstu. Plik ten będzie zawierał w pełni kwalifikowane nazwy domen serwerów wyższego poziomu, ograniczenia ustawione dla tego serwera NTP i wszelkie inne specjalne parametry dla hostów wysyłających zapytania do tego serwera NTP.

Aby rozpocząć proces konfiguracji, należy skonfigurować serwery wyższego poziomu. Debian domyślnie umieści pulę NTP Debiana w pliku konfiguracyjnym. Są one wystarczające w większości zastosowań, ale administrator może odwiedzić NIST, aby określić określone serwery lub wykorzystać wszystkie serwery NIST w sposób okrężny (metoda sugerowana przez NIST).

Na potrzeby tego samouczka zostaną skonfigurowane określone serwery. Plik konfiguracyjny jest podzielony na kilka głównych sekcji i jest domyślnie skonfigurowany dla IPv4 i IPv6 (jeśli chcesz wyłączyć IPv6, zostanie to omówione później). Aby rozpocząć proces konfiguracji, należy otworzyć plik konfiguracyjny za pomocą edytora tekstu.

nano /etc/ntp.conf

Kilka pierwszych sekcji (driftfile, statsdir i statistics) ma prawidłowe ustawienia domyślne. Następna sekcja zawiera serwery wyższego poziomu, za pośrednictwem których ten serwer powinien żądać czasu. Składnia każdego wpisu serwera jest bardzo prosta:

server <fully qualified domain name> <options>
server time.nist.gov iburst â     [sample entry]

Zazwyczaj dobrym pomysłem jest posiadanie na tej liście kilku serwerów wyższej warstwy do wyboru. Serwer ten prześle zapytanie do wszystkich serwerów na liście, aby określić, który z nich jest najbardziej niezawodny. Serwery dla tego przykładu uzyskano z: http://tf.nist.gov/tf-cgi/servers.cgi.

Krok 3: Konfiguracja ograniczeń NTP

3. Następnym krokiem jest skonfigurowanie ograniczeń NTP. Służą one do zezwolenia lub zabronienia hostom na interakcję z serwerem NTP. Domyślnym ustawieniem protokołu NTP jest udostępnianie czasu każdemu, ale nie zezwalaj na konfigurację zarówno dla połączeń IPv4, jak i IPv6.

Ten serwer jest obecnie używany tylko w sieci IPv4, więc protokół IPv6 został wyłączony na dwa sposoby. Pierwszą rzeczą, którą wykonano, aby wyłączyć IPv6 na serwerze NTP, była zmiana ustawień domyślnych uruchamianych przez demona. Osiągnięto to poprzez zmianę linii w „/etc/default/ntp”.

nano /etc/default/ntp
NTPD_OPTS='-4 -g' [Add the ' -4 ' to this line to tell NTPD to only listen to IPv4]

Wracając do głównego pliku konfiguracyjnego (/etc/ntp.conf), demon NTP zostanie automatycznie skonfigurowany tak, aby udostępniał czas wszystkim hostom IPv4/6, ale nie pozwalał na konfigurację. Można to zobaczyć w następujących dwóch liniach:

NTPD działa na zasadzie dozwolonej, chyba że odmówiono. Ponieważ protokół IPv6 został wyłączony, wiersz „restrict -6” można usunąć lub skomentować za pomocą znaku „ #

Zmienia to domyślne zachowanie protokołu NTP polegające na ignorowaniu wszystkich wiadomości. Może się to wydawać dziwne, ale czytaj dalej, ponieważ klauzule ograniczające zostaną użyte w celu dostrojenia dostępu do tego serwera NTP dla hostów, które potrzebują dostępu.

Teraz serwer musi wiedzieć, kto może pytać serwer o czas i co jeszcze może robić z serwerem NTP. W przypadku tego serwera do zbudowania sekcji ograniczającej zostanie użyta sieć prywatna 172.27.0.0/16.

Ta linia informuje serwer, aby zezwolił na określony czas dowolnemu hostowi z sieci 172.27.0.0/16 na dostęp do serwera. Parametry znajdujące się po masce pomagają kontrolować, co dowolny host w tej sieci może zrobić podczas wysyłania zapytań do serwera. Poświęćmy chwilę na zrozumienie każdej z tych opcji ograniczania:

  1. Ograniczony: wskazuje, że jeśli klient nadużyje kontroli szybkości pakietów, pakiety zostaną odrzucone przez serwer. Jeśli pakiet Pocałunek Śmierci jest włączony, zostanie on odesłany do hosta stosującego agresję. Stawki są konfigurowalne przez administratora, ale tutaj przyjmowane są wartości domyślne.
  2. KOD: Pocałunek śmierci. Jeśli host przekroczy limit pakietów przesyłanych do serwera, serwer odpowie pakietem KoD hostowi naruszającemu.
  3. Notrap: Odrzuć komunikaty sterujące trybu 6. Te komunikaty sterujące są używane w programach zdalnego logowania.
  4. Nomodify: zapobiega zapytaniom ntpq i ntpdc, które mogłyby zmodyfikować konfigurację serwera, ale zapytania informacyjne są nadal dozwolone.
  5. Noquery: ta opcja uniemożliwia hostom wysyłanie zapytań do serwera o informacje. Na przykład bez tej opcji hosty mogą używać protokołu ntpdc lub ntpq do określenia, skąd dany serwer czasu pobiera swój czas lub z innych równorzędnych serwerów czasu, z którymi może się komunikować.