Existuje několik různých způsobů, jak může SELinux fungovat. To je definováno zásadami SELinuxu. V této příručce se dozvíte více o zásadách SELinuxu a o tom, jak nastavit zásady v SELinuxu.
Přehled zásad SELinux
Pojďme se rychle seznámit se SELinuxem a jeho zásadami. SELinux je zkratka pro „Security-Enhanced Linux.„Obsahuje řadu bezpečnostních oprav jádra Linuxu. SELinux byl původně vyvinut Národní bezpečnostní agenturou (NSA) a do vývojové komunity open-source byl vydán v roce 2000 pod licencí GPL. To bylo sloučeno s hlavním jádrem Linuxu v roce 2003.
SELinux poskytuje spíše MAC (povinnou kontrolu přístupu) než výchozí DAC (volitelnou kontrolu přístupu). To umožňuje implementaci některých zásad zabezpečení, které by nebylo možné implementovat jinak.
Zásady SELinux jsou sady pravidel, kterými se řídí bezpečnostní modul SELinux. Zásady definují typy pro objekty souborů a domény pro procesy. Role se používají k omezení přístupu k doménám. Identity uživatelů určují, kterých rolí lze dosáhnout.
K dispozici jsou dvě zásady SELinux:
- Cílené: Výchozí zásada. Implementuje řízení přístupu do cílených procesů. Procesy běží v omezené doméně, kde má proces omezený přístup k souborům. Pokud je omezen omezený proces, poškození je zmírněno. V případě služeb se do těchto domén umisťují pouze konkrétní služby.
- MLS: Znamená víceúrovňové zabezpečení. Podívejte se na dokumentaci Red Hat k zásadám SELinux MLS.
Procesy, které nejsou cílené, budou spuštěny v neomezené doméně. Procesy běžící v neomezených doménách mají téměř úplný přístup. Pokud je takový proces ohrožen, SELinux nenabízí žádné zmírnění. Útočník může získat přístup k celému systému a zdrojům. Pravidla DAC však stále platí pro neomezené domény.
Následuje krátký seznam příkladů nedefinovaných domén:
- doména initrc_t: programy init
- doména kernel_t: procesy jádra
- unconfined_t doména: uživatelé přihlášení do systému Linux
Změna zásad SELinux
Následující příklady jsou prováděny v CentOS 8. Všechny příkazy v tomto článku jsou spouštěny jako uživatel root. U ostatních distribucí si prosím přečtěte příslušný návod, jak povolit SELinux.
Chcete-li změnit zásadu v SELinuxu, začněte kontrolou stavu SELinuxu. Výchozí stav by měl být povolen SELinux v režimu „Vynucování“ s „cílenou“ zásadou.
Chcete-li změnit zásady SELinux, otevřete konfigurační soubor SELinux ve svém oblíbeném textovém editoru.
Naším cílem je proměnná „SELINUXTYPE“, která definuje zásadu SELinux. Jak vidíte, výchozí hodnota je „cílená.“
Všechny kroky předvedené v tomto příkladu jsou prováděny v CentOS 8. V případě CentOS se zásady MLS nenainstalují ve výchozím nastavení. Je pravděpodobné, že tomu tak bude i v jiných distribucích. Zde se dozvíte, jak konfigurovat SELinux na Ubuntu. Nezapomeňte nejprve nainstalovat program. V případě Ubuntu, CentOS, openSUSE, Fedory, Debian a dalších je název balíčku „selinux-policy-mls.“
$ dnf nainstalovat selinux-policy-mls
V tomto případě přepneme zásady na MLS. Podle toho změňte hodnotu proměnné.
Uložte soubor a ukončete editor. Chcete-li tyto změny provést, musíte restartovat systém.
$ restartOvěřte změnu vydáním následujícího.
$ sestatusZměna režimů SELinux
SELinux může pracovat ve třech různých režimech. Tyto režimy určují, jak je zásada vynucována.
- Vynuceno: jakákoli akce proti zásadám je blokována a uvedena v protokolu auditu.
- Přípustný: jakákoli akce proti zásadám se vykazuje pouze v protokolu auditu.
- Zakázáno: SELinux je zakázán.
Chcete-li dočasně změnit režim v SELinuxu, použijte příkaz setenforce. Pokud se systém restartuje, vrátí se na výchozí nastavení.
$ setenforce Prosazování$ setenforced Permisivní
Chcete-li trvale změnit režim v SELinuxu, musíte vyladit konfigurační soubor SELinux.
Uložte a zavřete editor. Restartujte systém, aby se změny projevily.
Změnu můžete ověřit pomocí příkazu sestatus.
Závěr
SELinux je mocný mechanismus pro vynucování bezpečnosti. Doufejme, že vám tento průvodce pomohl naučit se konfigurovat a spravovat chování SELinuxu.
Šťastný výpočetní výkon!