Záplatování jádra na linuxovém serveru se zdá jednoduché. To lze provést pomocí běžných nástrojů, jako je dpkg, apt-get nebo kexec. Tyto metody se však komplikují, pokud organizace provozuje stovky nebo tisíce serverů. Mnoho serverů vyžaduje více distribucí k opravě, z nichž každá vyžaduje osobní pozornost správce systému nebo inženýra.
Tyto metody ručního záplatování jsou také riskantní v tom, že vyžadují restartování. Restartování zahrnuje výpadky serveru, což je vždy problematické, takže se obvykle provádějí v cyklech restartování. Protože se během těchto cyklů provádí ruční záplatování, poskytuje hackerům „časové okno“, ve kterém mohou zaútočit na infrastrukturu serveru.
Pro organizace, které provozují více než několik serverů, je lepší volba živé opravy. Je to automatizovaný způsob opravy linuxového jádra za běhu serveru, což umožňuje, aby byl efektivnější a bezpečnější než manuální metody. Pojďme se naučit, jak nastavit čtyři z nejpopulárnějších živých záplatovacích systémů od Canonical, Oracle, Red Hat a CloudLinux.
Co je to živé opravy a jak funguje
Nakonec existují dva způsoby živého záplatování pro jádra a knihovny:dočasné a trvalé. Dočasná metoda aplikuje opravu bez restartu, ale ve skutečnosti později vyžaduje restartování serveru. Trvalé opravy v reálném čase nevyžadují restart.
Dočasná metoda
Dočasná metoda (neboli „záplatování“ záplaty) se provádí pomocí softwaru pro správu balíčků (jako je plugin YUM). Opravy se doručují do úložišť a aplikují se podle pracovních postupů aktualizace určených uživatelem.
Záplatování „zásobníku“ se rovná restartování serveru a výpadkům, i když možná nebudete potřebovat restart hned po instalaci opravy, ale kvůli architektuře tohoto typu živých aktualizací se bezpečnostní záplaty v průběhu času hromadí jedna na druhé, potenciálně snižující výkon a stabilitu. Jediným řešením tohoto problému je restartování serveru, aby se nahrálo nové jádro do paměti.
Dodavatelé poskytující dočasné opravy jsou:
- Canonical Livepatch
- kGraph
- Opravy živého záplatování jádra Amazon Linux 2
Trvalá metoda
V případě trvalé metody server ukládá nejnovější záplaty a tyto záplaty se nazývají „monolitické“, protože obsahují předchozí záplaty. Pro aktualizaci serverů běží na pozadí agentský program, který kontroluje, zda opravný server neobsahuje záplaty. Pokud je na patch serveru záplata pro jádro, agent zavolá záplatovací modul a ten záplatu aplikuje.
Trvalé záplatování má další důležité výhody:
- Servery používající persistentní metodu zůstávají v provozu i s hardwarovými zranitelnostmi, které obvykle vyžadují restartování pro opravu, jako je Spectre, Meltdown a Zombieload;
- Zkracuje čas a úsilí potřebné ke správě serverů díky úplné automatizaci procesu oprav;
- Umožňuje serverům zůstat v provozu, často i několik let.
Metoda trvalého záplatování obvykle zahrnuje poplatky dodavatele, přičemž od většiny dodavatelů jsou k dispozici bezplatné zkušební období:
- Ksplice
- Kpatch
- KernelCare
Nastavit automatické aktualizace jádra bez restartu na serveru Linux
Níže vám ukážeme, jak nastavit aktualizace jádra bez restartu na serveru Linux pomocí služeb Livepatch, Kpatch, Ksplice a KernelCare.
Poznámka:Než začnete s implementací těchto pokynů, ujistěte se, že je váš systém aktuální a zálohovaný.
1. Nastavení Canonical Livepatch
Canonical Livepatch Service lze nastavit buď během instalace, nebo po ní. Nainstaluje záplaty zabezpečení jádra pouze tehdy, když spustíte příkaz apt-get upgrade (proto poloautomatický).
Výhody: Jednoduchý. Poloautomatický. Není nutný restart.
Nevýhody: Drahé pro 4 nebo více hostitelů (ale zdarma až 3 hostitelé pro všechny a až 50 počítačů, pokud jste členem komunity Ubuntu). Žádné vrácení oprav.
Poplatky za server: Měsíčně (není k dispozici), ročně (225 $).
Chcete-li nainstalovat Livepatch na server Ubuntu 20.04 LTS (funguje také na verzích 16.04 LTS, 14.04 LTS a 18.04 LTS), otevřete terminál a spusťte tyto dva příkazy:
sudo snap install canonical-livepatch
sudo canonical-livepatch enable <your key>
Chcete-li zrušit registraci serveru, použijte tento příkaz:
sudo canonical-livepatch disable <your key>
Chcete-li zkontrolovat stav služby, použijte tento příkaz:
sudo canonical-livepatch status --verbose
2. Nastavení Oracle Ksplice
Pokud nespouštíte instanci Ksplice v rámci Oracle Cloud, budete k její instalaci potřebovat přístupový klíč. To lze získat přihlášením do Unbreakable Linux Network a podle pokynů pro registraci vašeho systému pro Ksplice.
Chcete-li nainstalovat Ksplice, váš systém musí mít přístup k internetu. Pokud používáte proxy, nastavte proxy ve vašem prostředí:
# export http_proxy=http://proxy.example.com:port
# export https_proxy=http://proxy.example.com:port
Proxy musí podporovat vytváření připojení HTTPS a řetězec proxy by měl mít tento formát:
[protocol://][username:[email protected]]<host>[:port]
- protokol je protokol pro připojení k serveru proxy (http nebo https)
- uživatelské jméno a heslo jsou ověřovací údaje potřebné k použití vašeho proxy (pokud existuje).
- hostitel a port jsou název hostitele/ip adresa a číslo portu používané k připojení k serveru proxy
Spusťte následující pokyny jako root a nahraďte YOUR_ACCESS_KEY přístupovým klíčem, který jste obdrželi v předchozím kroku.
Uvnitř cloudu Oracle
Chcete-li nainstalovat Ksplice do Oracle Cloud, aby se aktualizace jádra instalovaly automaticky, spusťte tyto příkazy:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc --autoinstall
Chcete-li použít dostupné aktualizace pro Uptrack, aplikaci, která automaticky instaluje aktualizace jádra, spusťte tento příkaz:
# uptrack-upgrade -y
Pokud jste již nainstalovali Uptrack, můžete jej zapnout nastavením autoinstall =yes v /etc/uptrack/uptrack.conf po instalaci Ksplice.
Chcete-li nainstalovat Ksplice, aby se aktualizace aplikovaly ručně, spusťte tyto příkazy:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc
Mimo Oracle Cloud
Chcete-li nainstalovat Ksplice mimo Oracle Cloud, aby se aktualizace jádra instalovaly automaticky, spusťte tyto příkazy:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY --autoinstall
Chcete-li nainstalovat Ksplice, aby se aktualizace aplikovaly ručně, spusťte tyto příkazy:
# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY
Poznámka:Pokud instalujete Ksplice na server Debian nebo Ubuntu, možná budete muset nejprve nainstalovat ca-certificates balíček s apt-get install ca-certifikáty. Bez tohoto balíčku se zobrazí "chyba ověření certifikátu."
4. Nastavení Red Hat Kpatch
Instalace Kpatch je jednoduchá a přímočará:
Spuštěním příkazu update aktualizujte úložiště balíčků a získejte nejnovější informace o balíčcích:
sudo apt-get update -y
Spusťte příkaz install s parametrem -y pro rychlou instalaci balíčků a závislostí:
sudo apt-get install -y patch
5. Nastavení CloudLinux KernelCare
Chcete-li zjistit, zda KernelCare podporuje běžící jádro, spusťte některý z těchto příkazů:
curl -s -L https://kernelcare.com/checker | python
nebo
wget -qq -O – https://kernelcare.com/checker | python
Chcete-li nainstalovat KernelCare, spusťte některý z těchto příkazů:
curl -s -L https://kernelcare.com/installer | bash
nebo:
wget -qq -O - https://kernelcare.com/installer | bash
Pokud používáte licenci založenou na IP, není potřeba nic dalšího. Pokud používáte licenci založenou na klíči, spusťte tento příkaz:
$ /usr/bin/kcarectl --register KEY
KEY je řetězec registračního kódu, který jste obdrželi, když jste si koupili KernelCare nebo se zaregistrovali k bezplatné zkušební verzi. Zde můžete získat klíč.
Chcete-li zrušit registraci serveru, spusťte:
sudo kcarectl --unregister
Chcete-li zkontrolovat stav služby, spusťte:
sudo kcarectl --info
KernelCare automaticky kontroluje nové záplaty každé 4 hodiny. Chcete-li aktualizace provádět ručně namísto automaticky, spusťte:
/usr/bin/kcarectl –update
Závěr
Tyto instalační pokyny pro několik živých opravných řešení uvádějí všechny kroky potřebné k instalaci jednoho do vašeho prostředí. Jakmile to uděláte, budete si užívat výhod technologie živého záplatování:budete moci aktualizovat jádro bez zastavení serveru, bez nutnosti dalšího restartu po měsíce nebo dokonce roky.