NTP - sissejuhatus

From EIK wiki

Sissejuhatus

Network Time Protocol (NTP) on protokoll, mida kasutatakse Linuxi operatsioonisüsteemi kella sünkroniseerimiseks täpse ajaserveriga. On mitmeid servereid, mis on avalikuks sünkroniseerimiseks. Need on jagatud kahte gruppi:

  • Stratum 1: NTP server, mis kasutab aatomkella.
  • Stratum 2: NTP serverid, mis kasutavad vähem täpset aja allikat.

Oleks hea, kui kohtvõrgus oleks vähemalt üks server, mis oleks ajaserveriks teistele seadmetele võrgus. See teeb erinevate süsteemide sündmuste seosed palju lihtsamaks. Samuti vähendab see Interneti ribalaiuse kasutamist tänu NTP vähesemale liiklusele ja vähendab vajadust hallata tulemüüride reegleid igal NTP kliendil kohtvõrgus. Mõnikord võib juhtuda, et mitte kõigil serveritel ei ole Interneti võimalust, sellisel juhul on vaja keskset serverit, millele on kõigil ligipääs. Nimekirja saadaval Stratum 1 ja 2 serveritest tuleks vaadata [1]

NTP paketti allalaadimine ja installeerimine

Enamus Linux tarkvara on saadaval RPM formaadis. RPM'i allalaadimine ei ole kuigi keeruline. Abiks võib olla: [2] Faili otsimisel tuleb meeles pidada, et NTP RPM failinimi algab tavaliselt sõnaga ntp, millele järgneb versiooni number, näiteks ntp-4.1.2-5.i386.rpm.

/etc/ntp.conf fail

/etc/ntp.conf fail on põhiline konfigureerimisfail Linuxi NTP jaoks. Sinna pannakse stratum 1 ja stratum 2 serverite IP aadressid. Siin on mõned sammud, et teha konfigureerimis faili, kasutades näidis NTP servereid:

1) Esiteks tuleb täpsustada, millistest serveritest ollakse huvitatud:

server  otherntp.server.org    # Stratum 1 server
server  ntp.research.gov       # Stratum 2 server

2) Tuleks piirata juurdepääsutüüpi, mis neile serveritele on lubatud. Näidises on serveritel keelatud teha muudatusi jooksvas konfiguratsioonis ja teha päringuid Linuxi NTP serverile.

restrict otherntp.server.org   mask 255.255.255.255 nomodify notrap noquery
restrict ntp.research.gov      mask 255.255.255.255 nomodify notrap noquery

255.255.255.255 on alamvõrgu mask, mis limiteerib juurdepääsu ühele kaugserveri IP aadressile.

3) Kui see server pakub aega ka teistele arvutitele, nagu näiteks PC'd, teised Linuxi serverid ja võrguseadmed, siis tuleks defineerida võrgud, kus kohast NTP server saab oma sünkroniseerimispäringud. Seda saab teha, kui keelulausest eemaldada noquery võti, selle eemaldamine lubab teha päringuid sinu NTP serverile. Süntaks on:

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

Sellisel juhul on võrgumaski suurendatud, et lubada lokaalses võrgus kuni 255 erinevat IP aadressi.

4) Tuleks teha kindlaks, et localhostil (universaalne IP aadress, mis viitab Linuxi serverile endale) on täielik ligipääs ilma igasuguste piiranguteta:

restrict 127.0.0.1

5) Salvestada fail ja taaskäivitada NTP, et need seaded hakkaksid tööle. Samamoodi saab konfigureerida teisi Linuxi hoste oma võrgus, et sünkroniseerida kellaaega loodud NTP serveriga

NTP käivitamine

NTP protsess tuleb taaskäivitada igakord, kui tehakse muudatusi konfiguratsioonifailis selleks, et uued seaded hakkaksid tööle. NTP käivitamiseks alglaadimises, tuleks lisada selline rida:

[root@bigboy tmp]# chkconfig ntpd on

Et käivitada, peatada ja taaskäivitada NTP peale alglaadimist, tuleks kasutada järgmisi ridasid:

[root@bigboy tmp]# service ntpd start
[root@bigboy tmp]# service ntpd stop
[root@bigboy tmp]# service ntpd restart

NTP testimine ja vigadeotsimine

Peale NTP konfigureerimist ja käivitamist tuleks testida, et see tõepoolest töötab. Allpool on mõned juhised, kuidas seda testida.

Kontroll, et NTP töötab

Et testida, kas NTP töötab, tuleks kasutada järgmist käsku:

[root@bigboy tmp]# pgrep ntpd

Vastuseks peaks saama protsesside ID numbrid.

Esialgse sünkroniseerimise tegemine

Kui lokaalserveri ja peamise ajaserveri kellaajad on väga erinevad, siis NTP läheb kinni ja jätab veateate /var/log/messages faili. enne kui käivitada NTP protsess, tuleks käivitada ntpdate -u käsk, et jõuga sünkroniseerida lokaalse serveri aeg NTP serveritega. ntpdate käsk ei jookse pidevalt tagapinnal, nii et tuleks kindlasti käivitada ntpd protsess, et saada pidevalt NTP uuendusi.

Allpool on näidisväljund ntpdate käsust, kus esialgne aeg oli seatud keskööle ja see uuendati 8:03'le.

  • Esialgselt oli aeg seatud keskööle, mida näitas date käsk.
[root@smallfry tmp]# date
Thu Aug 12 00:00:00 PDT 2004
[root@smallfry tmp]#
  • ntpdate käsk peab töötama kolm korda, et sünkroniseerida smallfry kell serveriga 192.168.1.100, aga see peab töötama kui ntpd protsess on peatatud. Ehk tuleb peatada ntpd, käivitada ntpdate ja seejärel taaskäivitada ntpd.
[root@smallfry tmp]# service ntpd stop
[root@smallfry tmp]# ntpdate -u 192.168.1.100
Looking for host 192.168.1.100 and service ntp
host found : bigboy.my-site.com
12 Aug 08:03:38 ntpdate[2472]: step time server 192.168.1.100 offset 28993.084943 sec
[root@smallfry tmp]# ntpdate -u 192.168.1.100
Looking for host 192.168.1.100 and service ntp
host found : bigboy.my-site.com
12 Aug 08:03:40 ntpdate[2472]: step time server 192.168.1.100 offset 2.467652 sec
[root@smallfry tmp]# ntpdate -u 192.168.1.100
Looking for host 192.168.1.100 and service ntp
host found : bigboy.my-site.com
12 Aug 08:03:42 ntpdate[2472]: step time server 192.168.1.100 offset 0.084943 sec
[root@smallfry tmp]# service ntpd start
[root@smallfry tmp]#
  • Nüüd on kellaaeg sünkroniseeritud.
[root@smallfry tmp]# date
Thu Aug 12 08:03:45 PDT 2004
[root@smallfry tmp]#

Kindlakstegemine, et kellaaeg on sünkroniseeritud õigesti

Kasutada ntpq käsku, et näha mis serveritega on sinu server sünkroniseeritud. See näitab nimekirja konfigureeritud ajaserveritest, viivitust, nihet ja värinat, mis on sinu serveril nende serveritega. Korrektseks sünkroniseerimiseks peaks olema viivitus ja nihe mitte null ning värin alla saja.

[root@bigboy tmp]# ntpq -p

Allpool on käsu väljund:

remote          refid       st t when poll reach  delay   offset   jitter
==============================================================================
-jj.cs.umb.edu   gandalf.sigmaso  3 u   95 1024  377  31.681  -18.549    1.572 
milo.mcs.anl.go  ntp0.mcs.anl.go  2 u  818 1024  125  41.993  -15.264    1.392
-mailer1.psc.edu ntp1.usno.navy.  2 u  972 1024  377  38.206   19.589   28.028
-dr-zaius.cs.wis ben.cs.wisc.edu  2 u  502 1024  357  55.098    3.979    0.333
+taylor.cs.wisc. ben.cs.wisc.edu  2 u  454 1024  347  54.127    3.379    0.047
-ntp0.cis.strath harris.cc.strat  3 u  507 1024  377 115.274   -5.025    1.642
*clock.via.net   .GPS.            1 u  426 1024  377 107.424   -3.018    2.534
ntp1.conectiv.c  0.0.0.0         16 u    - 1024    0   0.000    0.000  4000.00

Kui Linuxi NTP klient ei saa sünkroniseerida korralikult

Iseloomulik märk, kui server ei ole saanud õiget sünkroniseerimist on siis kui ajaserveril on värin, viivitus ja kättesaadavuse väärtused nullis. Mõnedes vanemates Fedora versioonides võib värina väärtus olla 4000.

remote           refid      st t when poll reach   delay   offset  jitter
=============================================================================
LOCAL(0)        LOCAL(0)        10 l    -   64    7    0.000    0.000   0.008
ntp-cup.externa 0.0.0.0         16 u    -   64    0    0.000    0.000   0.000
snvl-smtp1.trim 0.0.0.0         16 u    -   64    0    0.000    0.000   0.000
nist1.aol-ca.tr 0.0.0.0         16 u    -   64    0    0.000    0.000   0.000

See võib olla põhjustatud järgnevatest asjadest:

  • Vanemates NTP pakettides ei tööta see, kui kasutada NTP serverite DNS nimesid. Selliseljuhul tuleks kasutada IP aadressi.
  • Tulemüür blokeerib juurdepääsu Stratum 1 ja 2 NTP serveritele. Tulemüür võib olla segavaks faktoriks NTP serveri ja selle aja allika vahel. Segada võib ka tulemüüri tarkvara, nagu näiteks iptables, mis töötab serveris.
  • Kui notrust nomodify notrap võtmed on NTP kliendi keelulauses. Mõnes Fedora Core 2 NTP rakenduses kliendid ei näe sünkroniseerimist enne kui, notrust nomodify notrap võtmed on eemaldatud NTP kliendi keelulausest.

Selles näites on defineeritud ainult kliendi võrk ilma võtmeteta ja konfiguratsiooni rida, mis töötab teiste NTP versioonidega on kommenteeritud välja:

# -- CLIENT NETWORK -------
#restrict 172.16.1.0 mask 255.255.255.0 notrust nomodify notrap
restrict 172.16.1.0 mask 255.255.255.0

Fedora Core 2 faili õigused

Kõik Fedora/RedHat NTP Kliendid kirjutavad ajutisi faile /etc/ntp kausta. Kahjuks Fedora Core 2 ei lubata ajutisi faile sinna kirjutada. Selliseljuhul tuleks selle kausta grupiks ja grupiomanikuks määrata ntp.

[root@bigboy tmp]# chown ntp:ntp /etc/ntp

Kui seda ei tehta, siis kirjutatakse veafail /var/log/messages kausta.

Aug 12 00:29:45 smallfry ntpd[2097]: can't open /etc/ntp/drift.TEMP: Permission denied

Cisco seadmete konfigureerimine NTP serveriks

NTP'd saab kasutada erinevate seadmete kellaaja sünkroniseerimiseks, sealhulgas ka võrguseadmete. Siia on lisatud vajalikud NTP käsud, et konfigureerida erinevaid Cisco System tooteid, kuna need on ühed populaarsemad võrgutooted ja on kasutusel paljudes kodudes, väikestes kontorites ja äri osakondades.

Cisco IOS

Ruuteri sünkroniseerimiseks NTP serveriga IP addressitelt 192.168.1.100 ja 192.168.1.201, tuleks kasutada käske:

ciscorouter> enable
password: *********
ciscorouter# config t
ciscorouter(config)# ntp update-calendar
ciscorouter(config)# ntp server 192.168.1.100
ciscorouter(config)# ntp server 192.168.1.201
ciscorouter(config)# exit
ciscorouter# wr mem

ntp server käsk loob suht teise süsteemiga ja ntp update-calendar konfigureerib süsteemi, nii et see uuendaks oma riistvaralist kella tarkvaralise kella järgi perioodiliste intervallidega.

CATOS

Ruuteri sünkroniseerimiseks NTP serveriga IP addressitelt 192.168.1.100 ja 192.168.1.201, tuleks kasutada käske:

ciscoswitch> enable
password: *********
ciscoswitch# set ntp client enable
ciscoswitch# ntp server 192.168.1.100
ciscoswitch# ntp server 192.168.1.201
ciscoswitch# exit

ntp server käsk loob suhte teise süsteemiga ja set ntp client enable aktiveerib NTP kliendi.

NTP turvalisus

Tuleks olla teadlik, kuidas NTP võib mõjutada serveri julgeolekut. Allpool on põhilised asjad, mille pärast tuleks muret tunda.

Tulemüürid ja NTP

NTP serverid suhtlevad üksteisega kasutades UDP porti 123. Erinevalt enamusest UDP protokollidest ei ole lähteport kõrge (üle 1023) vaid 123. Tuleb lubada UDP liiklus lähte- ja sihtpunktipordi 123 vahel ehk siis sinu serveri ja Stratum 1/2 serveri vahel, millega sünkroniseeritakse.

NTP autoriseerimine

Võib olla juhtumisi, kus ainult ei piirata NTP sünkroniseerimist mingisse kindlasse võrku vaid tahetakse ka sünkroniseerimis salasõna. Seda on detailselt kirjeldatud NTP veebilehel [www.ntp.org].

Windowsi NTP kliendi konfigureerimine

Windowsi kliendid, mis moodustavad osa Active Directory domeenist saavad automaatselt oma aja sünkroniseeritud domeeni serverist. Kui klient ei ole osa domeenist, siis saab Windowsi kliendile lisada uue NTP serveri. Allpool on näide:

1. Vasakklikk paremal all oleval ajal.
2. Vajuta "Internet Time" sakile dialog aknas
3. Panna linnuke "Automatically synchronize with an Internet time server" ja sisestada nimi või IP aadress allolevasse kasti.
4. Vajutada "Update Now" nuppu 

Loodetavasti tuleb kiri "Your time has been successfully synchronized" kui kellaaeg on sünkroniseeritud.

Kokkuvõte

On tähtis, et kõikidel lokaalsetelsüsteemidel oleks samasugune kellaaeg. See annab väga selge näidu sündmuste järjekorrast, mis haravad mitmeid seadmeid ja veel aitab see sünkroniseerida ajatundlike sündmusi

NTP serveri omamine lokaalsesvõrgus aitab seda lihtsamalt teha. Mõnikord ei ole vajalik, et kõigil NTP klientidel oleks Interneti ühendus, et sünkroniseerida stratum 1 ja 2 serveritega, isegi kui neil on ühendus, on võimalus, et sünkroonimise käigus ühendus kaob. Paljude tulemüüride reeglite muutmine võib olla ka tülikas, eriti kui sellega tegeleb keegi teine.

Lokaalne NTP server kindlustab selle, et kõigil klientidel on sama aeg serveriga, isegi kui Interneti ühendus kaob mingiks ajaks, on klientide ajad siiski samad. Tulemüürid seaded on sellel põhjusel lihtsam hallata. Sellepärast on hea, kui on lokaalne NTP server, see teeb asjad lihtsamaks.

Autor

Ott Pärnoja

Kasutatud kirjandus