přejít na obsah přejít na navigaci

Linux E X P R E S, Správa linuxového serveru: Jak aktualizovat server(y)

CAD publero

Správa linuxového serveru: Jak aktualizovat server(y)

debain_notext.png

Každý operační systém a software na něm je třeba aktualizovat. U serveru to platí dvojnásob, jelikož je permanentně vystaven útokům z celého světa. Přitom aktualizace serveru nebývají úplně triviální. V tomto dílu se dozvíte více o této problematice a doporučených postupech.


reklama

Předmluva

Oproti aktualizacím desktopu je aktualizace serveru přeci jen v pár věcech odlišná. Na desktopu je obvykle ve výchozí instalaci přítomen nějaký nástroj, který vás na dostupnost nových aktualizací upozorní a provede vás příslušným procesem, a to obvykle v pohodlí grafického prostředí. Na serveru si upozorňování i provádění aktualizací musíte zařídit sami. Druhým podstatným rozdílem je dopad případného problému při aktualizaci - na serveru obvykle jakýkoliv problém postihuje řádově větší množství lidí.

Na základě vlastní zkušenosti si troufám odhadnout, že v případě stabilní větve Debianu je pravděpodobnost nějakého problému při aktualizaci velmi malá, správci se snaží o maximální stabilitu, takže aktualizace proběhnou v drtivé většině případů plně automaticky, bez nutnosti intervence správce. Samozřejmě tomu tak není úplně vždy, někdy je už z povahy aktualizace nutná intervence správce, a to i ve stabilní větvi distribuce, nehledě na různé testovací větve či rolling release distribuce, kde hrozí "rozbití" něčeho prakticky při každé aktualizaci. Proto není u serveru úplně vhodné provádět aktualizace automaticky třeba v rámci cronu, i když to samozřejmě technicky proveditelné je.

Doufám, že nemusím příliš zdůrazňovat, že opačný přístup, tedy neprovádění aktualizací vůbec, je téměř jistá sebevražda. Už jsem měl tu čest s jedním serverem, kde se na aktualizaci distribuce čekalo tak dlouho, až server úspěšně napadl útočník a převzal nad ním kontrolu.

Druhy aktualizace a aktualizace v Debianu

Aktualizace lze členit dle více kritérií. Předně je třeba rozlišovat aktualizace v rámci určitého vydání distribuce (tj. třeba v rámci Debianu stable), aktualizace distribuce na novější verzi (tj. třeba aktualizaci Debianu 4.0 na Debian 5.0), a aktualizaci rolling release distribuce.

Dále je třeba rozlišovat povahu aktualizace, tedy jedná-li se o bezpečnostní aktualizaci, nebo pouze o opravu nějakého problému, který nemá bezpečnostní dopad, nebo jedná-li se o aktualizaci na novou verzi dané komponenty.

Aktualizace stabilní větve distribuce by měla být relativně bezproblémová, nemělo by docházet k tomu, aby aktualizace nějakého balíčku rozbila nějakým způsobem nakonfigurovanou službu. Do stabilní větve distribuce (alespoň u Debianu to tak je) by se měly dostávat pouze nutné opravy a bezpečnostní aktualizace, ne nové verze balíčků, kde by třeba vlivem změny syntaxe konfiguračních souborů došlo k narušení nakonfigurovaných služeb.

Aktualizace na nové vydání distribuce je naopak poměrně komplikovaná záležitost. Jelikož se mění verze balíčků a mezi dvěma stabilními vydáními (nejen Debianu) je obvykle velká časová propast, je dost dobře možné, že se v rámci aktualizace nevyhnete problémům, kdy něco přestane fungovat (bude potřeba upravit konfigurační soubor, nebo samotnou databázi uchovávající data atd.). Abyste možnost výskytu takového problému omezili na minimum, doporučuji s aktualizací vyčkat rozumně dlouhou dobu po vydání nové verze distribuce, než se pokusíte provést upgrade. Během této doby se snad většina problémů buď vyřeší, nebo se na ně alespoň přijde a vy se na ně budete moci připravit.

Před samotným upgradem se určitě podívejte po nějaké dokumentaci, a to jak po dokumentaci vztahující se k samotnému optimálnímu postupu aktualizace, tak po poznámkách k vydání, které bývají obzvláště důležité, neb ukrývají seznam známých problémů, na které můžete při aktualizaci narazit.

V případě produkčních systémů bývá vhodné aktualizaci provést pro jistotu "nanečisto" na podobném systému nebo na kopii produkčního systému postavené třeba ze záloh, výsledek důkladně zkontrolovat a otestovat, a teprve pak aktualizovat ostrý server. Samotnou aktualizaci bývá velmi vhodné naplánovat v čase, kdy je server minimálně vytížen, resp. minimálně využíván. Zálohování (nejen) těsně před aktualizací je v tomto případě, jak pevně doufám, samozřejmost.

Rolling release distribuce mají dost specifický charakter - do repositářů se dostávají rovnou nové verze programů (obvykle po otestování), což znamená, že každá aktualizace v sobě skrývá nebezpečí, že něco přestane fungovat. Z tohoto důvodu nebývají tyto typy distribucí příliš doporučovány na produkční servery, i když svědomitý a schopný správce jistě dokáže s jistou dávkou úsilí většině problémů úspěšně předejít. Jen to asi dá trošku více námahy.

Aktualizace v Debianu

V případě Debianu se aktualizace provádí následovně:

aptitude update && aptitude full-upgrade

První část příkazu aktualizuje databázi balíčků (a stav balíčků v repositářích), druhá část provede vlastní aktualizaci. Tento příkaz by měl pokrýt i situace, kdy se mění závislostní vazby a kdy vyvstane nutnost nějaký balíček odstranit, aby bylo možné zaktualizovat úplně všechno. Bezpečnou alternativou, v rámci které se aktualizace omezí pouze na případnou instalaci nového balíčku, ale nikoliv už na odstranění některého nainstalovaného, je safe-upgrade:

aptitude update && aptitude safe-upgrade

Samotný safe-upgrade má nepovinný parametr --no-new-installs, který zabrání i instalaci nových balíčků v rámci aktualizace.

Domnívám se, že největší nebezpečí spojené s full-upgrade spočívá spíše v situaci, kdy máte buď přidané některé neoficiální repositáře (kde se mohou tlouci balíčky s oficiálními repositáři), nebo když se pokoušíte aktualizovat na novější verzi distribuce. U aktualizací v rámci stabilní větve Debianu by ke konfliktům docházet nemělo.

Pokud dojde k nějakému konfliktu, a je potřeba nějaký balíček odstranit, nabídne vám Aptitude řešení. V každé takové situaci byste měli zbystřit a dávat pozor, s čím souhlasíte.

Strategie pro aktualizaci

První z možností je automatická aktualizace, tj. příslušný záznam v cronu, který pravidelně aktualizuje systém. Z důvodů popsaných výše důrazně nedoporučuji něco takového používat na produkčních serverech. O něčem podobném bych uvažoval u domácího serveru či u osobního VPS, kde tolik nevadí, pokud třeba něco přestane fungovat. Kromě ručního vytvoření skriptu, který vám toto zajistí, můžete využít balíček cron-apt.

Druhou z možností je ruční aktualizace. Ta samozřejmě předpokládá nutnost dozvědět se o dostupnosti nových aktualizací. Za tímto účelem můžete použít výše zmíněný cron-apt nebo také apticron. Tyto nástroje vás budou informovat mailem o nových aktualizacích.

Ve spolupráci s balíčkem apt-listchanges umí apticron posílat v mailech i podrobnosti o aktualizacích. Dozvíte se tak třeba, zdali se jedná o bezpečnostní aktualizaci, čeho se aktualizace týká a také, jak moc je doporučováno aktualizovat.

V rámci ruční aktualizace máte samozřejmě možnost vybírat, kdy a co aktualizovat. Jedna z možných strategií je aktualizovat vše, druhou možností je aktualizovat jen to, co je opravdu nutné. K tomuto rozhodování vám velice dobře poslouží výše zmíněné nástroje. Nemusí být také úplně od věci přihlásit se k odběru zpráv o bezpečnostních problémech a aktualizacích. V případě Debianu se podívejte na Debian.org.

Nahoru

(Jako ve škole)
 

Příspěvky

Správa linuxového serveru: Jak aktualizovat server(y)
L 19. 08. 2010, 02:00:52
Odpovědět  Odkaz 
Myslíte si, že u webového serveru jsou také tak kritické bezpečnostní aktualizace? Mám pro jeden web osobní server a bojím se ho aktualizovat právě z toho důvodu, že jestli se něco rozbije, tak se jen velmi těžko budu na něj dostávat.
Správa linuxového serveru: Jak aktualizovat server(y)
Martin Kocourek 19. 08. 2010, 03:54:15
Odpovědět  Odkaz 
Ano, zvláště webové servery jsou naprosto kritické, pokud jde o aktualizace.

"...těžko budu na něj dostávat..." - pak to není SERVER, protože ten se od běžného DESKTOPu liší kromě několika jiných věcí také tím, že poskytuje možnost vzdálené správy (restart, zapnutí) a vzdálené konzoly (textová/serial - např. IPMI nebo grafická - KVM)
Správa linuxového serveru: Jak aktualizovat server(y)
Mach 19. 08. 2010, 23:43:14
Odpovědět  Odkaz 
Již několik let se řídím tímto:

1. opravdu silné heslo (12 znaků, A-Z, a-z, 0-9 a další znaky !@#$%^&...)

2. nainstalovaný balíček denyhosts > http://denyhosts.sourceforge.net/

3. přihlašovat se přes SSH pomocí klíče nikoliv hesla > http://www.debianadmin.com/ssh-your-debian-servers-without-password.html

4. pravidelně (cca 1x týdně) apt-get update && apt-get upgrade

5. spuštěné jen opravdu používané služby
Lukáš Zapletal Re:Správa linuxového serveru: Jak aktualizovat server(y)
zapletal 22. 08. 2010, 21:16:50
Odpovědět  Odkaz 
1,5) Přesunout port 22 na jiný.
Správa linuxového serveru: Jak aktualizovat server(y)
René Seifert 20. 08. 2010, 08:20:56
Odpovědět  Odkaz 
Skvělá věc, včera jsem ji hned nainstaloval a dnes už mám první mejlík o aktualizaci jádra ke stažení. Existuje něco podobného i pro CentOS. Víte o něčem nebo dokonce něco podobného pod CentOS používáte ?
Re:Správa linuxového serveru: Jak aktualizovat server(y)
mam 20. 08. 2010, 11:35:11
Odpovědět  Odkaz 
Existuje: http://www.cyberciti.biz/faq/red-hat-centos-fedora-send-package-update-notification-via-email/
Re:Re:Správa linuxového serveru: Jak aktualizovat server(y)
René Seifert 20. 08. 2010, 20:52:17
Odpovědět  Odkaz 
Díky, to je přesně ono.
Správa linuxového serveru: Jak aktualizovat server(y)
petjo 30. 08. 2010, 16:42:42
Odpovědět  Odkaz 
Misto apticron mam v cronu jen apt-get update,
info o novych aktualizacich se preposila pres nagios-nrpe
centralnimu nagiosu, ktery mi to zobrazi v pekne tabulce
s upozornenim na "critical updates". Pochopitelne mi to posle i mailem,
ale na nektere maily zapominam, ta tabulka me bije do oci "furt":)

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Michal Dočekal

GNU/Linuxový nadšenec a zastánce svobodného softwaru. Jeho pracovní náplň zahrnuje správu několika linuxových serverů. Snaží se být aktivním členem linuxové komunity, dlouhodobě vytváří dokumentaci pro začínající uživatele Linuxu.


  • Distribuce: Arch Linux
  • Grafické prostředí: Awesome
  • Hodnocení autora: ****

| blog


Redakční blog

Pavel Fric

Pavel Fric, 17. duben

Mageia 4

Dříve distribuce Mandrake, přejmenovaná potom na Mandrivu, a v současnosti její nástupci Mageia, ROSA...


Pavel Fric

Pavel Fric, 24. březen

Shotcut

Zatímco Flowblade si zakládá na tom, že používá filmový způsob práce se záběry, Shotcut se proti tomu...


Pavel Fric

Pavel Fric, 06. březen

HandBrake

Známé zátiší, jehož význam se ozřejmí, když program použijete. (Po dokončení kódování vás...


Všechny blogy »