Záplatujte jádro za provozu s Ksplice

7. 9. 2010
Doba čtení: 4 minuty

Sdílet

Je známo, že linuxové stroje dokáží běžet léta bez nutnosti restartu. Bohužel existuje jeden pádný důvod, kvůli kterému musíte restart občas provést: výměna jádra. Ať už chceme nebo ne, bezpečnostní chyby se objevují a je kvůli nim občas třeba rebootovat do opraveného jádra. S Ksplice už to není třeba.

Pokud pomineme chyby v hardware, dokáže Linux běžet spoustu let bez zastavení. Za normálních okolností není vůbec potřeba systém restartovat ani vypínat. Dokud se neobjeví vážný bezpečnostní problém v jádře. Pak následuje stažení nového jádra, instalace a restart.

Podle následující statistiky, která pochází od společnosti Ksplice, Inc., je potřeba kvůli opravám v jádře restartovat v průměru jednou měsíčně.

Takové restarty jsou jednak otravné, ale hlavně firemní zákazníky stojí čas a tedy i peníze. Hlídání bezpečnostních chyb, plánované odstávky serverů kvůli restartům a podobně. To vše řeší projekt Ksplice.

Už žádné restarty

Ksplice umožňuje patchovat jádro za jízdy. Jedná se o softwarový nástroj, který dokáže hlídat informace o bezpečnostních dírách, stahovat pro ně záplaty a za plného běhu systému tyto záplaty zavádět. Celý Ksplice se skládá z několika úrovní nástrojů: grafického rozhraní, řádkových ovládacích utilit a nízkoúrovňových utilit pro přípravu patchů.

Celý proces pak funguje tak, že utilita sama hlídá repositář na serveru a sleduje nové binární patche proti podporovaným distribučním jádrům. Pokud se nějaké nové záplaty objeví, utilita je sama stáhne a zeptá se na jejich zavedení. Pak je na několik milisekund zastaven běh systému, zavedou se záplaty a vše se zase spustí. Aplikace i celý systém běží vesele dál, jen jádro má některé funkce přemapované novými, tentokrát už záplatovanými verzemi.

Pokud používáte podporované distribuční jádro, pak je celý proces naprosto automatizovaný a uživatel do něj nemusí vůbec zasahovat. Ale i když používáte jádro vlastní, není nic ztraceno. Můžete si vytvářet vlastní patche. Budete k tomu potřebovat jen zdrojové kódy původního jádra (běžícího), zdrojové kódy záplat a kompilátor.

Program ksplice-create sám přeloží původní jádro, zkontroluje si, že je to skutečně tatáž věc, která právě běží v paměti, do zdrojových kódů zavede patche a udělá druhou kompilaci. Pak si oba výsledky porovná a vytvoří binární patche, přesně takové, jaké byste stahovali ze serveru. Zavedení hotových binárních patchů provedete pomocí  ksplice-apply.

Ksplice je plně open-source a je k dispozici pod licencí GNU GPL 2. Vyvíjí jej už zmíněná společnost Ksplice, Inc., která pro něj také nabízí vlastní komerční repositáře Uptrack s příslušnými patchi. Cenová politika je velmi příznivá, platí se necelých 80 Kč měsíčně, což není nijak závratná cena. Příjemné také je, že pro Ubuntu a Fedoru je služba dostupná zdarma, takže uživatelé těchto systémů mohou vesele ksplicovat. Kromě toho je podpora dostupná pro jádra z distribucí RHEL, CentOS, Debian, CloudLinux a připravuje se podpora SLES. Pokud si chcete na těchto distribucích Ksplice jen vyzkoušet, můžete sáhnout po třicetidenním přístupu zdarma.

Jednoduché a rychlé jako facka

Pokud jste se rozhodli si Ksplice zkusit, navštivte stahovací sekci na Ksplice.com. Já jsem vše testoval na Ubuntu 10.04 LTS a k dispozici jsou přímo .deb balíčky pro tři poslední verze Ubuntu. Balíčky stačí jednoduše stáhnout a nainstalovat. Balíček si do systému přidá repositář a stáhne z něj další tři balíky. Tím je instalace hotová.

Výhodou Ksplice je, že kvůli němu nemusíte provádět žádné úpravy jádra, úvodní restarty ani nic podobného. Ihned po instalaci se v oznamovací oblasti objeví ikonka, která označuje běžící Ksplice.

Pokud se vedle ní objeví vykřičník, pak to znamená, že jsou k dispozici nové záplaty. Stačí kliknout a už se vám otevře okno s jejich seznamem.

Každá záplata má své označení a stručný popis toho, jaké chyby opravuje.

Pak už stačí jen kliknout na Install all updates a záplatování se rozeběhne. Instalace záplat trvá jen několik sekund a poté program oznámí, že se vše povedlo a můžete jej zavřít. Máte záplatováno.

Ksplice samozřejmě nesupluje klasické aktualizace systému, takže je stále třeba instalovat novější verze všech balíčků. Jen restartovat kvůli novému jádru už nemusíte. Pozor ovšem na to, že veškeré úpravy se nacházejí jen v paměti, takže restartem o ně přijdete. Samozřejmě se pak při dalším startu Ksplice zase nainstalují.

Pár tipů navíc

Pokud chcete, aby se vás aplikace už na nic neptala a chcete vše nechat na ní, stačí do souboru etc/uptrack/uptrack.conf přidat volbu

autoinstall = yes

a program už bude záplaty stahovat a instalovat bez zásahu uživatele.

Kromě samotného grafického manažera obsahuje Ksplice také několik řádkových utilit. Ty se hodí zejména v případě, že chcete celou technologii nasadit na serveru, kde nemáte grafické rozhraní. Program uptrack-upgrade provede záplatování jádra všemi dostupnými záplatami, proti tomu uptrack-remove umí odstraňovat záplaty, které vám způsobují problémy. K odstranění vám bude stačit znát číslo záplaty, případně můžete pomocí parametru --all odstranit všechny a dostat tak jádro do původního stavu. Posledním příkazem je uptrack-show, který vám ukáže všechny právě zavedené záplaty.

bitcoin_skoleni

Jednodušeji už to nejde

Na celém Ksplice je příjemná především jednoduchost. Stáhnete si jeden balíček a vaše jádro už bude vždy aktuální. Musím také vyzdvihnout to, že firma Ksplice nabídla repositáře pro Ubuntu a Fedoru zdarma. Pravděpodobně se bude jednat o velmi důležitý impuls v popularizaci celé věci. Navíc ani ceny pro serverové systémy nejsou nijak závratné a za pár desetikorun měsíčně můžete ušetřit spoustu času a energie.

Přestože je podporována jen část těch nejznámějších distribucí, ani pro uživatele těch ostatních není nic ztraceno. Pokud používáte na více serverech stejnou distribuci s jedním jádrem, můžete si vytvářet záplaty jen jednou a distribuovat si je po všech najednou. Většina výhod Ksplice vám i přesto zůstane.

Zdroje

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.