Mi az az immutable Linux?

Immutable Linux
Immutable Linux
Mi az a "immutable" Linux disztribúció, és érdemes lehet használni használni?

Az elmúlt évben egyre több magát immutable Linux disztribúciónk jelölő kiadás jelent meg, így érdemes lehet ezt a témát átnézni, illetve pár kérdést feltenni. A lehető legegyszerűbb megoldás a kérdés első felének megválaszolására a MI-t megkérdezni. Egy nagyon korrekt és egyértelmű választ kaptam:

Az "immutable Linux" egy olyan Linux disztribúció vagy konfiguráció, amelyben a rendszerfájlok vagy bizonyos kritikus rendszerkomponensek nem változhatnak. Ez azt jelenti, hogy ezek a fájlok nem írhatók vagy módosíthatók, még a rendszergazdák vagy a rosszindulatú programok által sem.

Ez a megközelítés biztonsági előnyökkel járhat, mivel csökkentheti a rendszer sérülékenységeit és a támadások lehetőségeit. Az immutable Linux lehetővé teszi a rendszer állapotának stabilizálását, ami megakadályozhatja a károsító változtatásokat, például a rosszindulatú szoftverek által végrehajtott módosításokat.

A rendszergazdák általában olyan eszközöket és technológiákat használnak az immutable Linux konfigurációk kialakításához, mint például a "read-only root filesystem" (csak olvasható gyökér fájlrendszer), a "file system snapshots" (fájlrendszer-másolatok), vagy akár olyan eszközöket, mint az "AppArmor" vagy "SELinux", amelyek segítenek a fájlok és folyamatok védésében a nem kívánt módosítások ellen. Ez általában a biztonsági szempontok erősítésének része a Linux-alapú rendszerekben.

Mi az immutable Linux?

A megváltoztathatatlan Linux disztribúció olyan operációs rendszer (OS), amely egy részében csak olvasható. Ez azt jelenti, hogy nem tudja könnyen módosítani senki az operációs rendszert. Ez magában foglal(hat)ja a fájlrendszert, a könyvtárakat, az alkalmazásokat és még a konfigurációkat is. Még rendszergazdaként sem módosíthatja a terjesztést. Ha valami megváltozik egy megváltoztathatatlan disztribúcióban, az csak ideiglenes, és újraindításkor visszaáll az eredeti állapotba. Ezért nevezik ezeket az operációs rendszereket „változhatatlannak”.

Azaz a rendszer "rendszer" részét sem a rendszergazda, sem egy rosszindulatú program nem változtathatja meg. A "felhasználói" részt természetesen pontosan úgy használhatod, mint bármelyik egyéb Linux disztribúciónál.
Első olvasatban ez egy valóban haladó és jó megoldás. Nem tudom szétbarmolni a rendszert, stabil lesz, hiszen ami ma jól megy az egy frissítés után, vagy telepítés után sem lesz rossz. Ha senki nem nyúlhat ehhez a rendszer részhez akkor az stabil lesz.

Az immutable Linux disztribúciók előnyei?

Miért kellene valakinek megfontolni egy immutable Linux disztribúciót a normál disztribúciókkal szemben? Ennek az az oka, hogy ezek a disztribúciók "változatlan" természetük miatt extra előnyökkel is járnak. Említek néhányat közülük.

Nagyobb biztonság

Az egyik oka annak, hogy sok haladó felhasználó inkább a Linuxot részesíti előnyben más operációs rendszerekkel szemben, a biztonsága. Ez azonban nem jelenti azt, hogy a Linux rendszere immunis a sebezhetőségre, különösen, ha nem követi a legjobb biztonsági gyakorlatokat.

Az immutable Linux-disztribúciók további biztonsági réteget kínálnak azáltal, hogy megakadályozzák a rendszer jogosulatlan módosításait, így jobban ellenállnak a támadásoknak. Azaz az egységsugarú felhasználó nem tud belebarmolni a biztonságba. Bár sok Linux disztribúció alapból ad egy jó biztonsági szintet, de sokan ezt is kényelmetlennek tartják és amit lehet kikapcsolnak. Arról ne is beszéljünk, hogy egy biztonságra kihegyezett Linux disztribúció keményebb szabályait mennyire akadályozónak tartják sokan...

Tegyük fel, hogy nem a megfelelő személy kap rendszergazdai jogosultságokat a rendszeren. Most már annyit manipulálhatnak vele, amennyit akarnak, ha normál Linux rendszerről van szó. A változtathatatlan disztribúciókban azonban még a rendszergazda sem tudja módosítani a rendszerfájlokat.
Bár ez első látásra nem túl valószínű (mármint nem megfelelő emberke kapjon super jogokat), de gondoljuk át: sok helyen a kényeélmi dolgok miatt (ő is hozzáférjen, ismerős, biztosan nem akar rosszat stb.) bizony kaphat emelt jogot egy-egy nem teljesen arra való ember is. Tapasztalat.

Ez csökkenti a rosszindulatú személyek támadási felületét, mivel nem tudnak rosszindulatú programokat telepíteni vagy feltörni a rendszert. A számítógép biztonságosabbá válik, és ellenáll a jogosulatlan változtatásoknak.

Kérdés: való olyan viszonylag biztonságos rendszer olyan embernek, aki a minimális és logikus előírásokat sem tartja be? Ha valaki (pld. egy vezető, vagy rendszergizda) olyan emberkének ad emelt jogot, aki nem alkalmas arra? A Linux disztribúciónak kell megvédeni saját magától az embereket?

Könnyebb karbantartás

A immutable disztribúciók könnyebben kezelhetők és telepíthetők. Nem kell gondoskodnia az összetett frissítési folyamatokról, a függőségi problémákról vagy a rendszerállapot kezeléséről.
A frissítések nem működnek az élő rendszeren, és csak újraindítás után érvényesülnek. Ez csökkenti annak esélyét, hogy valamit elrontsunk a frissítés során, ami gyakori jelenség.

Igen, a Linux disztribúció általában stabil, a frissítésekkel nincs gond. Ez igaz is, de csak - tapasztalatom szerint - a Linux disztribúciók egy részénél. Ha jól választod meg akkor valóban közel nulla a probléma a frissítésekkel. De ha rosszul, vagy túl gyorsan akarnak kiadni egy frissítést, akkor már lehetnek komoly gubancok. Ha ezt valami szinten csökkenti a immutable Linux disztribúció, akkor már nyert ügyünk van.

Kérdés: Miért is választ egy ember nem stabil Linux disztribúciót? Mert a valóban stabilakon a programok a hosszabb tesztelési idő miatt régebbiek, vagy akár azért is, mert szeret a rendszerrel babrálni. Az ilyen választás egyéni, mindenki maga dönt a Linux disztribúció terén.
A másik kérdés: az elmúlt jópár év alatt sok Linux disztribúciót kipróbáltam, és a legtöbbnél kiírták, hogy ez stabil. Ha oda van írva a honlapra, akkor miért is fordulhat elő az a sok probléma, ami frissítéskor kerül elő? Általában magyarázat van rá, de az nem nagyon segíti azt a felhasználót, aki egy frissítés után a google varázslatos erejével keresi a rendszerét megmenő csodaszert…
Természetesen felmerülhet a a kérdés: ha valóban csak relatív kevés valóban stabilan frissítő Linux disztribúció van, akkor mi garantálja az immutable Linux disztribúció az lesz? Gyakorlatilag semmi, mert ezek sem csodafegyverek. Ami ezen a téren biztonságossá teszi őket két részre osztható. Az egyik megint az "user error" témakör. Itt nem tud a felhasználó nagyon belepiszkálni (ahogy mondani szoktam: belebarmolni) a rendszerszintű dolgokba. Így a frissítések kisebb valószínűséggel futnak zátonyra. A másik - ami nem feltétlen lesz igaz mindegyik immutable Linux disztribúciónál - a visszaállíthatóság. Bár mentési pontokat a legtöbb Linux disztribúció alatt tudunk készíteni, de csak nagyon elkötelezett ember aki ezt meg is teszi!

Atomic frissítések

Ezek a disztribúciók más megközelítést követnek az operációs rendszer frissítésekor. A frissítések csomagonkénti kezelése helyett a frissítések az egész operációs rendszerben megtörténnek. Más szavakkal, az egész operációs rendszert egyetlen oszthatatlan egységként kezeljük. Ha a frissítés során bármilyen hiba lép fel, a rendszer visszaáll az előző állapotba.

Egy másik érdekes szempont a kép alapú frissítési folyamat. A frissítés során a rendszer egy új lemezképet hoz létre egy külön partícióban. Az összes frissítés az új képen történik, miközben Ön a meglévő képet használja. A következő rendszerindításkor a rendszer az új és frissített képpel indul a régi helyett.

Ez közel olyan, mintha frissítéskor két (vagy több) telepítésed lenne, és a régi csak akkor kerül törlésre, amikor biztosan indul a régi. Szuper! Kivéve, ha a rendszered szűk keresztmetszete a lemezterület.

Megnövelt megbízhatóság

Te vagy mások nem módosíthatják a rendszerszintű fájlrendszert. Tehát a normál Linux disztribúcióval ellentétben ezeket az operációs rendszereket nem lehet könnyen feltörni. Még ha véletlenül vagy szándékosan eltolsz is valamit, a következő újraindításkor kijavítja magát. A harmadik féltől származó programok nem tudnak semmit a felhasználó háta mögött kavarni, és nem törölhetnek olyan fontos rendszerelemeket, amelyek instabillá tehetik a rendszert. A rendszert! Ezt soha ne feledd. A felhasználói adatok, az adataid és a személyes dolgaid pontosan úgy viselkednek, mint bármely Linux disztribúció alatt! Nem a személyes adatokat védi közvetlen az immutable Linux disztribúció!

Hogyan működik a szoftvertelepítés és -frissítés az immutable disztribúciókon?

Ha a megváltoztathatatlan disztribúciók csak olvashatóak, hogyan telepíthetsz vagy frissíthetsz alkalmazásokat? A legtöbb, ha nem az összes változatlan disztribúció Flatpak, AppImage vagy Snaps szoftvert használ a szoftverek kezelésére, amelyek önálló csomagrendszerek. Ezeket a csomagokat a fájlrendszer módosítása nélkül telepítheti és futtathatja az user. Ezek az univerzális csomagformátumok minden szükséges függőséget és könyvtárat tartalmaznak, így nem kell rendszerkönyvtárra hagyatkozniuk. Ezenkívül el lettek szigetelve az operációs rendszertől.

Egyes változatlan disztribúciók a "rétegezés" néven ismert technikát alkalmazzák a csomagok telepítéséhez. Ezzel a módszerrel az alkalmazásokat a csak olvasható alaprendszer tetején lévő dedikált rétegre telepíti. Ez azt jelenti, hogy hozzáférhet a disztribúció csomagtárolóihoz a csomagok telepítéséhez. A hagyományos csomagkezelők, például az APT vagy a DNF használata helyett azonban speciális eszközöket kell használnia a réteg rendszeren belüli csomagok kezelésére. Ezek a réteges csomagok a rendszer frissítésekor megmaradnak, majd az újraindítás után hozzáadódnak a frissített képhez.

Egy másik lehetőség egyes operációs rendszereken az alkalmazások telepítése konténereken keresztül, például a Distroboxon. A szoftvert a fő disztribúció tetején lévő tárolóba telepíti. Ez lehetővé teszi a hivatalos tárolókban nem elérhető programok telepítését és használatát.

Már ebből a rövid összefoglalóból is látni, hogy a immutable Linux disztribúciók sem egységesek, a módszerek eltérhetnek a csomagkezelés terén. Egyre több Linux disztribúció készíti el a saját immutable verzióját, ami mutatja, hogy ez egy lehetséges későbbi irány lesz.

Ezt a részt sem hagyhatom kérdés nélkül: mi lehet szerinted az oka, hogy ennyi idő után is azzal kell foglalkozni egy Linux felhasználónak, hogy függőségekre gondoljon, és a telepítések egy része nem túl egyszerű? Miért is van az, hogy a meglévő (a Linux disztribúció saját) csomagkezelője fölé, mellé vagy akár helyett kell egy másik: Appimage, Flatpak, Snaps?

Érdekes ez a megoldás, mert- talán - az lehet a jövő, hogy a Linux disztribúció készítője lemond a felhasználói programok csomagolásáról, és csak a rendszer "rendszer szintű" részét, azaz az operációs rendszert fejleszti? Így a programok készítője elkészíti majd a felhasználói programokat valamelyik nagy, és független csomagként és minden Linux disztribúció alatt egyformán futni fog? Ez talán csökkenti a fejlesztés fregmentációját?

Ki használ ilyen immutable Linux disztribúciót?

A "változtathatatlan" disztribúciók nem olyan ritkák, mint gondolnád. Valójában a Steam Deck egy megváltoztathatatlan Arch Linux-alapú disztribúciót használ, a SteamOS néven. Hasonlóképpen, sok kézi eszköz immutable disztribúciót használ az frissítések miatt.

De nem ezek az egyetlen használati esetek ezekhez a disztribúciókhoz. A nagy biztonságot és megbízhatóságot igénylő szervezetek gyakran immutable disztribúciókat választanak. Ezek a disztribúciók segíthetnek elérni ezt a biztonságot amit elvárnak. Különösen azokban a szerverkörnyezetekben, ahol biztosítania kell, hogy a szerverkonfigurációk stabilak és biztonságosak maradjanak.

A fejlesztők nagyszerűen használhatják ezeket a rendszereket elszigetelt és reprodukálható tesztelési környezetek létrehozására. A DevOps mérnökei konzisztens környezetben is telepíthetnek szoftvereket, csökkentve ezzel a folyamatos integrációs/folyamatos üzembe helyezési (CI/CD) folyamatok általános költségeit.

Az immutable Linux disztribúciók gyakran használatosak konténeres környezetekben (mint például a Docker és a Kubernetes, hogy biztosítsák az alkalmazások karbantartását és méretezését egy kiszámítható és konzisztens tárolókörnyezetben.

A fentiek mutatják, hogy ezek az immutable Linux disztribúciók első épésben inkább a termelési területen, illetve a céleszközök területén (a Steam Deck is céleszköz!) terjednek.
Én az utóbbi időben (Arch és egyéb kitérő után) egyre jobban tudom értékelni a stabilitást, aminek az egyik lehetősége az immutable Linux disztribúció választása. Párat biztosan ki is fogok próbálni. Érdekességképp jegyzem meg: a magyarch-ot készítő XeonCpu is egy speciális és nagyon érdekes Linux disztribúcióra tért át, a NixOS-re, ami ilyen téren kiemelkedő és különutas megoldásokat ad.

Az immutable Linux disztribúció hátrányai

Oké, lehet, hogy meg lettél győzve az immutable disztribúciók használatáról. Vagy talán nem... Eddig csak a jót láttad és talán az írásból átment a lelkesedésem a téma iránt. Lássunk néhány bonyolultsági problémát, amelyek ezeknél az operációs rendszereknél jelentkeznek. Nemhiába fogalmaztam így: bonyolultsági problémát. Maga a Windowsról áttérés Linuxra egy kemény tanulási folyamat, de egyes immutable Linux disztribúció használata újabb, és talán meredekebb tanulási görbét vár el.

Az első dolog természetesen a tanulási görbe. A Linux tanulása önmagában kissé nehézkes lehet. Még ha már jártas is vagy a Linux rendszerekkel, akkor is meg kell tanulni azokat a dolgokat, amelyeket a immutable disztribúciók másképp csinálnak. Ezenkívül finomítania kell a munkafolyamatokon, ami kezdetben kissé időigényes lehet. És ha Windows vagy macOS rendszerről érkezik az ember? Ez ijesztő élmény lehet.

Azok a frissítések, amelyek nem az aktív rendszeren, és csak újraindítás után érvényesülnek, megbízhatóak lehetnek. Ez azonban azt is jelenti, hogy újra kell indítani a rendszert, hogy megkapja a frissített csomagokat. Néhány disztribúció azonban lehetővé teszi a frissítések alkalmazását az élő rendszerre. Egy másik probléma, amellyel szembe kell nézni, a több rendszer közötti zsonglőrködés, mivel ezek a disztribúciók külön indítható rendszert hoznak létre a frissítésekhez.

A szoftver telepítése sem működik ugyanúgy, mint a hagyományos csomagkezelők használatánál. Ha olyan alkalmazásokat szeretnél telepíteni, amelyek nem érhetők el Flatpaks vagy más univerzális formátumban, akkor egy teljesen új disztribúciót kell telepítenie egy tárolóba csak egyetlen alkalmazás használatához. Ez nem hangzik olyan jól. Ez a probléma nagyon komoly, mert bár egyre több és jobb a kinálat, nem feltétlen lesz meg minden az adott csomagolási módban.

Ráadásul nem írhatsz semmit a rendszerbe. Ez magában foglalja a konfigurációs fájlok szerkesztését is. De mi van akkor, ha erre szükséged van? Akkor sem teheted meg. Egyes disztribúciók lehetővé teszik az írást a /etc könyvtárban, de nagyjából ennyi. Van, ami teljesen más könyvtár struktúrát használ, mint a többi Linux disztribúció, így egy előre lefordított, futtatható program el sem fog indulni, mert mindent a szabvány helyen fog keresni. Arról ne is beszéljünk, ha egy programot forrásból kellene lefordítani. Így az első logikus lépés a programjaid összeírása és ellenőrzése, hogy az adott immutable Linux disztribúció tartalmazza, avagy nem.

4 immutable Linux disztribúció a kezdéshez

Ha szeretnél egy immutable Linux disztribúciót kipróbálni, akkor ezeket nézd meg legelösször.

NixOS

A NixOS egy teljesen reprodukálható, immutable Linux disztró. Olyan konfigurációs fájlt használ, amely tartalmazza a rendszer felépítéséhez szükséges összes szolgáltatást, opciót, csomagot, partícióelrendezést és egyéb dolgokat. Ezt a konfigurációs fájlt ezután tetszőleges számú NixOS rendszer létrehozására használható, és minden alkalommal pontosan ugyanazt kapjuk. Ez szépen hangzik, de tudni kell: ez egy nagyon más elveket, könyvtárszerkezetet és minden mást valló Linux disztribúció. Ennél komolyan kell venni a program kinálat ellenőrzését, és a tanulási görbét.

Vanilla OS

Mi lenne, ha több Linux disztribúciót futtathatnál egyetlen rendszeren? Ezt a Vanilla OS megoldja. Különféle alrendszereket érhetsz el, mint például az Arch, a Fedora, az openSUSE vagy az Alpine, hogy telepítsd az adott disztribúciókban elérhető szoftvereket. Ehhez használhatod az adott disztribúció tárolóját. Minden alkalommal, amikor elindítjuk a szoftvert, a rendszer futtatja a tárolót, és megnyitja az alkalmazást. Jól hangzik? Szerintem igen.

Fedora Silverblue

Ez a Fedora Workstation immutable spinje. Az élmény nagy része megegyezik a normál Fedora verzióval. Minden új Fedora-kiadáshoz kiadnak egy új Silverblue-kiadást is . Ez a verzió alkalmasabb konténer alapú operációs rendszerben történő tesztelésre és fejlesztésre.

blendOS

A blendOS egy Arch-alapú disztribúció, amely több csomagkezelőt is támogat, mint például az APT, a Pacman, a DNF, a YUM és a Yay. Használhatja a saját csomagkezelőjét, a blendet vagy a konténerrendszerek használatában jól ismert egyéb csomagokat.