Hvordan installere og konfigurere NTP-server og -klient på Debian


Network Time Protocol (NTP) presenterer en unik evne for selskaper til å synkronisere klokkene til alle systemene i selskapet. Tidssynkronisering er viktig av mange grunner, alt fra applikasjonstidsstempler til sikkerhet til riktige loggoppføringer.

Når en organisasjons systemer alle opprettholder forskjellige klokketider, blir det svært vanskelig fra et feilsøkingssynspunkt å avgjøre når og under hvilke forhold en bestemt hendelse kan oppstå.

NTP gir en enkel måte å sikre at alle systemer vil opprettholde riktig tid som igjen kan forenkle byrden på administratorer/teknisk støtte.

NTP fungerer på premisset om synkronisering med referanseklokker, også kjent som «stratum 0»-servere. Alle andre NTP-servere blir da en lavere nivå strataserver basert på hvor langt de er fra en referanseserver.

Starten på NTP-kjeden er en stratum 1-server som alltid er direkte koblet til en stratum 0-referanseklokke. Herfra kobles strataservere på lavere nivå via en nettverkstilkobling til en server på høyere stratanivå.

Se diagrammet nedenfor for et klarere konsept.

Selv om det kan gjøres å sette opp en stratum 0- eller stratum 1-server, er det dyrt å gjøre det, og som sådan vil denne veiledningen fokusere på lavere strata-serveroppsett.

Tecmint har en grunnleggende vertskonfigurasjon av NTP på følgende lenke:

  1. Hvordan synkronisere tid med NTP-server

Hvor denne veiledningen vil være forskjellig, er i stedet for at alle vertene på nettverket spør ut til offentlige NTP-servere, vil én (eller bedre praksis, flere) server(e) kontakte det offentlige NTP-systemet og deretter gi tid til alle verter innenfor lokalt nettverk.

En intern NTP-server er ofte ideell for å spare nettverksbåndbredde samt gi noe økt sikkerhet gjennom NTP-restriksjoner og kryptografi. For å se hvordan dette skiller seg fra det første diagrammet, se det andre diagrammet nedenfor.

Trinn 1: Installasjon av NTP-server

1. Det første trinnet for å sette opp en intern NTP-struktur er å installere NTP-serverprogramvaren. Programvarepakken i Debian kalt 'NTP' inneholder for øyeblikket alle serververktøyene som er nødvendige for å sette opp et NTP-hierarki. Som med alle veiledninger om systemkonfigurasjon, forutsettes root- eller sudo-tilgang.

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]

Trinn 1: Konfigurasjon av NTP-server

2. Når NTP er installert, er det på tide å konfigurere hvilke høyere stratum-tjenere som skal spørre etter tid. Konfigurasjonsfilen for NTP er lagret på '/etc/ntp.conf' og kan endres med et hvilket som helst tekstredigeringsprogram. Denne filen vil inneholde de fullt kvalifiserte domenenavnene til serverne på høyere nivå, restriksjoner satt for denne NTP-serveren og eventuelle andre spesielle parametere for verter som spør etter denne NTP-serveren.

For å starte konfigurasjonsprosessen, må servere på høyere nivå konfigureres. Debian vil som standard legge Debian NTP-poolen i konfigurasjonsfilen. Disse er greie for de fleste formål, men en administrator kan besøke NIST for å spesifisere bestemte servere eller for å bruke alle NISTs servere på en round robin-måte (foreslått metode av NIST).

For denne opplæringen vil spesifikke servere bli konfigurert. Konfigurasjonsfilen er delt inn i noen hovedseksjoner og er konfigurert som standard for IPv4 og IPv6 (Hvis du ønsker å deaktivere IPv6, nevnes dette senere). For å starte konfigurasjonsprosessen, må konfigurasjonsfilen åpnes med et tekstredigeringsprogram.

nano /etc/ntp.conf

De første seksjonene (driftfil, statsdir og statistikk) er fint satt til standardinnstillingene. Den neste delen inneholder serverne på høyere nivå som denne serveren skal be om tid gjennom. Syntaksen for hver serveroppføring er veldig enkel:

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

Vanligvis er det en god idé å ha flere servere med høyere strata å velge mellom i denne listen. Denne serveren vil spørre alle serverne i listen for å finne ut hvilken som er den mest pålitelige. Serverne for dette eksemplet ble hentet fra: http://tf.nist.gov/tf-cgi/servers.cgi.

Trinn 3: Konfigurasjon av NTP-restriksjoner

3. Neste trinn er å konfigurere NTP-restriksjoner. Disse brukes til å tillate eller ikke tillate verter å samhandle med NTP-serveren. Standarden for NTP er serveringstid for alle, men tillater ikke konfigurasjon på både IPv4- og IPv6-tilkoblinger.

Denne serveren brukes for øyeblikket bare på et IPv4-nettverk, så IPv6 ble deaktivert på to måter. Det første som ble gjort for å deaktivere IPv6 på NTP-serveren var å endre standardinnstillingene som demonen starter. Dette ble oppnådd ved å endre linjen i '/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]

Tilbake i hovedkonfigurasjonsfilen (/etc/ntp.conf), vil NTP-daemonen automatisk konfigureres til å dele tid med alle IPv4/6-verter, men ikke tillate konfigurasjon. Dette kan sees av følgende to linjer:

NTPD fungerer på et tillatt med mindre avslag. Siden IPv6 ble deaktivert, kan «restrict -6»-linjen fjernes eller kommenteres ut med en « #

Dette endrer standardoppførselen for NTP til å ignorere alle meldinger. Dette kan virke rart, men fortsett å lese siden restriksjonsklausuler vil bli brukt til å finjustere tilgangen til denne NTP-serveren for vertene som trenger tilgang.

Nå må serveren vite hvem som har lov til å spørre serveren om tid og hva annet de har lov til å gjøre med NTP-serveren. For denne serveren vil et privat nettverk på 172.27.0.0/16 brukes til å bygge restriksjonsstrofen.

Denne linjen informerer serveren om å tillate hvilken som helst vert fra 172.27.0.0/16-nettverket å få tilgang til serveren for en tid. Parametrene etter masken hjelper til med å kontrollere hva noen av vertene på dette nettverket kan gjøre når de spør etter serveren. La oss bruke et øyeblikk på å forstå hver av disse begrensningsalternativene:

  1. Begrenset: Indikerer at hvis en klient misbruker hastighetskontrollen for antall pakker, vil pakkene bli forkastet av serveren. Hvis Kiss of Death-pakken er aktivert, vil den bli sendt tilbake til den voldelige verten. Satsene kan konfigureres av en administrator, men standardverdiene antas her.
  2. KOD: Kiss of Death. Hvis en vert bryter grensen for pakker til serveren, vil serveren svare med en KoD-pakke til den verten som bryter.
  3. Notrap: Avslå modus 6-kontrollmeldinger. Disse kontrollmeldingene brukes til fjernloggingsprogrammer.
  4. Nomodify: Hindrer ntpq- og ntpdc-spørringer som vil endre serverens konfigurasjon, men informasjonsspørringer er fortsatt tillatt.
  5. Noquery: Dette alternativet forhindrer verter fra å spørre serveren om informasjon. For eksempel uten dette alternativet kan verter bruke ntpdc eller ntpq for å bestemme hvor en bestemt tidsserver får tiden sin fra eller andre peer-tidsservere som den kan kommunisere med.