Kapitel 14. Linux som tidsserver

Af: Gunner Poulsen

14.1. Tidsservere

Det er hensigtsmæssigt at urene går rimeligt ens på alle maskiner i et netværk. Og det ville jo være flot hvis de alle passede præcist - det kan din GNU/Linux-server sørge for.

Der findes mange tidsservere rundt om på internettet, men da det er smartest at sætte uret efter en, der står rimeligt tæt på en selv, synes jeg det ville være passende om hver kommune satte sin egen tidsserver op som serverne og arbejdsstationerne rundt om på skolerne så kunne sætte deres ure efter med mellemrum.

At sætte en tidsserver op er nemt nok! Og der findes mere om det i Linux - friheden til systemadministration!

14.1.1. NTPD - serverdelen

RPM'pakken ntp-4.0.99k-15.i386.rpm (ligger i RH 7.1 på 2. cdrom) indeholder både server- og klientdelen af tidsserveren.

Stil dig i det katalog hvor pakken ligger og installer den med:

[root@gnuskole /]# rpm -Uvh ntp-*.rpm 

Så skal du oprette filen /etc/ntp/step-tickers . Den skal kun indeholde navnet på en anden NTP-server, som maskinen kan bruge til at grovsætte uret efter før den starter serveren. Se eksemplet her.

Så skal vi ændre/etc/ntp.conf .

Den skal kun indeholde de NTP-servere den skal hente tiden hos (gerne en 2 - 3 stykker), navnet på den midlertidige fil den skal gemme tidsforskydelsen i og en linie der slår autorisation fra. Eksempelvis:

server ntp.worldonline.dk 
server ntp1.inet.tele.dk
server ntp2.inet.tele.dk

driftfile /etc/ntp/drift

authenticate no

Resten af linierne kan fjernes med # . Eksempelfil er her.

Hvilke servernavne man putter i sin fil afgør hvor nøjagtig (i milisekunder!) ens tidsserver bliver. Man deler tidsserverne op i forskellige "stratum" alt efter hvor højt i hirakiet de står.

Figur 14-1. Princippet i organiseringen af NTP-servere.

En skole har ikke brug for den nøjagtighed en stratum1 server giver, og jo flere maskiner der bruger dem jo mere unøjagtige bliver de. Brug derfor stratum 1 servere til kommunens officielle ur fx gps.dix.dk , gps.freebsd.dk eller dcf77.freebsd.dk . Brug kommunens stratum 2 server til skolens (stratum 3) NTPD server.

Har kommunen endnu ingen stratum 2 server så brug et par af internetudbydernes fx ntp.inet.tele.dk , ntp1.inet.tele.dk , ntp2.inet.tele.dk, ntp.worldonline.dk osv. Sektornet har mig bekendt endnu ingen NTPD server (og det er svagt! (ret mig hvis jeg tager fejl)).

Så skal du bare starte tidsserveren med:

[root@gnuskole /root]# /etc/init.d/ntpd start

Tjek at den virker med: (SKAL gøres fra en anden maskine)

[root@gnuskole2 /root]# ntpdate DitServernavn

Når det ser fint ud sætter du den til at starte med:

[root@gnuskole /root]# /sbin/chkconfig ntpd on

Du bør kun sætte en NTPD server op på skolen/kommunen. Resten af serverne og arbejdsstationerne kan så hente tiden hos den!

14.1.2. Opsætning af Linuxklienter

Alle GNU/Linux servere og arbejdsstationer bør sættes til at hente tiden hos en NTPDserver. På den måde sikrer man at fx oplysningerne i ens logfiler er pålidelige.

For at sætte en linuxmaskine til at holde tiden skal man ikke lave ret meget:

Tjek at ntp er installeret:

[root@gnuskole2 /root]# rpm -q ntp

Hvis det er i orden tjekker du at den NTPDserver du har tænkt dig at bruge virker med:

[root@gnuskole2 /root]# ntpdate ntp.gnuskole.dk
ntp.gnuskole.dk erstattes med serverens navn eller IP-adresse.

Hvis den kommando giver et fornuftigt svar (noget med et antal milisekunder din maskine er ved siden af), mangler du bare at lave et lille script der stiller uret en gang i timen. Lav en fil med følgende indhold:

#!/bin/sh
ntpdate -s ntp.gnuskole.dk

Gem den fx som stilur.sh i /etc/cron.hourly

Husk at gøre den eksekverbar med:

[root@gnuskole2 /root]# chmod +x /etc/cron.hourly/stilur.sh

Så skulle det bare passe sig selv - tillykke.

14.1.3. Opsætning af Windowsklienter

De Windowsmaskiner du har i dit Samba/NT-domæne bør du få samba til at sætte tiden på. For enkeltstående Windowsmaskiner (fx i skolens administration) kan programmet "Dimension 4" anbefales.

14.1.3.1. Samba som tidsserver

Windows tillader at man stiller uret som led i at brugerne logger på domænet. Det gøres ved at indsætte følgende linie i logonscriptet (Se evt. Afsnit 6.1.3.1):

net time \\server /set /yes

Navnet \\server skal være NETBIOSnavnet på den server der skal levere tiden. Hvis NTPserveren også kører Samba er det oplagt at bruge den. Ellers kan en hvilken som helst server i Samba/NT-domænet, der synkroniserer sit ur med NTPserveren (se evt. Afsnit 14.1.2), sagtens bruges.

Hvis man bruger Windows NT Workstation har almindelige brugere ikke ret til at sætte systemuret. For at det vi lige har beskrevet skal virke i NT skal rettigheden "Indstil systemuret" gives til "alle".

Figur 14-2. Start - Administration - Brugerstyring

Figur 14-3. Regler - Brugerrettigheder..

Figur 14-4. Rettighed: Indstille systemuret - Tilføj - Alle.

14.1.3.2. Dimension 4

Hvis du har Windowsmaskiner stående som ikke er med i noget Samba/NT-domæne, fx i administrationen eller derhjemme, kan du fx bruge programmetDimension 4 til at stille tiden efter skolens/kommunens NTPDserver.

Det er et freewareprogram der kan hentes på www.thinkman.com/dimension4/ .

I programmet findes der adresser på tidsservere over hele jorden. Da skolens/kommunens er tættere på er den mere præcis end de udenlandske. Slet dem og indsæt skolens/kommunens servernavn i stedet.

Figur 14-5. Dimension 4 - en NTP klient til Windows