Übersicht
semanage wird verwendet, um SELinux-Richtlinien dauerhaft zu ändern. Während `chcon` oder `restorecon` temporäre oder bestehende Richtlinien anwenden, definiert `semanage` neue Richtlinienregeln, die auch nach einem Systemneustart bestehen bleiben.
Hauptverwaltungsobjekte
Dies sind die wichtigsten SELinux-Richtlinienelemente, die mit semanage verwaltet werden können.
- Dateikontexte (File Contexts): Zuweisung von SELinux-Typen zu Dateipfaden und Verzeichnissen
- Netzwerkports (Network Ports): Zuweisung von SELinux-Typen zu bestimmten Ports
- SELinux Booleans: Schalter zum Aktivieren oder Deaktivieren bestimmter Verhaltensweisen in der SELinux-Richtlinie
- SELinux-Benutzerzuordnungen (User Mappings): Zuordnung von Linux-Benutzern zu SELinux-Benutzern
Wichtige Optionen
semanage verwaltet Richtlinien für verschiedene SELinux-Objekttypen. Hier werden gängige Optionen im Zusammenhang mit jedem Objekttyp erläutert.
Allgemeine Verwaltungsoptionen
Objekttypen
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`semanage` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Zeigt verschiedene Szenarien zur Verwaltung von SELinux-Richtlinien mit dem Befehl semanage.
Alle Dateikontextregeln auflisten
sudo semanage fcontext -l
Überprüft alle aktuell auf dem System definierten Dateikontext-Zuordnungsregeln.
Regeln für einen bestimmten Port auflisten
sudo semanage port -l | grep http
Listet die Portregeln auf, die für den HTTP-Dienst verwendet werden.
Benutzerdefinierten Dateikontext hinzufügen
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/my_app(/.*)?"
Fügt eine Regel hinzu, die das Verzeichnis /var/www/html/my_app und seine Unterdateien dem Typ httpd_sys_content_t zuweist. (Nach dem Hinzufügen ist restorecon erforderlich)
Benutzerdefinierten Port hinzufügen
sudo semanage port -a -t http_port_t -p tcp 8080
Fügt den TCP-Port 8080 dem Typ http_port_t hinzu, damit er von Webdiensten verwendet werden kann.
SELinux Boolean aktivieren
sudo semanage boolean -m --on httpd_can_network_connect
Aktiviert den Boolean httpd_can_network_connect, um dem Apache-Webserver zu erlauben, Netzwerkverbindungen zu initiieren.
Installation
semanage ist Teil des Pakets 'policycoreutils' oder eines ähnlichen Pakets auf den meisten Linux-Distributionen, die SELinux verwenden. Hier sind die Installationsmethoden für gängige Distributionen.
RHEL/CentOS/Fedora
sudo dnf install policycoreutils-python-utils
Installieren Sie das Paket 'policycoreutils-python-utils' mit dem DNF- oder YUM-Paketmanager.
Debian/Ubuntu
sudo apt install selinux-utils
Installieren Sie das Paket 'selinux-utils' mit dem APT-Paketmanager.
Tipps & Hinweise
Nützliche Tipps und zu beachtende Punkte bei der Verwaltung von SELinux-Richtlinien mit semanage.
Anwenden von Änderungen
Nachdem Sie Dateikontextregeln geändert haben, müssen Sie unbedingt den Befehl 'restorecon' verwenden, um die geänderten Kontexte auf das Dateisystem anzuwenden.
- `sudo restorecon -Rv /pfad/zum/verzeichnis`
Problembehandlung und Richtlinienerstellung
Wenn SELinux-bezogene Probleme auftreten, überprüfen Sie die Datei `/var/log/audit/audit.log`, um blockierte Aktionen zu identifizieren, und verwenden Sie das Tool `audit2allow`, um die erforderlichen Richtlinienregeln zu erstellen.
- `sudo tail -f /var/log/audit/audit.log` (Echtzeit-Protokollprüfung)
- `sudo audit2allow -a -M mypolicy` (Erstellt 'mypolicy.te' und 'mypolicy.pp' basierend auf den Protokollen von Richtlinienverstößen)
- `sudo semodule -i mypolicy.pp` (Lädt das erstellte Richtlinienmodul)
Hinweis
Falsche Änderungen an SELinux-Richtlinien können den Zugriff auf bestimmte Dienste oder das gesamte System blockieren. Es ist wichtig, die aktuelle Richtlinie vor Änderungen zu sichern oder sorgfältig zu testen.