17 Sicherheitskonzepte: AppArmor und SELinux

17.1 Einführung

Linux bietet verschiedene Sicherheitsmechanismen, um die Integrität und Vertraulichkeit von Systemen und Daten zu gewährleisten. Zwei der am häufigsten verwendeten Sicherheitsframeworks sind AppArmor und SELinux. Beide Systeme bieten erweiterte Zugriffskontrollen und Sicherheitsrichtlinien, die über die klassischen UNIX-Dateirechte hinausgehen.

17.2 AppArmor

AppArmor (Application Armor) ist ein Linux-Sicherheitsmodul, das auf der Grundlage von Programmrichtlinien den Zugriff auf Ressourcen beschränkt. Es verwendet sogenannte Profile, um festzulegen, welche Dateien, Netzwerke und Systemaufrufe eine Anwendung nutzen darf.

17.2.1 Grundlagen

17.2.2 Installation und Konfiguration

17.2.2.1 Installation

Befehl:

sudo apt-get install apparmor apparmor-utils

17.2.2.2 Profile erstellen und verwalten

Befehl:

sudo aa-genprof /usr/bin/example

Erklärung: Dieser Befehl startet einen Assistenten, der ein neues AppArmor-Profil für /usr/bin/example erstellt.

17.2.2.3 Profile laden

Befehl:

sudo apparmor_parser -r /etc/apparmor.d/usr.bin.example

Erklärung: Dieser Befehl lädt das Profil für /usr/bin/example.

17.2.2.4 Profile in den Durchsetzungsmodus versetzen

Befehl:

sudo aa-enforce /usr/bin/example

Erklärung: Dieser Befehl versetzt das Profil für /usr/bin/example in den Durchsetzungsmodus.

17.2.3 Beispielprofil

Datei: /etc/apparmor.d/usr.bin.example

#include <tunables/global>

/usr/bin/example {
  #include <abstractions/base>
  
  /usr/bin/example r,
  /etc/example/** r,
  /var/log/example/** rw,
}

17.3 SELinux

SELinux (Security-Enhanced Linux) ist ein Sicherheitsmodul, das Zugriffskontrollen auf der Basis von Sicherheitsrichtlinien bietet. Es verwendet ein komplexeres und flexibleres Modell als AppArmor.

17.3.1 Grundlagen

17.3.2 Installation und Konfiguration

17.3.2.1 Installation

Befehl:

sudo apt-get install selinux-basics selinux-policy-default auditd

17.3.2.2 SELinux aktivieren

Befehl:

sudo selinux-activate
sudo reboot

17.3.2.3 Modi ändern

Befehl:

sudo setenforce Enforcing

Erklärung: Dieser Befehl versetzt SELinux in den Durchsetzungsmodus.

17.3.3 Sicherheitskontexte anzeigen

Befehl:

ls -Z /path/to/file

Ausgabe:

-rw-r--r--. user user unconfined_u:object_r:user_home_t:s0 file.txt

17.3.4 Sicherheitsrichtlinien verwalten

17.3.4.1 Richtlinie für eine Datei ändern

Befehl:

sudo chcon -t httpd_sys_content_t /var/www/html/index.html

Erklärung: Dieser Befehl ändert den Sicherheitskontext der Datei /var/www/html/index.html in httpd_sys_content_t.

17.3.5 Beispiel für eine Sicherheitsrichtlinie

17.3.5.1 Datei: /etc/selinux/targeted/contexts/files/file_contexts

/var/www/html(/.*)?    system_u:object_r:httpd_sys_content_t:s0

Erklärung: Diese Richtlinie weist allen Dateien und Verzeichnissen unter /var/www/html den Sicherheitskontext httpd_sys_content_t zu.

17.4 Vergleich AppArmor und SELinux

Beide Sicherheitsmodule bieten erweiterte Zugriffskontrollen und helfen, Systeme vor unbefugtem Zugriff und potenziellen Sicherheitslücken zu schützen. Die Wahl zwischen AppArmor und SELinux hängt von den spezifischen Anforderungen und der Systemumgebung ab.

Im nächsten Kapitel wird die sichere Fernzugriffskonfiguration mit SSH behandelt.