NTP seadistamine Ubuntus
Autor
Nimi: Martin Leppik
Rühm: A21
Aasta: 2013 kevad
Progress: hetkel pooleli
Sissejuhatus
NTP on UDP/IP protokoll aja süntroniseerimiseks üle võrgu. Toimib see nii, et klient teeb päringu serverile, et hetkelist kellaaega teada saada ning kasutab saadud vastust oma kella seadmiseks. Selle lihtsa seletuse taga on tegelikult küllaltki palju keerukust (hierarhiline mudel), millest tuleb juttu hiljem.[1] Network Time Protocol sai alguse 1985. aastal ning on üks vanemaid hetkel kasutatavatest Interneti protokollidest.[2]
Hierarhiline mudel
Kasutatakse hierarhilist mudelit, kus serverid on jagatud kihtidesse. Igal kihil on oma number, mida nimetatakse stratumiteks (Stratum 0-3). [3]. Mida suurem number, seda suurem viivitus võrreldes stratum 0 ehk etalonserveriga. [4] Olenevalt NTP protokolli versioonist, toetatakse kuni 256 kihti, kuid 16 esimest on rakendatud.
- Stratum 0 seade
Kas aatom-, GPS- või raadiokell. Need seadmed ei ole otse ühendatud võrku, vaid on seotud mõne arvutiga (näiteks spetsiaalse ühendusliidese kaudu).
- Stratum 1 [6]
Need ongi arvutid, millega on ühenduses stratum 0 seadmed. Stratum 2 kihi jaoks käituvad nad serveritena. Võivad saada aja ka teiselt sama kihi ajaserverilt.
- Stratum 2
Ajaserver, mis on ühenduses stratum 1 serveriga võrgu kaudu. Stratum 2 saab oma aja NTP päringuga startum 1 või 2 serverilt.
- Stratum 3
Töötab samal põhimõttel nagu startum 2 ajaserver, mis tähendab, et saab oma aja ühe kihi võrra kõrgemalt ning on serveriks ühe kihi võrra madalamale serverile.
Igas võrgus soovitatakse hoida oma ajaserverit, millelt saavad kella kõik võrgu liikmed. [7]
Turvalisus
- Ühtse aja hoidmine on oluline teiste teenuste turvalisuse tagamiseks.
- NTP tagab selle, et logifailide kellajad oleksid erinevate süsteemides samad.
- Regulaarselt vaadatakse üle protokolli lähtekoodi muudatused.
- NTP serveri turvamiseks kasutatakse pääsunimekirja ja autentimist
- Pääsunimekiri on IP ja võrgumaskide ning lubade baasil.
- Autentimine toimub sümmeetriliste võtmete abil (sama võti serveril ja kliendil). [8]
Paigldamine
Paigaldame ajaserveri tarkvara
sudo apt-get install ntp |
Manuaali lugemiseks
man ntp.conf |
Konfiguratsioonifaili redigeerimine (võid ka kasutada oma lemmikud tekstiredaktorit):
nano /etc/ntp.conf |
Seadistamine
1) Ava uuesti ntp.conf
nano /etc/ntp.conf |
2) ntp.conf sisu seletus[9]
#Kogume infot riistvaralise kella ujumise kohta ja kasutame teenuse stardil esmase allikana driftfile /var/lib/ntp/ntp.drift #Määrame serverid - Eesti soovitatavad ajaserverid: http://www.pool.ntp.org/zone/ee server 0.europe.pool.ntp.org #Paneme viimaseks serveriks localhosti - kui net on maas siis ei lähe ntp kinni server 127.127.127.127 #Vaikepääsu reeglid IPv4 jaoks restrict -4 default kod notrap nomodify nopeer noquery #Pääsureegleid saab seada per ip/võrk restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap |
Abistavad lingid konfigureerimiseks:
- http://www.ubuntugeek.com/network-time-protocol-ntp-server-and-clients-setup-in-ubuntu.html
- http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch24_:_The_NTP_Server#.UaJ_CZy0MnM
3) Pääsukontroll ehk restrict ridade seletus
- restrict address [ mask netmask ] [ flag ] [ ... ]
- restrict default - määrab vaikeseaded
- järgmised restrict määrangud on lubavad, kui nad ei konkreetselt ei keela
- restrict 192.168.13.0 mask 255.255.255.0 lubab 192.168.13 võrgul muuta ja pärida seadeid
Lipud:
- ignore - ignoreerime pakette ja päringuid sellest võrgust
- kod - kiss-of-death pakett saadetakse, kui lipp limited on seatud ja klient eksib discard korralduses esitatud seadete vastu
- limited - keelab liiga tihti päringuid teinud kliendid (ei arvestata ntpq ja ntpdc päringud)
- notrap - keelab andmast ntp 6 režiimi kontrollteate lõksuteenust sobivatale hostidele. Lõksuteenus (trap service) on ntpdq kontrollteadete prtokolli allsüsteem, mis on mõeldud kasutamiseks kaughalduse sündmuste logimise programmidele.
- nomodify - keelab ntpq ja ntpdc päringud, mis üritavad muuta serveri olekut (näiteks ajamuutmine). Päringud, mis tagastavad infot, on lubatud.
- nopeer - keelab paketid, mille tulemusena võiks tekkida uus assotsiatsioon.
- noquery - ignoreerib NTP 6 ja 7 režiimi pakette (informatsiooni ja konfiguratsiooni pärinugud) allikast. Ei mõjuta ajateenust. [10]
Abistav link:
Serveri seadistus
Kliendi seadistus
NTP over DHCP
ISC-i DHCP võimaldab automaatslet konfigureerida servereid ntpd-d kasutades. Siin on juhend, kuidas seda tööle saada:
1) Kasutatav DHCP server peab olema konfigureeritud jagama NTP servereid (konfis on selle jaoks valik).
2) Seadista oma dhclient pärima NTP servereid (vaikimisi ta ei tee seda). Selle tegemiseks lisa ntp-serverid päringu (request) reale siin: /etc/dhcp3/dhclient.conf.
3) Loo /etc/ntp.conf fail kõikide sätetega, mida soovid kasutada. Sellest failist tehakse /etc/ntp.conf.dhcp nimeline konfifail ega kirjutada üle.
4) Sinu ntpd peab olema määratud, et ta kasutaks /etc/ntp.conf.dhcp konfifaili, kui see on olemas. See on tavaliselt saavutatud ntp init skriptis (näiteks /etc/init.d/ntp).
[11]
Testimine
Kuupäeva vaatamine
date |
Riistvaralise kella vaatamine
hwclock -r |
1) Pane riistvaralisele kellale väga vale aeg
hwclock --set --date="9/22/99 12:00:00" |
2) Kopeeri riistvaraline aeg süsteemseks ajaks
hwclock --hctosys |
Tööriistad
ntpdate
Kasutatakse kella ja kuupäeva seadmiseks:
1. alglaadimisel enne ntp käivitamist
2. kella seadmiseks, kui aeg on ntp jaoks liiga vale
3. vahel tehakse cron abil aja seadmist (ei soovita - miks?)
4. kui süsteemi aeg vajab seadmist üle poole sekundi, siis seatakse uus aeg koheselt
Näide:
#Peatab NTP teenuse |
ntptrace -n
Selle abil on leitav NTP primaarserver.
ntpq -pn
Näide:
remote refid st t when poll reach delay offset jitter |
Seletus:
remote:
* = praegune ajaallikas
# = allikas valitud, kuid vahemaa ületab maksimaalse väärtuse
o = allikas valitud ja Pulse Per Second (PPS) kasutusel
+ = allikas valitud ja kaasatud lõplikus hulgas
x = allikal vale kell
. = allikas valitud kandidaatide nimekirja lõpust
- = allikas ära visatud klaster algoritmi poolt
blank = allikas ära visatud kõrge stratumi tõttu
refid:
Ajaserverid
stratum:
Stratumi kihi number
t - (types available):
l = lokaalne etalonkell (local, näiteks GPS, WWVB)
u = unicast (kõige levinum)
m = multicast
b = broadcast
- = netaddr
when:
mõõdunud aeg sekundites viimasest vastusest
poll:
oleku kontrollimise intervall sekundites allika jaoks
reach:
näitab, kas allika kättesaamine oli edukas või mitte. Kood 377 tähendab, et kõik katsed olid edukad.
delay:
näitab aega sekundites, mis kulub alates päringust kuni vastuse saamiseni
offset:
näitab ajavahet millisekundites kliendi serveri ja allika vahel.
disp/jitter:
näitab erinevust sekundites kahe näidisaja vahel. [12]
ntp-keygen
Privaatvõtme ja avaliku võtme genereerimiseks.