Állásidő minimalizálása: BTRFS, kgraft SUSE Expert Days Kovács Lajos Vezető konzultáns kovacs.lajos@npsh.hu 100 0 %
SUSE Linux Enterprise 12 célok 100 0 % Állásidő csökkentése 2 Hatékonyabb üzemeltetés Gyorsabb innováció
A leállási idő elkerülhetetlen!
Visszaállás lehetősége, snapshotolható fájlrendszer
Rendszervisszaállás lehetősége Cél a legutolsó jól működő állapotra történő visszaállása a rendszernek akár egy kattintással Javítások telepítése, rendszer upgrade Alkalmazások konfigurálása, adminisztrátori feladatok elvégzése Véletlen törlés Service Pack visszaállítás támogatása Kernel Upgrade esetén is használható 5
Komponensek, eszközök Snapper: Grafikus és parancssori eszköz a snapshotok kezeléséhez Btrfs: alapértelmezett fájlrendszer hibatűrő funkciókkal, snapshot lehetőséggel és könnyen kezelhető menedzsment eszközökkel Grub2: bootloaderbe integrált renszer-visszaállítási funkciók 6
rm -rf / Most már biztonságos? 7
Btrfs SUSE Linux Enterprise Server 12 8 B-tree filesystem SLES12 alapértelmezett fájlrendszere Következő generációs Linux fájlrendszer, SSD-re optimalizálva Copy On Write fájlrendszer A fájlrendszer lehet több lemezen is, RAID funkcionalitás (0,1,10) LVM kötetkezelő funkciók egy részének kiváltása Csökkenthető a fájlrendszer mérete Online, offline fájlrendszer ellenőrzés
Btrfs SUSE Linux Enterprise Server 12 Fájlrendszer snapshot lehetőségek (fájlrendszer konzisztens állapotban történő mentése) 9 Pre, post: automatikus snapshot készítés Single snapshot root kötet alapértelmezett fájlrendszere (/boot is beleértve) Kernel is visszaállítható egy korábbi állapotra Btrfs fájlrendszerről történő bootolás lehetősége (GRUB2)
Btrfs snapshot, subvolume 10 Subvolume-okat hozhatunk létre a fájlrendszeren belül, mintha külön csatolási pontok lennének Minden subvolume külön fájlrendszerként kezelhető, külön felcsatolható, de osztoznak a rendelkezésre álló tárterületen Az egyes subvolume-okon külön kezelhetőek a snapshotok
Root / fájlrendszer és snapshotolása Naplófájlok, átmeneti állományok ne kerüljenek snapshotolásra, visszaállításra 11 Megoldás: subvolume-ok használata a következőkre(nem kerülnek snapshotolásra) /tmp /opt /srv /home /var/spool /var/log /var/run /var/tmp Cél a rendszer integritásának megőrzése
Btrfs integráció Alap integráció Telepítő Btrfs fájlrendszer és subvolume-ok készítése Bootloader integráció 12 Partícionáló Ajánlás subvolume kialakítására Eszközök Snapper Teljes rendszer korábbi állapotra történő visszaállítása GRUB2 bootloaderből Snapshotok kezelése Snapshotok automatikus készítése (YaST) Snapshotok közötti különbségek képzése Visszaállítás lehetősége User Interfaces CLI (snapper) GUI (YaST)
YaST snapper 13
Bootloader integráció 14 Btrfs snapshotok megjelenítése GRUB2 bootloaderben Nem bootoló kiszolgáló esetében igen hasznos Read-only snapshotból történő bootolás, majd snapshot visszaállítás lehetősége Bootolási folyamatot érintő változásokat tartalmazó snapshotok megjelölése fontosként ( * ): kernel glibc systemd udev
15
16
Hiányzó válasz rm -rf / Most már biztonságos? Nem! A subvolume-ok és a fájlrendszer határán nem áll meg a törlés! 17
Kernel Live Patching, kgraft
Kernel Live patching Kernel patchelésének szükségessége 19 } Újonnan kiadott kritikus patch azonnali telepítése Aktuális incidens elhárítása, vészhelyzeti javítás Ütemezett frissítés és leállás Live Patching Több száz kiszolgálót érintő javítás telepítése után nem megoldható az azonnali újraindítás A Live patching az első két esetben nyújt megoldást, a kernel patchet újraindítás nélkül tudjuk érvényre juttatni, gyors reagálás a hibák javítására Frissített kiszolgálók következő üzemezett leállásig történő újraindítás nélküli futtatása
SUSE Linux Enterprise Live Patching Online kernel patchelési technológia kgraft alapon SUSE által kifejezetten a Linux kernelhez fejlesztve SLES 12-től elérhető (x86-64) Cél: kernel patch újraindítás nélküli alkalmazása Megoldás biztosítása a kernelt érintő alábbi hibák gyors javítására 20 Biztonsági hiba Stabilitást, adat integritást befolyásoló hiba PTF(Problem Temporary Fix) javítások is kiadhatók Live Patchként
kgraft előnyei Használata során nem szükséges a kernel és az alkalmazások megállítása A kgraft patch egy egyszerű, kis méretű C fájl Egyszerű a code review a kiadott patcheken Egyszerű felépítés 21 Még rövid időre sem, mint a konkurens technológiák esetében Csekély kódbázis a többi meglévő, felhasznált Linux technológiának köszönhetően
kgraft limitációk 22 Limitált nagyságú, kritikus hibák javítására használatos CVE level 6 és magasabb biztonsági sebezhetőségek Súlyos korrupció, vagy stabilitást fenyegető veszélyek Adatstruktúrák módosítása nehézkes a kernelben Kritikus hibák javításához általában nem szükséges adatstruktúra módosítása. Ezek javításához csekély módosítás is elegendő Ez minden live patching technológia közös tulajdonsága
kgraft működése 23 Modern önmódosító(self-modifying) kódok és ftrace infrastruktúra használata Hibás kernel funkciót tudunk javítani A hibás kernel funkció kikerülésre. Hibás funkció helyett a javított funkció kerül végrehajtásra Fordításkor a kernel funkcióban az első 5 byte NOP utasítással kerül feltöltésre NOP utasítások lecserélése JMP utasítással Hibás funkció átugrása JMP utasítással
kgraft működése 24
SUSE Linux Enterpise Live Patching Kernel patch készítése Súlyosság(severity) azonosítása nem kritikus Kernel patch készítése Live Kernel Patch készítése Patch elérhetővé tétele Patch elérhetővé tétele Kernel frissítése Reboot Biztonságos kernel verzió 25 kritikus opcionális Live Kernel Patch telepítése Biztonságos kernel verzió