NTP - sissejuhatus
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