Systémový čas Debianu. Nesprávný čas na Ubuntu nebo Debianu – problémy se synchronizací času NTP

Domov / Pevné disky

Přesný čas na počítači slouží nejen k tomu, aby si člověk ověřil datum a čas, ale plní i mnoho dalších důležitých úkolů. Zkuste například nastavit čas o několik hodin zpět nebo se vrátit v čase zadáním roku 19xx v nastavení. Nyní přejděte na google.com s tímto datem. S největší pravděpodobností budete úplné fiasko.

Ve firemním prostředí může nesprávně nastavený čas způsobit spoustu dalších chyb: od neschopnosti uživatele autentizovat se v systému až po... nemluvme o smutných věcech.

Datum a čas lze nastavit několika způsoby. Pamatujte si to tento proces ovlivňuje nastavení systému, a proto vyžaduje oprávnění uživatele root.

Metoda č. 1

Toto je nejjednodušší způsob. Nejvýhodnější pro začátečníky. Konfigurace se provádí pomocí průvodce v pseudografickém režimu.

Dpkg-překonfigurujte tzdata

Metoda č. 2

Téměř totožné s metodou č. 1. Jednoduché a pohodlné, ale tentokrát pouze v textovém režimu. Jediné, co musíte udělat, je postupovat podle pokynů průvodce

Metoda č. 3

Jedna z utilit systemd

Timedatectl nastavit časové pásmo<название зоны>

Zobrazit dostupné zóny

Seznam časových pásem Timedatectl

Metoda č. 4

Pomocí nástroje ntpdate. Výchozí tento nástroj není nainstalováno.

Apt nainstalovat ntp ntpdate

Přidejte ntp server do konfiguračního souboru /etc/ntp.conf a vyhledejte řádky začínající na pool. Další podrobnosti o syntaxi tohoto souboru man ntp.conf

Zastavme službu síťového času pro aktualizaci

Služba ntp stop

Příjem dat z ntp serveru

Ntpdate -s<адрес ntp-сервера>

Spuštění služby zpět

Spuštění služby ntp

Metoda č. 5

Ruční nastavení. Do souboru /etc/timezone zapište požadované časové pásmo, například Europe/Moscow

Echo Europe/Moscow > /etc/timezone

Přepíšeme údaje o časovém pásmu.

Ln -sf /usr/share/zoneinfo/Europe/Moskva /etc/localtime

Příjem dat z ntp serveru

|

Přesné načasování je pro mnohé velmi důležitým aspektem správného fungování moderní programy. V důsledku nesprávného času může dojít k chybám na serveru a poškození dat (například při aktualizaci databáze nebo protokolování).

V Debianu 9 je synchronizace času vestavěna a standardně povolena; je zpracován standardním serverem ntpd poskytovaným balíčkem ntp. Tato příručka vás seznámí základní příkazy pro správu času vás naučí, jak zkontrolovat stav ntpd a nainstalovat další síťové časové služby.

Požadavky

K práci budete potřebovat server Debian 9 a uživatele s přístupem k sudo (manuál je nutné vyplnit v relaci tohoto uživatele). Najdete zde všechny potřebné pokyny k nastavení.

Základní příkazy pro správu času

date je hlavním příkazem pro určení času na serveru. Každý uživatel jej může použít ke zjištění data a času:

datum
Út 4. září 17:51:49 UTC 2018

Servery obvykle ve výchozím nastavení používají časové pásmo UTC (Coordinated Universal Time) – toto je koordinovaný světový čas. UTC konzistentně nastavuje čas na serverech a minimalizuje chyby, pokud jsou servery infrastruktury umístěny v různých časových pásmech.

Chcete-li změnit časové pásmo, použijte příkaz timedatectl.

Vyžádejte si seznam dostupných pásů:

timedatectl seznam-časových pásem

V seznamu se můžete pohybovat dolů pomocí mezerníku a nahoru pomocí b. Vyberte své časové pásmo, zapište si ho a stisknutím q zavřete seznam.

Nyní nastavte časové pásmo pomocí timedatectl set-timezone. Použijte následující příkaz a zadejte požadované časové pásmo:

sudo timedatectl set-timezone America/New_York

Poznámka: Nahraďte America/New_York požadovaným časovým pásmem.

Ujistěte se, že se pás změnil:

datum
Út 4. září 13:52:57 EDT 2018

Zkratka časového pásma bude odrážet novou hodnotu.

stav ntpd

Ve výchozím nastavení používá Debian 9 standardní server ntpd k synchronizaci času se skupinou externích serverů. Jeho stav můžete zkontrolovat pomocí systemctl:

sudo systemctl status ntp
ntp.service - LSB: Spusťte démona NTP
Načteno: načteno (/etc/init.d/ntp; vygenerováno; přednastaveno dodavatelem: povoleno)
Aktivní: aktivní (běží) od Út 2018-09-04 15:07:03 EDT; před 30 min
Dokumenty: man:systemd-sysv-generator(8)
Proces: 876 ExecStart=/etc/init.d/ntp start (kód=ukončeno, stav=0/ÚSPĚCH)
Úkoly: 2 (limit: 4915)
CGroup: /system.slice/ntp.service
└─904 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
. . .

Aktivní (běžící) řádek označuje, že server běží správně. Další informace můžete získat pomocí příkazu ntpq:

ntpq -p
remote refid st t když poll reach delay offset jitter
==============================================================================
0.debian.pool.n .POOL. 16 p – 64 0 0,000 0,000 0,000
1.debian.pool.n .POOL. 16 p – 64 0 0,000 0,000 0,000
2.debian.pool.n .POOL. 16 p – 64 0 0,000 0,000 0,000
3.debian.pool.n .POOL. 16 p – 64 0 0,000 0,000 0,000
-eterna.binary.n 204.9.54.119 2 u 240 256 377 35.392 0.142 0.211
-static-96-244-9 192.168.10.254 2 u 60 256 377 10.242 1.297 2.412
+minime.fdf.net 83.157.230.212 3 u 99 256 377 24.042 0.128 0.250
*t1.time.bf1.yah 98.139.133.62 2 u 31 256 377 11.112 0.621 0.186
+x.ns.gin.ntt.ne 249.224.99.213 2 u 108 256 377 1,290 -0,073 0,132
-ord1.m-d.net 142.66.101.13 2 u 473 512 377 19.930 -1.764 0.293

ntpq je dotazovací nástroj ntpd. Příznak –p shromažďuje informace o serverech NTP, ke kterým je připojeno ntpd. Váš výstup se bude mírně lišit, ale bude zahrnovat standardní servery Debian pool a několik dalších serverů. Navázání spojení může ntpd trvat několik minut.

Přechod z ntpd na systemd-timesyncd

Chcete-li nahradit ntpd, můžete použít vestavěného démona timesyncd systému systemd. timesyncd je jednoduchá alternativa k ntpd, integrovaná s systemd. Při migraci si však uvědomte, že timesyncd nepůsobí jako časový server a pro synchronizaci systémového času používá méně sofistikované metody. Pokud používáte složité distribuované systémy v reálném čase, je lepší zůstat u ntpd.

Chcete-li přepnout na timesyncd, nejprve odstraňte ntpd.

sudo apt purge ntp

Poté spusťte timesyncd:

sudo systemctl start systemd-timesyncd

Zkontrolujte jeho stav:

stav sudo systemctl systemd-timesyncd
systemd-timesyncd.service - Synchronizace času v síti
Načteno: načteno (/lib/systemd/system/systemd-timesyncd.service; povoleno; přednastaveno dodavatelem: povoleno)
Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Aktivní: aktivní (běží) od Út 2018-09-04 16:14:23 EDT; před 1s
Dokumenty: man:systemd-timesyncd.service(8)
Hlavní PID: 3399 (systemd-timesyn)
Stav: "Synchronizováno s časovým serverem 198.60.22.240:123 (0.debian.pool.ntp.org)."
Úkoly: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─3399 /lib/systemd/systemd-timesyncd

Chcete-li získat informace o aktuálním vnímání času systemd, zadejte:

timedatectl
Místní čas: Út 2018-09-04 16:15:34 EDT
Univerzální čas: Út 2018-09-04 20:15:34 UTC
Čas RTC: Út 2018-09-04 20:15:33
Časové pásmo: Amerika/New_York (EDT, -0400)
Čas sítě zapnutý: ano

NTP synchronizováno: ano
RTC v místních TZ: ne

Příkaz zobrazí místní čas, univerzální čas (který může být stejný jako místní čas, pokud jste nepřepnuli z časového pásma UTC) a informace o stavu času v síti. Čas sítě zapnutý: yes označuje, že služba timesyncd je povolena, a synchronizace NTP: yes označuje, že čas byl úspěšně synchronizován.

Závěr

Nyní víte, jak spravovat systémový čas Debian servery 9.

Je důležité udržovat na serveru více či méně přesný čas. Aby bylo pohodlné číst protokoly, aby váš server neposílal ostatním dopisy z minulosti nebo z budoucnosti, takže... na tom nezáleží - je to jen důležité a to je vše.
Kvůli různým závadám, chybám v hardwaru, cyklům napájení se může čas na serveru zpožďovat nebo spěchat vzhledem k atomovému času. Obvykle - ne více než sekundu za den, v praxi - sekundu za měsíc, nebo dokonce méně. Špatně fungující hardware ale dokáže ztrácet čas mnohem více (obecně platí, že silné výkyvy v čase jsou důvodem k zamyšlení nad zdravím hardwaru).
V Linuxu jsou dva oblíbené způsoby synchronizace času – ntpdate pomocí cronu, nebo neustále spuštěné ntpd. Můžete si vybrat kteroukoli z nich, budu psát o obou. Ale za sebe stále doporučuji používat ntpdate podle koruny, zvláště pokud pro vás není příliš kritické neustále udržovat čas na serveru s chybou menší než 0,1 s.
Vyskytl se problém s ntpd, když zranitelnost v něm umožnila použít ntpd servery k provedení udp amplifikačního útoku (když vám malý paket odeslaný na váš server umožnil vygenerovat velký udp paket směrem k napadenému serveru někoho jiného) - http ://habrahabr.ru /post/209438/
Ta zranitelnost byla samozřejmě opravena (a psali, jak z ní uniknout bez aktualizací ntpd), ale kde je záruka, že žádné podobné problémy nezůstaly? A opět, ntpd stále funguje přes udp a útoky podobného typu jsou možné, i když bez velkého nárůstu provozu (ale to vám umožní skrýt útočníka a vystavit váš server zneužití). Mimochodem, narazil jsem na skutečnost, že ntpd, zabudovaný do modulu ipmi serveru, byl náchylný k tomuto útoku a bavilo mě otravovat mé sousedy v zemi =)
Pokud tedy nejste připraveni neustále číst bezpečnostní bulletiny, sledovat aktualizace a tak dále, neměli byste ntpd instalovat.
Takže, první metoda: spustit ntpdate jednou denně podle koruny.
Odstraníme ntpd, pokud existuje:

root@server:~# apt-get remove --purge ntpd

Nastavit ntpdate:

root@server:~# apt-get instalace ntpdate

A vytvořte soubor /etc/cron.d/ntpdate s následujícím obsahem:

0 6 * * * root ntpdate ntp.ubuntu.com 1>/dev/null 2>&1

Nyní každý den v 6:00 (sami si nastavte čas a frekvenci) budou hodiny aktualizovány.

Druhá metoda: nptd.
Musíme to dát opačně:

root@server:~# apt-get install ntpd

A napište do config /etc/ntpd.conf víceméně správná konfigurace:

zakázat autorizaci
deaktivovat statistiky
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

Poté jej restartujeme:

root@server:~# /etc/init.d/ntp restartujte

To je vše, nyní jsou naše hodinky upraveny v reálném čase a synchronizovány s poolem ntp serverů.

Používám operační sál Systém Debian GNU/Linux na serverech pro webhosting. Když byla v létě 2017 vydána verze 9 Stretch, byl jsem rád, že pro ni bylo v repozitářích k dispozici PHP 7, které, jak víte, funguje rychleji než PHP 5.

V tomto článku ukážu, že nastavení času na Debianu 9 se také zlepšilo, nemusíte stahovat ani instalovat nic dalšího, zejména démona ntp nebo utilitu ntpdate. Vše je perfektně nakonfigurováno a funguje standardní sada Software Debian 9 díky aktualizované verzi systemd, která má samostatnou službu zodpovědnou za synchronizaci systémového času pomocí protokolu NTP.

Jak nastavit čas na Debianu 9

Nejprve se musíte rozhodnout pro své časové pásmo a nastavit ho, u mě to vypadá takto:

# timedatectl nastavit časové pásmo Evropa/Volgograd

Poté musíte soubor upravit /etc/systemd/timesyncd.conf, označující v něm servery pro synchronizaci času, například takto:

# Tento soubor je součástí systemd. # # systemd je svobodný software; můžete jej redistribuovat a/nebo upravovat # za podmínek GNU Lesser General Public License, jak je publikována # Free Software Foundation; buď verze 2.1 licence, nebo # (podle vašeho uvážení) jakákoli pozdější verze. # # Záznamy v tomto souboru ukazují výchozí čas kompilace. # Nastavení můžete změnit úpravou tohoto souboru. # Výchozí nastavení lze obnovit jednoduchým smazáním tohoto souboru. # # Podrobnosti viz timesyncd.conf(5).

NTP=ru.pool.ntp.org FallbackNTP=pool.ntp.org Zde v možnosti NTP= jsou určeny prioritní servery pro synchronizaci času. Pokud dojde k selhání při přístupu k nim, servery uvedené v.

Záložní NTP=

Po provedení změn v konfiguračním souboru je třeba restartovat službu synchronizace času:

# systemctl restart systemd-timesyncd

Stav nastavení času lze zkontrolovat pomocí následujícího příkazu:

# stav timedatectl

Výsledek níže ukazuje, že hodiny na mém serveru jsou správně nakonfigurovány a jsou synchronizovány pomocí protokolu NTP.

Místní čas: Út 2018-12-18 16:36:33 +04 Univerzální čas: Út 2018-12-18 12:36:33 UTC Čas RTC: Út 2018-12-18 12:36:33 Časové pásmo: Evropa/ Volgograd (+04, +0400) Čas sítě zapnutý: ano NTP synchronizováno: ano RTC v místním TZ: ne
Zde, Místní čas
- toto je místní čas;- Čas UTC (Coordinated Universal Time). Toto je výchozí bod pro všechna časová pásma;
RTC čas- čas v hardwarových hodinách serveru (počítače);
Časové pásmo- vaše časové pásmo;
Čas sítě zapnutý- indikuje, zda je povolen ntp klient zahrnutý v systemd;
NTP synchronizováno- hlásí, zda je čas synchronizován s ntp serverem;
RTC v místním TZ- ukazuje, jaký čas je uložen v hardwarových hodinách: místní nebo celosvětový. Ve stejnou dobu, Ano znamená místní čas, žádný- celosvětově;

Informace pro začátečníky

Někdy jsem dotázán, kde zadávat (provádět) příkazy, které dávám?

Všechny příkazy uvedené v tomto článku musí být spuštěny v konzole serveru jako privilegovaný uživatel (root). Znamení # (octothorp, lattice, sharp, hash) právě říká toto.

Jako konzolový klient pro vzdálené připojení na servery, které program používám

© 2024 ermake.ru -- O opravě PC - Informační portál