SELinux vs. AppArmor: Srovnání pro linuxové servery

15 min čtení - 21. května 2026

hero section cover
Obsah
  • SELinux vs. AppArmor: Který rámec MAC vyhovuje vašemu serveru?
  • Jak funguje SELinux
  • Jak funguje AppArmor
  • Porovnání vedle sebe
  • Základní konfigurace
  • Který z nich byste měli použít?
Sdílet

Srovnání systémů SELinux a AppArmor pro zabezpečení serverů Linux: Zjistěte, jak jednotlivé rámce MAC fungují, jaké jsou mezi nimi klíčové rozdíly a který z nich zvolit pro své nastavení hostingu.

SELinux vs. AppArmor: Který rámec MAC vyhovuje vašemu serveru?

SELinux i AppArmor vynucují v systému Linux povinnou kontrolu přístupu (MAC) a omezují, co mohou procesy dělat, i když získají oprávnění root. Rozdíl spočívá v tom, jak to dělají. SELinux přiřazuje každému souboru a procesu trvalé štítky. AppArmor místo toho používá pravidla pro cesty k souborům. Tato jedna volba designu určuje vše ostatní: složitost, úroveň zabezpečení a to, která distribuce dodává který nástroj ve výchozím nastavení.


 

Jak funguje SELinux

SELinux byl původně vyvinut agenturou NSA a je standardně dodáván se systémy RHEL, CentOS, Fedora a Rocky Linux. Označuje každý objekt v systému, včetně souborů, procesů, portů a soketů, bezpečnostním kontextem ve formátu user:role:type:level. Pole type pole vykonává většinu práce prostřednictvím mechanismu zvaného Type Enforcement (TE).

Například webový server Apache běží jako httpd_t. Soubory webového obsahu mají jiný typ. Pokud žádné pravidlo politiky výslovně nepovoluje httpd_t přístup k tomuto typu obsahu, je požadavek zamítnut. Jedná se o model „zamítnutí jako výchozí“. Nic není povoleno, pokud pravidlo nestanoví jinak.

SELinux také podporuje víceúrovňové zabezpečení (MLS) a vícekategoriové zabezpečení (MCS), které klasifikují data podle úrovně citlivosti a podle toho omezují přístup. Právě MCS dává SELinuxu jeho silnou izolaci kontejnerů, která udržuje kontejnery oddělené od sebe navzájem i od hostitele. To je důležité v prostředích Kubernetes a OpenShift, kde si pody sdílejí uzel.

Nevýhodou je složitost. SELinux má strmou křivku učení. Řešení problémů s odepřením přístupu znamená čtení auditních protokolů, porozumění bezpečnostním kontextům a někdy i generování vlastních modulů zásad pomocí audit2allow. Pro týmy bez specializovaných bezpečnostních pracovníků představuje tato zátěž reálnou překážku.

Jak funguje AppArmor

AppArmor používá odlišný přístup. Namísto označování objektů přiřazuje aplikacím bezpečnostní profily na základě jejich cest k souborům. Profil pro /usr/sbin/nginx definuje, které adresáře může Nginx číst, ke kterým portům se může připojit a jaké funkce potřebuje. Profily jsou soubory ve formátu prostého textu uložené v /etc/apparmor.d/.

AppArmor je výchozí rámec MAC v Ubuntu, Debianu a SUSE. Je součástí jádra Linuxu od verze 2.6.36. Aplikace bez profilu se vracejí ke standardním oprávněním DAC v Linuxu.

AppArmor běží v každém profilu ve dvou režimech: Enforce (blokuje a zaznamenává porušení) a Complain (zaznamenává porušení bez blokování). Díky tomu je praktické zavádět nové profily postupně. Začněte v režimu Complain, zkontrolujte protokoly, zpřísněte profil a poté přepněte do režimu Enforce.

Nástroje jako aa-genprof a aa-logprof pomáhají vytvářet profily interaktivně tím, že sledují, co aplikace dělá, a generují pravidla na základě jejího chování. Ve srovnání s moduly politik SELinuxu je syntaxe mnohem snáze čitelná a ručně upravitelná.

Nevýhodou je, že pravidla založená na cestách nesledují soubory při jejich přesunu. Tvrdý odkaz nebo bind mount mohou teoreticky obejít omezení založené na cestách. AppArmor také postrádá nativní podporu MLS/MCS, takže může izolovat kontejnery od hostitele, ale ne od sebe navzájem, jak to dělá SELinux.

Porovnání vedle sebe

FunkceSELinuxAppArmor
Model řízení přístupuNa základě štítků (bezpečnostní kontexty)Založený na cestě (umístění v souborovém systému)
Výchozí nastaveníVše zakázatPovolit vše (omezení podle profilu)
Přesun souborůŠtítky následují souborZabezpečení vázané na cestu
Podpora MLS/MCSAnoNe
Izolace kontejnerůMezi kontejnery a mezi kontejnerem a hostitelemPouze mezi kontejnery a hostitelem
Formát zásadKompilované binární modulyTextové soubory čitelné pro člověka
Výchozí distribuceRHEL, Fedora, CentOS, Rocky LinuxUbuntu, Debian, SUSE
Náročnost na osvojeníStrmáStřední

Základní konfigurace

SELinux

Zkontrolujte aktuální stav:

sestatus
getenforce

Spusťte v režimu Permissive, aby se zaznamenávaly porušení bez blokování:

setenforce 0

Pro většinu serverů použijte politiku „targeted“. Omezuje vysoce rizikové služby, jako jsou webové servery a databáze, zatímco vše ostatní ponechává bez omezení. Nastavte ji jako trvalou v /etc/selinux/config:

SELINUX=enforcing
SELINUXTYPE=targeted

Zkontrolujte bezpečnostní kontexty souborů a procesů:

ls -Z /var/www/html
ps -eZ | grep httpd

Pokud služba používá nestandardní port, aktualizujte zásadu:

semanage port -a -t ssh_port_t -p tcp 9999

Pro vlastní aplikace, které generují odmítnutí přístupu, vytvořte modul zásad z protokolu auditu:

ausearch -m avc -ts recent | audit2allow -M my_custom_policy
semodule -i my_custom_policy.pp

AppArmor

Zkontrolujte, které profily jsou načteny:

sudo aa-status

Pokud potřebujete nástroje pro správu profilů, nainstalujte balíček nástrojů:

sudo apt install apparmor-utils

Vygenerujte profil interaktivně během běhu aplikace:

sudo aa-genprof /path/to/binary

Vylepšete profil prohledáním protokolů o porušeních:

sudo aa-logprof

Přepněte profil mezi režimy:

sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx

Který z nich byste měli použít?

Praktická odpověď pro většinu správců: použijte to, co dodává vaše distribuce. RHEL, CentOS, Fedora a Rocky Linux jsou dodávány s SELinuxem. Ubuntu, Debian a SUSE jsou dodávány s AppArmor. Oba frameworky mají vyspělé nástroje a zásady pro své nativní platformy. Přechod na jinou než výchozí možnost v jakékoli distribuci přidává práci a snižuje podporu komunity.

Kromě toho se řiďte svými požadavky:

  • Zvolte SELinux, pokud potřebujete dodržovat standardy PCI DSS, HIPAA nebo DISA-STIG. Pokud provozujete kontejnerové úlohy s více nájemci na Kubernetes nebo OpenShift. Pokud potřebujete izolaci mezi kontejnery na sdílených hostech. Pokud vaše prostředí zpracovává utajované nebo citlivé údaje.
  • Zvolte AppArmor, pokud používáte Ubuntu nebo Debian a chcete ochranu MAC bez náročného zavádění. Pokud vaše konfigurace představuje jeden server nebo malý cluster provozující standardní webové služby. Pokud je pro vás důležitější rychlé nasazení než detailní kontrola na úrovni štítků.

Oba frameworky přidávají minimální režijní náklady při běhu. SELinux ukládá rozhodnutí o přístupu do své Access Vector Cache. Načítání politik AppArmoru může způsobit malé zpoždění při bootování, ale má zanedbatelný dopad při běhu. Pro většinu hostingových úloh nebude ani jeden z nich představovat úzké hrdlo.

Pokud potřebujete spolehlivý hostingový základ s plným root přístupem pro konfiguraci kteréhokoli z těchto frameworků, dedikované servery nebo VPS od FDC vám poskytnou kontrolu nad nastavením SELinuxu nebo AppArmor tak, jak to vaše prostředí vyžaduje.

Blog

Tento týden byly představeny

Další články
Zombie procesy v Linuxu: Zkušební procesy: Najít, odstranit, zabránit

Zombie procesy v Linuxu: Zkušební procesy: Najít, odstranit, zabránit

Naučte se, jak v systému Linux identifikovat zombie procesy, odstraňovat je a předcházet jim. Příkazy, opravy kódu a tipy pro monitorování pro správce serverů.

15 min čtení - 19. května 2026

Kontrolní seznam zabezpečení linuxových serverů

15 min čtení - 8. května 2026

Další články
background image

Máte dotazy nebo potřebujete vlastní řešení?

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení