5. Pontos óra az ntp programmal

A pontos idő ismerete egy nagyobb hálózatban legalább olyan fontos, mint a megfelelő biztonsági stratégia (és ez alatt sem csupán tűzfalak beállítását értjük).

5.1. NTP: Network Time Protocol

Az NTP protokollt itt nem fogjuk tárgyalni, de ez a nagyszerű találmány nemcsak az internetet teszi jobbá, hanem számunkra is hasznos lehet. A protokollról további információ a www.ntp.org webhelyen található.

Az NTP egyrészt egy protokoll (ezt használjuk, de ebben a leírásban nem ismertetjük), másrészt egy program neve.

Miután beállítottuk rendszerünket, az NTP gondoskodik arról, hogy az óra mindig pontos legyen. Az időeltérést olyan apró lépésekben korrigálja, amik nem zavarják a futó alkalmazásokat.

A gyakorlatban többféle forrásból kaphatunk pontos időt: az egyik az atomórák által előállított idő (ezeket általában egyetemek vagy kutatólaborok üzemeltetik), a másik a GPS (Global Positioning System). Harmadik alternatíva a szegény ember pontos órája, ami egy DCF77 rádiós óra. Ezt szintén csatlakoztathatjuk a gépünkhöz, vagy végső esetben magunk olvashatjuk le róla a pontos időt. Ha mi magunk adjuk meg a pontos időt, a chrony programot célszerű használnunk, az ntp program nem alkalmas a kézi bevitel fogadására. Az atomóra elvileg a legpontosabb, de a GPS vagy a DCF is megfelelő (=ezredmásodperces) pontosságot biztosít. Az atomórák számítógépekhez kapcsolódnak, amelyek egy NTP protokollt használó programot futtatnak, és ezeknek a számítógépeknek egy része elérhető az internetről is. GPS használata esetén a GPS eszközt közvetlenül egy felügyeletünk alá tartozó számítógéphez kell csatlakoztatnunk, amin majd egy NTP protokollt használó programot fogunk futtatni.

Sajnos a TV és a rádió "pontos ideje" csak igen durva közelítéssel nevezhető pontos időnek, egyrészt, mert nem ismerjük az általuk használt pontos idő forrását, másrészt műsorszerkesztési okokból gyakran eltérnek a pontos idő használatától. Legjobb, ha ezeket a forrásokat egyáltalán nem vesszük figyelembe az óra szempontjából.

5.2. Egy egyszerű időszinkronizáló mechanizmus felépítése

Amire szükségünk van:

  1. Közvetlen vagy tűzfalon keresztüli internet-kapcsolat (a következő pontban szereplő "chrony" program esetén erre nincs feltétlenül szükség).

  2. Néhány közeli NTP szerver kiválasztása. Az elérhető szerverekről a pool.ntp.org, vagy a stratum 2 nyilvános időszerverek webhelyeken található lista, vagy az NTP honlapján. Ha a számítógépünk nagyobb vállalati környezetben működik, a helyi adminisztrátortól kérdezzük meg a vállalati időszerver IP-címét.

  3. Rakjuk fel az NTP programcsomagot a gépünkre, illetve mindazokra a gépekre, amiket szinkronizálni szeretnénk.

Egy példa a megfelelő felépítésre:

Ha több helyi gép óráját szeretnénk a pontos időhöz szinkronizálni, soha ne közvetlenül a távoli internetes NTP szervereket válasszuk ki számukra. Csupán 2 helyi gépnek kell elérnie a külső NTP szervereket, a többi gépnek ehhez a kettőhöz kell szinkronizálnia. Ezeket a szervereket helyi időszerver-nek nevezzük.

Helyi időszerver feladatára minden olyan gép megfelel, amely állandóan be van kapcsolva. Az NTP program kevés memóriát és CPU teljesítményt igényel. Nem szükséges egy gépet csak erre a feladatra kijelölni.

Tipp

Jó ötlet lehet megfelelő neveket adni a helyi időszerverek számára, mint például ntp1.cegnev.hu és ntp2.cegnev.hu, és ezeket a neveket beállítani a kliens gépek számára. Így az időszerver funkciót később átrakhatjuk egy másik gépre, anélkül, hogy a kliens gépeken bármit is változtatni kellene. Kérjük meg a helyi rendszergazdát, hogy hozza létre a vállalati DNS szervereken az általunk megadott ntp1.cegnev.hu és ntp2.cegnev.hu bejegyzéseket.

5.3. NTP beállítások

Ha a helyi időszerverek órája az NTP szerverekhez képest több perccel eltér, akkor az NTP nem fog működni. Első alkalommal egy teljes szinkronizálást kell csinálni, és erre egy kevésbé terhelt időpontot válasszunk ki. Később erre nem lesz szükség:

Az utolsó lépés az NTP démonok elindítása a gépeken:

bash# service ntpd restart

5.4. Gépünk figyelése szinkronizálás közben

A folyamatot az NTP Query parancsával figyelhetjük (ntpq command):

5.5. Az NTP beállítása és automatikus indítása

Bizonyára minden bekapcsoláskor el akarjuk indítani az NTP-t is. Tegyük a következőket Redhat gépeinken:

bash# chkconfig --level 2345 ntpd on

Ez beállítja az automatikus indítást.

Ha a gépünk folyamatosan be van kapcsolva (heteken, esetleg hónapokon át) újraindítás nélkül, a magára hagyott hardveróra jelentősen el fog térni a most már pontos rendszeridőtől. Emiatt nem kell aggódnunk, mert a rendszer újraindítása előtt a rendszer órája beíródik a hardverórába a mechanizmuson keresztül, ami hasonló a setclock parancshoz. Ilyen módon a legközelebbi bekapcsoláskor viszonylag pontos órával fog a gép elindulni.