NTP (Network Time Protocol) wordt gebruikt om de systeemtijd te synchroniseren met een referentietijd die wordt verstrekt door speciale servers. Dit artikel behandelt hoe je NTP configureert op verschillende besturingssystemen en apparaten, te beginnen met een uitgebreide gids voor het instellen van een NTP-server op Linux.
We tonen de synchronisatie-instelling met Ubuntu, maar deze handleiding geldt ook voor Debian en de meeste Linux-gebaseerde systemen. We hebben de instructies verdeeld in drie delen: het eerste deel behandelt de installatie van de NTP-server, het tweede legt de synchronisatie van NTP-clients uit, en het derde behandelt geavanceerde synchronisatie-instellingen.
Om deze handleiding te volgen, heb je het volgende nodig:
Een cloudserver met Ubuntu geïnstalleerd.
Een rootgebruiker of een gebruiker met sudo-rechten.
Nano of een andere geïnstalleerde teksteditor.
Deze stappen leiden je door de installatie en voorbereiding van de NTP-server voor verdere configuratie.
Werk de repository-index bij om ervoor te zorgen dat je de nieuwste softwareversies kunt downloaden. Gebruik het volgende commando:sudo apt-get update
Installeer de NTP-server:sudo apt-get install ntp
Bevestig de installatie door "Y" te kiezen als je daarom gevraagd wordt (Y/N). Wacht tot de software is gedownload en geïnstalleerd.
Verifieer de installatie:sntp --version
De output zou het versienummer en de installatietijd moeten tonen.
Verbind met de dichtstbijzijnde serverpool. De server zou standaard een nauwkeurige tijd moeten ontvangen, maar het is beter om verbinding te maken met een serverpool die dichter bij je locatie ligt voor extra betrouwbaarheid. Bewerk daartoe het bestand ntp.conf, dat zich bevindt in /etc/ntp.conf. Open het met nano (je hebt sudo-rechten nodig) door het volgende in te voeren:sudo nano /etc/ntp.conf
In het geopende bestand zie je vier regels die we ter referentie in oranje hebben gemarkeerd. Dit zijn de standaardpools die we zullen vervangen door lokale pools (bijvoorbeeld voor de VS kunnen we NTP-servers van deze pagina gebruiken). Nadat je de regels hebt vervangen, sla het bestand op en sluit het af door Ctrl+O en Ctrl+X in te drukken.
Start de server opnieuw:sudo service ntp restart
Controleer de status van de server:sudo service ntp status
De output zou "Active (running)" in een van de eerste regels moeten tonen (Active) en de starttijd van de server.
5. Configureer de firewall.
Om toegang voor de client naar de server toe te staan, open UDP-poort 123 met UFW en het volgende commando:sudo ufw allow from any to any port 123 proto udp
De installatie is voltooid en de server draait. Je kunt nu doorgaan met de verdere configuratie.
De volgende stappen stellen client-systemen in staat om te synchroniseren met onze NTP-server, die zal dienen als hun primaire tijdbron.
Controleer de Verbinding
Om de netwerkconfiguratie voor NTP te controleren, voer je het volgende commando in de terminal in:sudo apt-get install ntpdate
Geef het IP-adres en de Hostnaam op
Om het IP-adres en de hostnaam van de server te configureren, bewerk het hosts-bestand dat zich bevindt in /etc/hosts:sudo nano /etc/hosts
Voeg de relevante gegevens toe in de derde regel van boven (het onderstaande adres is slechts een voorbeeld; vervang het door het daadwerkelijke IP-adres van je NTP-server):192.168.154.142 ntp-server
Druk op Ctrl+X om af te sluiten en sla de wijzigingen op door Y in te drukken. Als alternatief kun je deze stap ook uitvoeren in de DNS-server.
Controleer of de Client gesynchroniseerd is met de Server
Om te controleren of de synchronisatie actief is tussen de server en de client, voer je het volgende in:sudo ntpdate ntp-server
De output toont de tijdsverschil. Een verschil van enkele milliseconden is normaal, dus kleine waarden kunnen worden genegeerd.
Deactiveer de timesyncd Service
Deze service synchroniseert de lokale systeemtijd, maar we hebben deze niet nodig, aangezien onze clients met de NTP-server synchroniseren. Deactiveer deze met:sudo timedatectl set-ntp off
Installeer NTP op het Client-systeem
Installeer NTP op de client met dit commando:sudo apt-get install ntp
Zorg ervoor dat jouw NTP-server de primaire referentie is
Om ervoor te zorgen dat clients specifiek met jouw server synchroniseren, open je het ntp.conf-bestand en voeg je de volgende regel toe:server NTP-server-host prefer iburst
De prefer-directieve markeert de server als voorkeursserver en iburst maakt meerdere verzoeken aan de server mogelijk voor een hogere synchronisatie-nauwkeurigheid. Sla de wijzigingen op door Ctrl+X in te drukken en bevestig met Y.
Start de Server opnieuw
Start de NTP-server opnieuw met dit eenvoudige commando:sudo service ntp restart
Controleer de Synchronisatiewachtrij
Ten slotte kun je de synchronisatie-status controleren door het volgende commando in te voeren:ntpq -ps
Dit commando toont de lijst van servers in de synchronisatiewachtrij, inclusief jouw NTP-server als de bron.
Nu we de NTP-server hebben ingesteld en de client-machines gesynchroniseerd zijn, kijken we opnieuw naar het bestand ntp.conf (dat zich bevindt in /etc/ntp.conf). Dit bevat aanvullende configuraties om een robuuste synchronisatie met externe bronnen te waarborgen.
Markeer de meest betrouwbare server of serverpool met de prefer-directieve die we eerder hebben gebruikt. Bijvoorbeeld:
server 1.north-america.pool.ntp.org prefer
De server-directieve geeft een specifieke server aan, terwijl pool kan worden gebruikt om een pool van servers aan te geven. Vergeet de regel server 127.127.1.0 aan het einde van de poollijst niet, die de systeemtijd gebruikt als de verbinding verloren gaat.
Zorg ervoor dat de volgende regels in ntp.conf staan:
restrict default kod notrap nomodify nopeer noquery
De default-regel past deze instellingen toe als standaard voor alle restrict-commando's:
kod (Kiss-o’-Death) beperkt de snelheid van verzoeken.
notrap blokkeert de acceptatie van stuurcommando's.
nomodify beperkt commando's die de serverstatus kunnen wijzigen.
nopeer verbiedt synchronisatie met externe hosts.
noquery blokkeert query-aanvragen.
Voor IPv4 gebruik je -4 vóór default, en voor IPv6 gebruik je -6.
Hier een voorbeeld van het gebruik van enkele van deze commando's. De volgende regel staat de synchronisatie van knooppunten in een specifiek netwerk toe, terwijl knooppunten worden verhinderd om controle- of statuswijzigende commando's te ontvangen:
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
De volgende regels zijn vereist zodat de server met zichzelf kan communiceren:
restrict 127.0.0.1
restrict ::1
Vergeet niet de server opnieuw te starten na deze wijzigingen.
Om te controleren of NTP correct functioneert, gebruik je het commando ntpq -p. Bij de juiste configuratie zou de output een tabel moeten zijn met kolommen die eruit zien als volgt:
In de eerste kolom zie je het adres van de synchronisatie-server, gevolgd door zijn bovenliggende server, het stratum-niveau (kolom st) en de type-kolom (t). De volgende drie kolommen tonen details over de laatste synchronisatietijd, het synchronisatie-interval en de betrouwbaarheidstatus (waarbij 377 acht succesvolle synchronisatiepogingen met die server aangeeft). De laatste twee kolommen tonen het tijdsverschil tussen de gesynchroniseerde server en de referentieserver, evenals de offset.
Let op de symbolen in de eerste kolom, die voor het IP-adres verschijnen:
Een "+"-symbool geeft een betrouwbare server aan voor synchronisatie.
Een "-" betekent het tegenovergestelde, en
Een "*" geeft de huidige server aan die voor synchronisatie is gekozen. Af en toe verschijnt er een "x", wat betekent dat de server niet beschikbaar is.
Om ervoor te zorgen dat de server de juiste tijd distribueert, voer je het commando ntpdate uit vanaf een ander systeem en geef je het IP-adres van de NTP-server op die je wilt controleren. De output zou er ongeveer zo uit moeten zien:
adjust time server (IP-adres hier) offset 0.012319 sec
Het getal geeft de tijdsafwijking aan. Een afwijking van ongeveer 0,01 seconden (12 milliseconden) is perfect acceptabel.
Nu we de Linux-configuratie hebben voltooid, bekijken we de configuratie van het NTP-protocol op Windows.