Pomalu, ale jistě, se chystá vydání další Fedory, tentokrát s číslem 23. A jako každé nové vydaní, i toto bude obsahovat mnoho novinek a vylepšení. Tento článek popisuje jedno z nich nazvané - SELinux Policy Store Migration.

Připomeňme si, co je SELinux

SELinux je jednou z implementací tzv. povinného řízení přístupu (MAC) v systému, kde SELinux politika definuje sadu pravidel pro interakci mezi subjekty (proces, uživatel) a objekty (soubory, adresáře, zařízení). Tj. SELinux je technologii pro rozšířenou izolaci procesů. Každý subjekt, každý objekt má v rámci politiky definován svůj štítek a jednotlivá pravidla jsou vztažena k těmto štítkům.

Zmíněná politika je sestavována z pravidel pro jednotlivé služby prostřednictvím SELinuxových nástrojů a následně jimi zavedena do kernelu a kernelem i vynucována. Soubory potřebné k sestaveni politiky nazýváme moduly a nacházejí se v tzv. úložišti modulů.

Více ze dozvíte například na nebo ve Fedora dokumentaci https://docs.fedoraproject.org/en-US/Fedora/22/html/SELinux_Users_and_Administrators_Guide/index.html

Co je nového?

Nová Fedora bude obsahovat aktualizované nástroje pro správu SELinuxových politik - release 2015-02-02 https://github.com/SELinuxProject/selinux/wiki/Releases. Release obsahuje nové verze balíků libsepol, libselinux, libsemanage, policycoreutils a checkpolicy.

Tato verze, mimo oprav chyb, přináší i změnu úložiště pro moduly, ze kterých se politiky staví https://mgrepl.wordpress.com/2015/06/14/selinux-insides-part1-policy-module-store-policy-modules-and-kernel-policy/. Dále přidává podporu pro nový jazyk pro definici modulů - CIL https://github.com/SELinuxProject/cil/wiki - a celkově zrychluje práci s politikou, její vytvoření, načtení apod.

Nové uložiště /var/lib/selinux

SELinuxové nástroje ve verzích menších než 2.4, používaly pro ukládání modulů podadresář v /etc/selinux. Ve verzi 2.4 došlo ke změně a jako úložiště se používá adresář /var/lib/selinux. Tato změna jde ruku v ruku s moderním trendem, kdy v adresáři /etc by měl změny dělat pouze admin, zatímco nástroje používají adresář /var. Navíc by to mělo umožnit připojovat adresář /etc v režimu pouze pro čtení.

Pro uživatele se prakticky nic nemění, protože o manipulaci s moduly a o vytváření samotné politiky se starají správci balíku a také nástroje pro manipulaci s politikami.

Popis adresářové struktury

Ve starších verzích byly všechny moduly použité pro sestavení politiky uložené jako soubory s koncovkou .pp v adresáři /etc/selinux/targeted/modules/active/modules.

Ve verzi 2.4 je pro uložení modulů použita následující struktura:

/var/lib/selinux/targeted/active/modules/
 100/                   [a]
     ssh/               [b]
             cil            [c]
         hll               
         lang_ext          
 400/                   [a]
 disabled/              [d]
         unconfined
  • [a] Priorita Moduly v novém úložišti mají svoji prioritu. Pokud je v úložišti více modulů se stejným jménem a různou prioritou, použije se modul s nejvyšší prioritou. To umožňuje administrátorům nebo tvůrcům balíků jednoduše přepisovat systémové moduly vlastními moduly, které jsou upraveny pro konkrétní použití. Výchozí priorita pro distribuční moduly je 100.
  • [b] Název modulu Název modulu v novém úložišti se odvozuje od názvu souboru.
  • [c] Soubory modulů
    • cil - Zdrojový kód modulu v jazyce CIL.
    • hll - Zkompilovaný kód modulu pomocí HLL překladače.
    • lang_ext - koncovka pro použitý HLL překladač.
  • [d] Zakázané moduly Moduly uvedené v tomto adresáři jsou zakázané a nepoužívají se při sestavení politiky.

Závěr

Představili jsme si jednu ze změn v nadcházející Fedoře 23 https://fedoraproject.org/wiki/Changes/SELinuxPolicyStoreMigration, která přináší řadu zlepšení a zrychlení operací při práci se SELinuxovou politikou. Pokud se chcete dozvědět víc, neváhejte se ptát na mailing listu selinux@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/selinux (nebo i jinde).