GNU/Linux >> Znalost Linux >  >> Linux

NTP server a doporučené postupy

NTP je zkratka pro „Network Time Protocol“. Je to protokol používaný zařízeními připojenými k internetu k synchronizaci času jejich systémů s časovou referencí. Existuje několik důležitých bodů, proč je důležité udržovat přesný čas, a pracovní principy NTP jsou základní, ale úžasné.

Nedávno jsme představili článek o nastavení serveru a klienta NTP v distribucích založených na Ubuntu. To vyžaduje podrobný popis toho, jak přesně NTP funguje a proč je důležitý.

Jaký je požadavek na přesný čas?

Nejprve se podívejme, proč byla vyvinuta tak hluboká infrastruktura, aby naše stroje mohly používat přesný čas.

Dochází k posunu

Kdykoli používáte počítačový systém, je dobře pozorovaným faktem, že se hardwarové hodiny začnou s postupem času zpožďovat. Tento efekt může v některých případech dokonce vést k vysoké nepřesnosti. To samozřejmě není žádoucí efekt, takže je rozumné použít synchronizaci času.

Správa protokolů

Pokud existuje síť více zařízení a řekněme, že dojde k nějakému problému, který ovlivňuje více systémů v síti. Nejlepší způsob, jak sledovat problém a zjistit, co se stalo, je zkontrolovat systémové protokoly (více o kontrole souborů protokolů zde). Pokud je jeden z těchto systémů o několik sekund pozadu, bude se zdát, že byl ovlivněn před druhým systémem, který byl ve skutečnosti ovlivněn jako první. To ztěžuje odstraňování problémů a obecně správu více systémů v síti. Toto byl jen jeden příklad, ale existuje mnoho dalších a závažných možností.

Transakce

Přes internet se provádí několik druhů transakcí. Někdy, pokud jsou vaše systémové hodiny před skutečným časem, může se v systémových protokolech platby zobrazit, že platba dorazila dříve, než jste částku skutečně zaplatili. To způsobí, že platba nebude vaše a způsobí to další problémy.

Nebo v podobnějším případě se kvůli časové nepřesnosti může často stát, že váš příjemce odešle odpověď na váš e-mail dříve, než jste jej vůbec odeslali. Jak si dokážete představit, přesnost času ve dvou různých systémech na internetu může být kořenem několika potenciálně škodlivých důsledků.

Spuštění příkazu

V síti jsou často napsány skripty pro provádění úloh organizovaných na více systémech. Pokud má takový skript časové parametry, může se pokazit, pokud má systém nepřesný čas. Některé příkazy budou provedeny dříve, než to bude potřeba, nebo po sabotování celého procesu. To samozřejmě není dobré.

Opět, v podobném duchu, vaše GPS by ve skutečnosti nefungovalo správně, pokud by čas mezi vaším systémem a satelitem GPS nebyl správně synchronizován.

Jak to funguje?

Viděli jsme tedy několik důvodů, proč je udržování přesného času v síti docela důležité pro začlenění scénářů a našeho každodenního života. Naštěstí pro nás to není těžké dosáhnout. Pomocí NTP to můžeme umožnit. Jak to ale NTP zajistí? Uvidíme.

Zdroje času

Konečné zdroje času musí být samozřejmě extrémně přesné. Tyto zdroje času jsou v současnosti jedny z nejlepších z vědeckého hlediska, z nichž první jsou Atomové hodiny , které využívají 9192631770 cyklů záření odpovídajících přechodu mezi dvěma energetickými hladinami atomu cesia-133 v základním stavu za jednu sekundu. Kromě toho lze přijímačům časových signálů vysílaných některými národními standardními agenturami věřit jako přesný čas.

Tyto časové zdroje jsou údajně na Stratum 0 úroveň. Koncept stratum funguje tak, jak je popsáno:

Koncept vrstvy

Stratum doslova znamená „jedna z řady vrstev, úrovní nebo gradací v uspořádaném systému“, a tak se také používá v kontextu NTP. Úroveň 0 je nejpřesnější možný čas. Pokud server synchronizuje čas se zdrojem vrstvy 0, je to zdroj vrstvy 1. A pokud poskytuje čas jinému serveru, je tento server stratum 2-time zdrojem. Jak se vrstvy neustále zvyšují, číslo vrstvy přiřazené serveru také obvykle neustále stoupá. Čím nižší je tedy číslo vrstvy přiřazené serveru, tím přesnější bude čas.

Úrovně vrstvy jsou brány v úvahu až do vrstvy 16, po které je časový rozdíl příliš velký. V mnoha scénářích se doporučuje používat pouze servery vrstvy 4.

Server Stratum 1

Server úrovně 0 nesmí být používán běžnými uživateli, jako jsme my. Atomové hodiny a zdroje času národních agentur spravuje přímo vláda.

Když půjdeme dále po řadě, server vrstvy 1 je server, který je přímo připojen k hardwarovým hodinám, které jsou na úrovních vrstvy 0. Toto je nejlepší možný server zdroje času, protože vrstva 0 ve skutečnosti není server, ale hodiny. Server, ke kterému se lze skutečně připojit, je server stratum 1, který přímo přijímá čas z hardwarových hodin.

Server vrstvy 1 musí mít přesný a dobře udržovaný. Měl by být také vysoce dostupný, protože jiné systémy se mohou spoléhat na jeho časovou službu.

Proces synchronizace času

Za prvé, pro nastavení NTP na vašem systému musíte vybrat servery, se kterými budete synchronizovat čas. Za tímto účelem si můžete vybrat server, který chcete používat, a nakonfigurovat nastavení vašeho systémového softwaru.

Jak je čas synchronizován

Proces synchronizace začíná tím, že si systém a server NTP po určitou dobu vyměňují více datových paketů. Ve skutečnosti se děje to, že se počítá čas, který paket potřebuje k dokončení jedné zpáteční cesty na server NTP a zpět. Čas je odesílán v těchto datových paketech serverem NTP a vypočítaná doba cestování je odpovídajícím způsobem odečtena. Například:

Systém má čas 17:00:05, kdy paket odesílá. Systém nyní obdrží odpověď ze serveru NTP v 17:00:11. NTP server odeslal informaci o čase, že je právě 17:05:23. Ale když se podíváte na dobu cesty paketu, která je 6 sekund, znamená to, že trvalo 3 sekundy, než se dostal na server, a další 3, než se vrátil. To znamená, že čas byl 17:05:23 před 3 sekundami, v tuto chvíli ne. Čas je tedy upraven na 17:05:26.

(Samozřejmě jsem zvětšil měřítko na velmi vysokou míru, ale to jen pro vysvětlení. Tyto rozdíly jsou ve skutečnosti v milisekundách, ale logika je stejná).

Celý tento proces výměny paketů trvá asi 5 minut, aby byl zajištěn správný čas a bylo zajištěno, že offset byl opraven. Je zřejmé, že čím kratší, konzistentnější a symetričtější jsou výměny paketů, tím přesnější bude čas. Protokol NTP používá pro tento proces pakety UDP a IP kvůli jejich rychlosti a spolehlivosti. Použitý port je 123. Uvádí se, že přesnost času je obvykle mezi 5-100 ms.

Pokud je časový rozdíl mezi NTP serverem a systémem dostatečně malý, rychle se změní. Pokud je časový rozdíl velký, čas se neustále mění s malými rozdíly, dokud není opraven.

Doporučené postupy

Mít více serverů

Toto je nejvíce doporučený postup:mít více redundantních serverů NTP, pokud jeden z nich nefunguje správně nebo se z nějakého důvodu stává nepřesným. Pokud lze síť okamžitě připojit k jinému serveru NTP, nedojde k velkým ztrátám. Navíc bude ještě lepší, když si můžete nastavit skripty, které dokážou automaticky aktivovat a připojit síť k jednomu z redundantních serverů, když jsou dány určité zřejmé podněty (např. nepřijímání žádných paketů ze serveru NTP atd.).

Zvažte rozložení sítě

Síť by měla být strukturována tak, aby systémy vyžadující přesnější čas byly fyzicky blíže a přímo připojeny k serveru NTP. Pokud existují podsítě, měly by být použity pro úkoly, které relativně nevyžadují přesný čas.

Zabezpečená komunikace NTP

Protože NTP je založen na UDP, jedná se o protokol zaměřený na poměrně hodně, takže v závislosti na vašem systému mohou existovat potenciální zranitelnosti. Vždy je dobré zabezpečit připojení NTP pomocí ověřování.

Omezit přístup

Zabezpečení sítě před vnějšími útočníky je jistě důležité, stejně jako předcházení špatnému zacházení. Omezením přístupu k NTP serverům pro holý minimální počet lidí se můžete ujistit, že máte co nejméně lidských chyb, a navíc si můžete být jisti, že to nebude řešit někdo, kdo nemá technické znalosti ve skutečnosti k ovládání sítě.

Vyhněte se časovým smyčkám

Sci-fi vyhlídky stranou, měli byste se vždy ujistit, že ve struktuře sítě nedochází k časové smyčce. Řekněme, že A funguje jako server pro B a B pro C. Nyní, pokud je C znovu přiřazeno jako server pro A, může se to stát chaotický. Nikdo se zdravým rozumem by to samozřejmě neudělal, ale někdy se to může stát náhodně, takže je dobré jednou za čas zkontrolovat rozložení sítě NTP.

Závěr

NTP je vynikající a účinný protokol, který zajišťuje, že váš systém má vždy správný čas. Ve velké síti nebo v kancelářském prostředí to může být trochu složitější, ale trocha opatrnosti a dobré rozvržení může vést k dlouhé cestě. Doufáme, že pro vás byl tento článek užitečný.


Linux
  1. Jak nastavit časové pásmo a synchronizovat čas serveru s NTP v Linuxu

  2. Chrony – Alternativní NTP klient a server pro systémy podobné Unixu

  3. Synchronizujte čas serveru Linux se serverem času sítě

  1. Nejlepší postupy zabezpečení serveru Linux

  2. Doporučené postupy zabezpečení serveru Windows

  3. Nejlepší postupy pro server Nagios?

  1. Nejlepší postupy zabezpečení OpenSSH

  2. Jak nainstalovat a nakonfigurovat NTP pro synchronizaci času v CentOS?

  3. 8 osvědčených postupů se sudo v Linuxu – co dělat a co nedělat sudo