SELinux vs AppArmor: összehasonlítás Linux szerverekhez

15 perc olvasás - 2026. május 21.

hero section cover
Tartalomjegyzék
  • SELinux vs AppArmor: Melyik MAC-keretrendszer illik a szerveréhez?
  • Hogyan működik a SELinux
  • Hogyan működik az AppArmor
  • Egymás melletti összehasonlítás
  • Alapkonfiguráció
  • Melyiket érdemes használni?
Megosztás

A SELinux és az AppArmor összehasonlítása a Linux-kiszolgáló biztonságához: Ismerje meg az egyes MAC-keretek működését, a legfontosabb különbségeket, és hogy melyiket válassza a tárhelybeállításhoz.

SELinux vs AppArmor: Melyik MAC-keretrendszer illik a szerveréhez?

Az SELinux és az AppArmor egyaránt érvényesíti a kötelező hozzáférés-vezérlést (MAC) Linuxon, korlátozva a folyamatok tevékenységét, még akkor is, ha root jogosultságot szereznek. A különbség abban rejlik, hogy hogyan teszik ezt. Az SELinux minden fájlhoz és folyamathoz állandó címkéket rendel. Az AppArmor helyette fájlútvonal-szabályokat használ. Ez az egy tervezési döntés határozza meg minden mást: a komplexitást, a biztonsági szintet, valamint azt, hogy melyik disztribúció melyik eszközt szállítja alapértelmezésként.


 

Hogyan működik a SELinux

A SELinux-ot eredetileg az NSA fejlesztette ki, és alapértelmezés szerint a RHEL, a CentOS, a Fedora és a Rocky Linux rendszerekben található meg. A rendszer minden objektumát, beleértve a fájlokat, folyamatokat, portokat és socketeket, egy biztonsági kontextussal címkézi a következő formátumban user:role:type:levelformátumú biztonsági kontextussal. A type mező végzi a nehéz munkát egy Type Enforcement (TE) nevű mechanizmuson keresztül.

Például az Apache webszerver httpd_t. A webes tartalomfájlok más típusúak. Ha nincs olyan szabály, amely kifejezetten engedélyezi httpd_t hozzáférést engedélyezne ahhoz a tartalomtípushoz, a kérés elutasításra kerül. Ez egy alapértelmezés szerint elutasító modell. Semmi sem engedélyezett, hacsak egy szabály másként nem rendelkezik.

A SELinux támogatja a többszintű biztonságot (MLS) és a többkategóriás biztonságot (MCS) is, amelyek az adatokat érzékenységi szintjük szerint osztályozzák, és ennek megfelelően korlátozzák a hozzáférést. Az MCS biztosítja a SELinux erős konténer-elkülönítését, amely a konténereket egymástól és a gazdagéptől is elválasztja. Ez fontos a Kubernetes és az OpenShift környezetekben, ahol a podok megosztanak egy csomópontot.

Ennek ára a komplexitás. A SELinux tanulási görbéje meredek. A hozzáférés-elutasítások hibaelhárítása az auditnaplók olvasását, a biztonsági kontextusok megértését, és néha egyéni szabálymodulok létrehozását jelenti audit2allow. A dedikált biztonsági személyzettel nem rendelkező csapatok számára ez a többletmunkaterhelés valós problémát jelent.

Hogyan működik az AppArmor

Az AppArmor más megközelítést alkalmaz. Az objektumok címkézése helyett biztonsági profilokat rendel az alkalmazásokhoz a fájlútvonalak alapján. Az /usr/sbin/nginx meghatározza, hogy az Nginx mely könyvtárakat olvashatja, mely portokhoz kapcsolódhat, és milyen képességekre van szüksége. A profilok egyszerű szöveges fájlok, amelyeket a /etc/apparmor.d/.

Az AppArmor az Ubuntu, a Debian és a SUSE alapértelmezett MAC-keretrendszere. A 2.6.36-os verzió óta része a Linux kernelnak. A profil nélküli alkalmazások a szabványos Linux DAC-jogosultságokra esnek vissza.

Az AppArmor profilonként két módban fut: Enforce (megszegéseket blokkol és naplózza) és Complain (megszegéseket naplózza blokkolás nélkül). Ez lehetővé teszi az új profilok fokozatos bevezetését. Kezdje Complain módban, vizsgálja át a naplókat, szigorítsa a profilt, majd váltson Enforce módra.

Olyan eszközök, mint aa-genprof és aa-logprof segítenek a profilok interaktív létrehozásában azáltal, hogy figyelik az alkalmazás működését, és a viselkedéséből szabályokat generálnak. A SELinux szabálymodulokhoz képest a szintaxis sokkal könnyebben olvasható és kézzel szerkeszthető.

A hátránya, hogy az elérési útvonalon alapuló szabályok nem követik a fájlokat, amikor azok áthelyeződnek. Egy kemény link vagy egy bind mount elméletileg megkerülheti az elérési útvonalon alapuló korlátozást. Az AppArmor nem támogatja natívan az MLS/MCS-t, így a konténereket elszigetelheti a gazdagéptől, de egymástól nem, ahogyan azt a SELinux teszi.

Egymás melletti összehasonlítás

FunkcióSELinuxAppArmor
Hozzáférés-vezérlési modellCímkealapú (biztonsági kontextusok)Útvonalalapú (fájlrendszer-helyek)
Alapértelmezett beállításMinden elutasításaMinden engedélyezése (profilonkénti korlátozások)
FájlmozgatásA címkék követik a fájltAz útvonalhoz kötött biztonság
MLS/MCS támogatásIgenNem
Konténer-elkülönítésKonténer-konténer és konténer-gazdagépCsak konténer-gazdagép
Házirend formátumFordított bináris modulokEmber által olvasható szöveges fájlok
Alapértelmezett disztribúciókRHEL, Fedora, CentOS, Rocky LinuxUbuntu, Debian, SUSE
Tanulási görbeMeredekKözepes

Alapkonfiguráció

SELinux

Ellenőrizze az aktuális állapotot:

sestatus
getenforce

Indítsa el Permissive módban, hogy a szabályszegéseket naplózza anélkül, hogy bármit is blokkolna:

setenforce 0

A legtöbb szerver esetében használja a „targeted” szabályzatot. Ez korlátozza a magas kockázatú szolgáltatásokat, mint például a webszerverek és az adatbázisok, míg minden mást korlátozás nélkül hagy. Állítsa be állandóként a /etc/selinux/config:

SELINUX=enforcing
SELINUXTYPE=targeted

Ellenőrizze a fájlok és folyamatok biztonsági kontextusait:

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

Ha egy szolgáltatás nem szabványos portot használ, frissítse a szabályzatot:

semanage port -a -t ssh_port_t -p tcp 9999

Az elutasításokat generáló egyéni alkalmazások esetében hozzon létre egy szabálymodult az ellenőrzési napló alapján:

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

AppArmor

Ellenőrizze, mely profilok vannak betöltve:

sudo aa-status

Telepítse a segédprogramcsomagot, ha profilkezelő eszközökre van szüksége:

sudo apt install apparmor-utils

Készítsen profilt interaktív módon az alkalmazás futása közben:

sudo aa-genprof /path/to/binary

Finomítsa a profilt a naplóban szereplő szabálysértések átvizsgálásával:

sudo aa-logprof

Váltson profilok között:

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

Melyiket érdemes használni?

A legtöbb rendszergazda számára a gyakorlati válasz: használja azt, amit a disztribúciója tartalmaz. Az RHEL, a CentOS, a Fedora és a Rocky Linux SELinux-szal érkezik. Az Ubuntu, a Debian és a SUSE AppArmor-ral érkezik. Mindkét keretrendszer rendelkezik kiforrott eszközökkel és szabályokkal a natív platformjaihoz. Bármely disztribúció esetében az alapértelmezettől eltérő opcióra való átállás plusz munkát jelent és csökkenti a közösségi támogatást.

Ezen túlmenően a követelményei alapján döntsön:

  • Válassza a SELinux-ot, ha meg kell felelnie a PCI DSS, HIPAA vagy DISA-STIG előírásoknak. Ha többbérlős konténeres munkaterheléseket futtat Kubernetesen vagy OpenShift-en. Ha konténer-konténer elszigetelésre van szüksége megosztott gazdagépeken. Ha környezete titkosított vagy érzékenységi szintű adatokat kezel.
  • Válassza az AppArmort, ha Ubuntu vagy Debian rendszert futtat, és MAC-védelmet szeretne hirtelen bevezetés nélkül. Ha a rendszer egy egyetlen szerver vagy kis klaszter, amely standard webszolgáltatásokat futtat. Ha a gyors telepítés fontosabb, mint a részletes, címke-szintű vezérlés.

Mindkét keretrendszer minimális futási terhelést jelent. A SELinux az Access Vector Cache-ben tárolja a hozzáférési döntéseket. Az AppArmor szabályzatainak betöltése kis késleltetést okozhat a rendszerindításkor, de futás közben elhanyagolható hatása van. A legtöbb hosting-terhelés esetében egyik sem jelent majd szűk keresztmetszetet.

Ha megbízható hosting alapra van szüksége, teljes root hozzáféréssel a keretrendszerek konfigurálásához, az FDC dedikált szerverei vagy VPS-ei biztosítják Önnek a szükséges ellenőrzést, hogy a környezete igényeinek megfelelően állítsa be a SELinux-ot vagy az AppArmort.

Blog

Kiemelt ezen a héten

További cikkek
Zombifolyamatok Linuxban: Megkeresés, eltávolítás, megelőzés

Zombifolyamatok Linuxban: Megkeresés, eltávolítás, megelőzés

Ismerje meg, hogyan azonosíthatja, távolíthatja el és akadályozhatja meg a zombi-folyamatokat Linuxban. Parancsok, kódjavítások és felügyeleti tippek szerveradminok számára.

15 perc olvasás - 2026. május 19.

Linux-kiszolgáló keményítésének ellenőrző listája

15 perc olvasás - 2026. május 8.

További cikkek
background image

Kérdése van, vagy egyedi megoldásra van szüksége?

icon

Rugalmas lehetőségek

icon

Globális elérés

icon

Azonnali telepítés

icon

Rugalmas lehetőségek

icon

Globális elérés

icon

Azonnali telepítés