SELinux vs AppArmor: vergelijking voor Linux-servers
15 min lezen - 21 mei 2026

SELinux en AppArmor vergelijken voor Linux serverbeveiliging: Leer hoe elk MAC-framework werkt, wat de belangrijkste verschillen zijn en welke u moet kiezen voor uw hostinginstallatie.
SELinux versus AppArmor: welk MAC-framework past bij uw server?
SELinux en AppArmor handhaven beide Mandatory Access Control (MAC) op Linux, waardoor wordt beperkt wat processen kunnen doen, zelfs als ze root-rechten verkrijgen. Het verschil zit hem in de manier waarop ze dit doen. SELinux wijst permanente labels toe aan elk bestand en proces. AppArmor maakt in plaats daarvan gebruik van regels voor bestandspaden. Die ene ontwerpkeuze bepaalt al het andere: complexiteit, beveiligingsdiepte en welke distributie welke tool standaard meelevert.
Hoe SELinux werkt
SELinux is oorspronkelijk ontwikkeld door de NSA en wordt standaard meegeleverd met RHEL, CentOS, Fedora en Rocky Linux. Het labelt elk object op het systeem, inclusief bestanden, processen, poorten en sockets, met een beveiligingscontext in de indeling user:role:type:level. Het type veld doet het zware werk via een mechanisme dat Type Enforcement (TE) heet.
De Apache-webserver draait bijvoorbeeld als httpd_t. Webinhoudsbestanden hebben een ander type. Als geen enkele beleidsregel expliciet httpd_t toegang tot dat inhoudstype toestaat, wordt het verzoek geweigerd. Dit is een 'deny-by-default'-model. Niets is toegestaan, tenzij een regel anders bepaalt.
SELinux ondersteunt ook Multi-Level Security (MLS) en Multi-Category Security (MCS), die gegevens classificeren op basis van gevoeligheidsniveau en de toegang dienovereenkomstig beperken. MCS is wat SELinux zijn sterke containerisolatie geeft, waardoor containers van elkaar en van de host gescheiden blijven. Dit is van belang in Kubernetes- en OpenShift-omgevingen waar pods een node delen.
De keerzijde is de complexiteit. SELinux heeft een steile leercurve. Het oplossen van problemen met geweigerde toegang betekent het lezen van auditlogs, het begrijpen van beveiligingscontexten en soms het genereren van aangepaste beleidsmodules met audit2allow. Voor teams zonder toegewijd beveiligingspersoneel is die overhead reëel.
Hoe AppArmor werkt
AppArmor hanteert een andere aanpak. In plaats van objecten te labelen, koppelt het beveiligingsprofielen aan applicaties op basis van hun bestandspaden. Een profiel voor /usr/sbin/nginx bepaalt welke mappen Nginx kan lezen, aan welke poorten het zich kan binden en welke mogelijkheden het nodig heeft. Profielen zijn platte tekstbestanden die zijn opgeslagen in /etc/apparmor.d/.
AppArmor is het standaard MAC-framework op Ubuntu, Debian en SUSE. Het maakt sinds versie 2.6.36 deel uit van de Linux-kernel. Toepassingen zonder profiel vallen terug op standaard Linux DAC-machtigingen.
AppArmor draait per profiel in twee modi: Enforce (blokkeert en registreert overtredingen) en Complain (registreert overtredingen zonder te blokkeren). Dit maakt het praktisch om nieuwe profielen geleidelijk uit te rollen. Begin in de Complain-modus, bekijk de logbestanden, verscherp het profiel en schakel vervolgens over naar Enforce.
Tools zoals aa-genprof en aa-logprof helpen bij het interactief opstellen van profielen door te kijken wat een applicatie doet en regels te genereren op basis van dat gedrag. In vergelijking met SELinux-beleidsmodules is de syntaxis veel gemakkelijker te lezen en met de hand te bewerken.
Het nadeel is dat op paden gebaseerde regels bestanden niet volgen wanneer ze worden verplaatst. Een harde koppeling of bind-mount kan in theorie een op paden gebaseerde beperking omzeilen. AppArmor mist ook native MLS/MCS-ondersteuning, dus het kan containers isoleren van de host, maar niet van elkaar zoals SELinux dat doet.
Vergelijking
| Functie | SELinux | AppArmor |
|---|---|---|
| Toegangscontrolemodel | Op labels gebaseerd (beveiligingscontexten) | Op pad gebaseerd (bestandssysteemlocaties) |
| Standaardinstelling | Alles weigeren | Alles toestaan (beperkingen per profiel) |
| Bestandsverplaatsing | Labels volgen het bestand | Beveiliging gekoppeld aan het pad |
| MLS/MCS-ondersteuning | Ja | Nee |
| Containerisolatie | Van container naar container en van container naar host | Alleen container-naar-host |
| Beleidsformaat | Gecompileerde binaire modules | Tekstbestanden die door mensen kunnen worden gelezen |
| Standaarddistributies | RHEL, Fedora, CentOS, Rocky Linux | Ubuntu, Debian, SUSE |
| Leercurve | Steil | Matig |
Basisconfiguratie
SELinux
Controleer de huidige status:
sestatus
getenforceStart in de Permissive-modus om overtredingen te loggen zonder iets te blokkeren:
setenforce 0Gebruik het "targeted"-beleid voor de meeste servers. Dit beperkt risicovolle diensten zoals webservers en databases, terwijl al het andere onbeperkt blijft. Maak dit permanent in /etc/selinux/config:
SELINUX=enforcing
SELINUXTYPE=targetedControleer de beveiligingscontexten van bestanden en processen:
ls -Z /var/www/html
ps -eZ | grep httpdAls een service een niet-standaardpoort gebruikt, werk dan het beleid bij:
semanage port -a -t ssh_port_t -p tcp 9999Maak voor aangepaste applicaties die toegangsweigeringen genereren een beleidsmodule aan op basis van het auditlogboek:
ausearch -m avc -ts recent | audit2allow -M my_custom_policy
semodule -i my_custom_policy.ppAppArmor
Controleer welke profielen zijn geladen:
sudo aa-statusInstalleer het hulpprogrammapakket als u tools voor profielbeheer nodig hebt:
sudo apt install apparmor-utilsGenereer een profiel interactief terwijl de applicatie draait:
sudo aa-genprof /path/to/binaryVerfijn het profiel door logboeken te scannen op overtredingen:
sudo aa-logprofSchakel een profiel tussen modi:
sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
sudo aa-complain /etc/apparmor.d/usr.sbin.nginxWelke moet u gebruiken?
Het praktische antwoord voor de meeste beheerders: gebruik wat je distro meelevert. RHEL, CentOS, Fedora en Rocky Linux worden geleverd met SELinux. Ubuntu, Debian en SUSE worden geleverd met AppArmor. Beide frameworks hebben volwassen tooling en beleid voor hun eigen platforms. Overstappen naar de niet-standaardoptie op een distro zorgt voor extra werk en vermindert de ondersteuning door de community.
Verder laat je je eisen de doorslag geven:
- Kies SELinux als je moet voldoen aan PCI DSS, HIPAA of DISA-STIG. Als je multi-tenant containerworkloads draait op Kubernetes of OpenShift. Als je container-naar-container-isolatie nodig hebt op gedeelde hosts. Als je omgeving vertrouwelijke of gevoelige gegevens verwerkt.
- Kies AppArmor als u Ubuntu of Debian draait en MAC-bescherming wilt zonder een steile leercurve. Als uw opstelling bestaat uit een enkele server of een klein cluster waarop standaardwebservices draaien. Als snelle implementatie belangrijker is dan gedetailleerde controle op labelniveau.
Beide frameworks voegen minimale runtime-overhead toe. SELinux slaat toegangsbeslissingen op in zijn Access Vector Cache. Het laden van het beleid van AppArmor kan een kleine vertraging bij het opstarten veroorzaken, maar heeft een verwaarloosbare impact tijdens de runtime. Voor de meeste hosting-workloads zal geen van beide een bottleneck vormen.
Als u een betrouwbare hostingbasis nodig hebt met volledige root-toegang om een van beide frameworks te configureren, bieden de dedicated servers of VPS'en van FDC u de controle om SELinux of AppArmor in te stellen op de manier die uw omgeving vereist.

Zombieprocessen in Linux: Vinden, Verwijderen, Voorkomen
Leer hoe je zombieprocessen in Linux kunt identificeren, verwijderen en voorkomen. Commando's, codefixes en monitoringtips voor serverbeheerders.
15 min lezen - 19 mei 2026
Linux server hardening checklist
15 min lezen - 8 mei 2026

Hebt u vragen of wilt u een oplossing op maat?
Flexibele opties
Wereldwijd bereik
Directe inzet
Flexibele opties
Wereldwijd bereik
Directe inzet