Órák szinkronizálása

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(Saját NTP szerver konfigurálása)
(Restrict)
105. sor: 105. sor:
   
 
A restrict paraméterei a következők lehetnek:
 
A restrict paraméterei a következők lehetnek:
{| style="background:grey; color:black"
+
{| style="background:lightgrey; color:black"
 
|-
 
|-
! paraméter
+
! paraméter !! hatás
! hatás
 
 
|-
 
|-
| ignore
+
| ignore || Deny all packets and queries
| row 1, cell 2
 
 
|-
 
|-
| kod
+
| kod || Send Kiss-Of-Death packet on access violation
| row 2, cell 2
 
 
|-
 
|-
| nomodify
+
| nomodify || Deny ntpq / ntpdc queries that attempt to modify the server
| row 2, cell 2
 
 
|-
 
|-
| notrap
+
| notrap || Deny control message trap service
| row 2, cell 2
 
 
|-
 
|-
| noquery
+
| noquery || Deny all ntpq / ntpdc queries
| row 2, cell 2
 
 
|-
 
|-
| noserve
+
| noserve || Deny all queries - except ntpq / ntpdc
| row 2, cell 2
 
 
|-
 
|-
| notrust
+
| notrust || Deny access unless cryptographically authenticated (ver 4.2 onwards)
| row 2, cell 2
 
 
|-
 
|-
| nopeer
+
| nopeer || Deny all packets that attempt to establish a peer association
| row 2, cell 2
 
 
|}
 
|}

A lap 2009. december 1., 07:14-kori változata

Írta: Reegn Zoltán

Tartalomjegyzék

1 Időszinkronizációs módszerek összehasonlítása

Ez a wiki lap betekintést nyújt az időszinkronizációs módszerek közötti különbségekbe. Első lépésben áttekintjük a népszerűbb időszinkronizációs protokollokat, majd egyenként megnézünk pár időszinkronizációs csomagot, elemezzük előnyeiket/hátrányaikat.

1.1 Időszinkronizációs protokollok

1.1.1 DAYTIME Protocol

RFC 867

1.1.2 TIME Protocol

RFC 868

1.1.3 NTP - Network Time Protocol

RFC 778 RFC 891 RFC 956 RFC 1305

1.1.4 SNTP - Simple Network Time Protocol

RFC 1361 RFC 1769 RFC 2030 RFC 4330

1.2 Időszinkronizációra használt programok

1.2.1 ntpdate

Adott számú mintát vesz minden szervertől, majd egy adott algoritmussal kiszűri a túl nagy eltérésű szerverek eredményét, majd a maradékből becsléssel kiválasztja a legpontosabbat. A programpontossága függ a szerverek számától, a minták számától, és az azok között eltelt időtől. Kézileg, vagy startup scriptből futtatható. Nem állítja folytonosan a host órafrekvenciáját, így az nincs "fegyelmezve".

Amennyiben a host időbeni eltérése a szervertől fél másodpercen belülre esik, akkor az adjtime() függvényhívással a helyes időre "sietteti" vagy "késlelteti" a host óráját. Amennyiben az eltérés fél másodpercnél nagyobb lenne, akkor a settimeofday() függvényhívással a helyes időpontra ugraszja a host óráját.

Amennyiben ntpdaemon fut a hoston, nem állítja az időt.

1.2.2 opentpd

A fejlesztők úgy vélték, hogy mivel az NTPv3 szabvány olyan nagy pontosságot ír le, ami egy linux gépen elérhetetlen, ezért úgy vélték, hogy könnyítenek a kliensprogramon, mellőzve a túlzott pontosságot. A program ~3kloc (fő cél a gyorsaság), és 50ms pontosságot garantál, ami egy linux rendszer által biztosított max pontosság.

A programban privilégium szeparációt valósítottak meg, így root jogosultság csak azon résznek kell, ami root jogot igénylő hívásokat végez.

Két processz:

  • szülő, rootként fut
  • ntp engine, _ntp:_ntp-ként fut, és chroot-ol /var/empty-be

A processzek között egy socket-pár van üzenetek:

  • IMSG_ADJTIME - ntp engine megkéri a szülőt, hogy hívja meg az adjtime() függvényt
  • IMSG_SETTIME - ntp engine megkéri a szülőt, hogy hívja meg a settime() függvényt
  • IMSG_HOST_DNS - ntpengine megkéri a szülőt, hogy oldja fel a megadott hostnevet (/etc/resolv.conf)

A szülő nem bízik a kliensében, ezért nagyon szigorú az üzenetek formátumát illetően, ha az nem megfelelő, hard-exit, és soha többet nem beszél a klienssel.

1.2.3 rdate

Egy szegényes időszinkronizációs protokoll, lekéri a szervertől az aktuális időt, majd a kapott időt állítja be a host óráján. Nem használ átviteli késleltetésből, vagy pontatlanságból származó újraszámlálást.

1.2.4 ntpd

Az ntpd egy időszinkronizációs daemon, A többi vizsgált időszinkronizációs módszerhez képest az ntpd már támogatja az NTPv4-et, de kompatibilis maradt az NTPv3-mal is.

1.2.5 taiclock

1.3 Saját NTP szerver konfigurálása

Alapvető példa egy ntp.conf fájlra:

# --- GENERAL CONFIGURATION ---
server  0.europe.pool.ntp.org
server  1.europe.pool.ntp.org
server  2.europe.pool.ntp.org
server  3.europe.pool.ntp.org
server  127.127.1.0
fudge   127.127.1.0 stratum 10

# Drift file.

driftfile /etc/ntp/drift

A legegyszerűbb konfigurációban két szerver van, egy tényleges NTP szerver, és egy önmagunkra mutató cím. Ez azt fogja okozni, hogy egészen addig önmagunkkal fogunk szinkronizálni, amíg a listában megadott NTP szerverek közül legalább egyhez tudunk csatlakozni.

A drift fájl eltérés-fájl. Idővel az ntpd megtanulja, ohgy mennyi a rendszer tévedése, és ez alapján automatikusan kiigazítja a hibát.

További konfigurációs paraméterek:

paraméter hatás
server Specifies that a server is running on the host (own local clock)
fudge Passes additional information to the clock driver
stratum 10 Manually sets the Stratum the server should operate at (1-15)
driftfile Specifies the location of the frequency file
broadcastdelay Sets the propagation delay from the server when broadcasting
keys Store a list of keys needed for any cryptographic links

1.4 Restrict

A restrict opcióval korlátozhatjuk a hálózaton levő rendszerek mit csinálhatnak az ntp-vel:

#Ezzel engedélyezzük a hálózaton levő hostok szinkronizálását, de az NTP idején nem változtathatnak
restrict a.b.c.d nomodify

#A felsoroltaknak korlátlan hozzáférést biztosítunk az NTP-hez
restrict w.x.y.z
restrict 127.0.0.1

A restrict paraméterei a következők lehetnek:

paraméter hatás
ignore Deny all packets and queries
kod Send Kiss-Of-Death packet on access violation
nomodify Deny ntpq / ntpdc queries that attempt to modify the server
notrap Deny control message trap service
noquery Deny all ntpq / ntpdc queries
noserve Deny all queries - except ntpq / ntpdc
notrust Deny access unless cryptographically authenticated (ver 4.2 onwards)
nopeer Deny all packets that attempt to establish a peer association
Személyes eszközök