NTP seadistamine Ubuntus

From ICO wiki
Jump to navigationJump to search

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.


[5]

  • 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).

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)Serveri ntp.conf sisu näide ja 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 #Soovitatav on kasuta eesti ajaservereid, kuna need on täpsemad. Siin on üks näide.

server ntp.eenet.ee
server 1.ee.pool.ntp.org
server 2.ee.pool.ntp.org
server 3.ee.pool.ntp.org

#Paneme viimaseks serveriks localhosti - kui net on maas siis ei lähe ntp kinni

server 127.0.0.1
fudge 127.0.0.1 stratum 10

#Vaikepääsu reeglid IPv4 ja IPv4 jaoks

restrict -4 default kod notrap nomodify nopeer noquery

restrict -6 default kod notrap nomodify nopeer noquery

#Pääsureegleid saab seada per ip/võrk
#Antud juhul on pääsureeglid määratud kindlale alamvõrgule ning kasutatakse nomodify ja notrap lippe.

restrict 192.168.56.0 mask 255.255.255.0 nomodify notrap

Abistavad lingid konfigureerimiseks:

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:

Kliendi seadistus

2)Kliendi ntp.conf sisu näide ja seletus[11]


#Kliendi konfifailis tuleb viidata enda ntp serverile.
#Alternatiiviks on ntp serveri ip andmine DHCP kaudu.

server 192.168.56.200

NTP over DHCP

DHCP võimaldab automaatselt jagada klientidele NTP serverit. 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).[12]

Testimine

Kuna VirtualBox sünkroniseerib "pisikese" aja tagant oma kella sinu operatsioonisüsteemi vastu, siis järgmisteks testideks on see soovituslik ära keelata.

Järgneb õpetus: Kuidas keelata VirtualBoxi'l guest OS kellaaja sünkroniseerimine host OS vastu.[13]

1) Ava Terminal

2) Sisesta käsk

VBoxManage setextradata "Soovitud Masina Nimi" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "1"

3) Kui soovid ühel hetkel, et siiski sünkroniseeriks, siis toimi samamoodi, aga käsk, mida sisestama pead on

VBoxManage setextradata "Soovitud Masina Nimi" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "0"

NTP testimiseks toimi nii:

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

3) Vaata, kas süsteemne kell muutus erinevaks?

date

4) Kuna süsteemne kell on liiga vale, siis NTP server ise seda õigeks ei muuda.
Toimi nii:

service ntp stop
ntpdate ntp.ubuntu.com
service ntp start

5) Järgmisena tee läbi kogu protsess (4 punk jäta vahele), aga muuda kellaeg näiteks 30 sekundit valeks ning vaata, kas kellaeg läheb õigeks.

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 soovitata)
4. kui süsteemi aeg vajab seadmist üle poole sekundi, siis seatakse uus aeg koheselt [14]

ntpq -pn

  • Kliendi näide:
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.56.200  193.40.133.142   2 u   12   64  377    0.207  -94.946  24.069
127.0.0.1       .STEP.          16 l    - 1024    0    0.000    0.000   0.000

Seletus:
Kuna tegemist on kliendiga, siis valitud on ntp.conf failis märgitud server, mille vastu sünkroniseeritakse.

  • Serveri näide:
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*193.40.133.142  .GPS.            1 u   31   64  377    7.040   -0.804   0.464
+131.188.3.220   .GPS.            1 u   27   64  377   29.641   -0.176   0.333
-5.39.184.2      83.98.201.134    3 u   45   64  377   34.465   -0.643   0.214
+178.79.160.57   131.188.3.221    2 u   27   64  377   36.414   -0.404   0.263
 127.0.0.1       .INIT.          16 l    - 1024    0    0.000    0.000   0.000

Seletus:
On näha, et kasutusel on nimeserver ip-ga 193.40.133.142 ja asub stratum 1 kihil.

ntpq -p

  • Kliendi näide:
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ns.ubuntu.infra 193.40.133.142   2 u   47   64  377    0.229   18.736  69.581
ip6-localhost   .STEP.          16 l    - 1024    0    0.000    0.000   0.000

Kontroll:
Kui sa näed oma serverit valituna, siis klient on õigesti seadistatud.

  • Serveri näide:
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp.eenet.ee    .GPS.            1 u   27   64  377    6.560   -0.871   0.504
+ntp0.rrze.uni-e .GPS.            1 u   24   64  377   29.660   -0.207   0.339
-5.39.184.2      83.98.201.134    3 u   40   64  377   34.532   -0.835   0.417
+www.bhay.org    131.188.3.221    2 u   23   64  377   36.493   -0.172   0.455
localhost       .INIT.          16 l    - 1024    0    0.000    0.000   0.000

Kontroll:
Vaata, kas käsu väljundis on näha eelnevalt määratud ntp server.


Parameetrite 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. [15]

Kasutatud materjalid