SELinux-Richtlinien konfigurieren

Zum Anfang  Zurück  Weiter

Wenn in Ihre Distribution von Linux das Schutzsystem SELinux (Security-Enhanced Linux – sicherheitsverbessertes Linux) integriert ist, müssen Sie einige Änderungen an der Konfiguration von SELinux vornehmen, damit die Komponenten der Anwendung (z. B. Scan-Engine) nach der Installation ordnungsgemäß ausgeführt werden.

1. Probleme bei der Installation des generischen Pakets

Bei aktiviertem SELinux kann die Installation mithilfe des generischen Pakets der Installationsdatei (.run) fehlschlagen, da der Account drweb, unter dem die Module von Dr.Web für Linux ausgeführt werden, nicht angelegt werden kann.

Wenn die Installation über die Installationsdatei (.run) fehlgeschlagen ist, da der Account drweb nicht erstellt werden konnte, überprüfen Sie die Konfiguration von SELinux, indem Sie den Befehl getenforce ausführen. Mit diesem Befehl ermitteln Sie, in welchem Modus SELinux läuft:

Permissive – der Schutz ist zwar aktiviert, doch befindet sich im Warnmodus: Vorgänge, die Regelverstöße verursachen, werden protokolliert und weiterhin ausgeführt.

Enforced – der Schutz ist aktiviert und setzt die Richtlinie um: Vorgänge, die Regelverstöße verursachen, werden protokolliert und gesperrt.

DisabledSELinux ist installiert, aber ausgeschaltet.

Wenn SELinux im Modus Enforced läuft, müssen Sie dieses vorübergehend (bis die Installation abgeschlossen ist) in den Modus Permissive versetzen. Führen Sie dafür den folgenden Befehl:

# setenforce 0

Der Befehl versetzt SELinux vorübergehend (bis zum nächsten Neustart) in den Modus Permissive.

Bitte beachten Sie Folgendes: Unabhängig davon, welchen Modus Sie mit dem Befehl setenforce erzwungen haben, wird SELinux nach einem Neustart wieder in den Standardmodus versetzt. Die Konfigurationsdatei mit den Standardeinstellungen von SELinux befindet sich standardmäßig im Verzeichnis /etc/selinux.

Nachdem Sie das Produkt mittels der Installationsdatei erfolgreich installiert haben (aber vor dem Start und vor der Aktivierung des Programms), müssen Sie wieder in den Modus Enforced wechseln. Führen Sie hierzu den folgenden Befehl aus:

# setenforce 1

2. Problem mit unzureichender Funktion

Bei aktiviertem SELinux kann es vorkommen, dass einzelne zusätzliche Komponenten von Dr.Web für Linux (wie etwa drweb-se und drweb-filecheck, die vom Scanner und von SpIDer Guard verwendet werden) nicht starten, wodurch das Scannen und Überwachen des Dateisystems nicht möglich ist. Probleme mit diesen Modulen erkennen Sie an den Fehlermeldungen 119 und 120 im Hauptdialogfenster von Dr.Web für Linux und im syslog-Protokoll (liegt standardmäßig im Verzeichnis /var/log/).

Die Fehler 119 und 120 können auch auf fehlende Bibliothek der 32-Bit-Kompatibilitätsumgebung hinweisen, falls Sie Dr.Web für Linux auf einem 64-Bit-System installieren wollen (siehe hierzu den Abschnitt Systemvoraussetzungen).

Meldungen vom SELinux werden im Systemprotokoll aufgezeichnet. Bei der Verwendung des auditt-Dämons befindet sich die Protokolldatei üblicherweise unter /var/log/audit/audit.log. Anderenfalls werden verweigerte Zugriffe in der Datei /var/log/messages oder /var/log/syslog protokolliert.

Wenn festgestellt wurde, dass SELinux zusätzliche Module sperrt, müssen Sie besondere Richtlinien für diese Module kompilieren.

In einigen Distributionen von Linux fehlen möglicherweise die nachfolgend aufgeführten Tools, sodass Sie entsprechende Pakete manuell nachinstallieren müssen.

So erstellen Sie SELinux-Richtlinien:

1.Erstellen Sie eine Datei mit der Dateinamenserweiterung .te, die den Quellcode der SELinux-Richtlinie enthalten wird. Anhand dieser Datei werden die Regeln für das benötigte Modul erstellt. Die Datei kann über folgende Wege erstellt werden:

1)Über das Tool audit2allow. Dieses Werkzeug bietet den einfachsten Weg, da damit benutzerdefinierte „allow“-Regeln anhand der Protokollinformationen zu verweigerten Zugriffen generiert werden. Sie haben dabei die Möglichkeit, die Protokolldateien nach Meldungen automatisch durchsuchen zu lassen oder den Pfad zur gewünschten Protokolldatei manuell anzugeben.

Beachten Sie, dass diese Methode nur dann möglich ist, wenn Verletzungen der SELinux-Richtlinie durch die Komponenten von Dr.Web für Linux im Systemprotokoll registriert sind. Anderenfalls müssen Sie warten, bis diese Regelverstöße aufgezeichnet sind, oder die Erstellung von „allow“-Regeln mithilfe von policygentool erzwingen (siehe nachfolgend).

Das Werkzeug audit2allow ist enthalten im Paket policycoreutils-python oder policycoreutils-devel (für RedHat Enterprise Linux, CentOS, Fedora je nach Version) oder im Paket python-sepolgen (für Debian, Ubuntu).

Beispiel für die Verwendung von audit2allow:

# grep drweb-se.real /var/log/audit/audit.log | audit2allow -M drweb-se

Dieser exemplarische Befehl gibt an, dass audit2allow in der Datei audit.log nach Meldungen über die dem Modul drweb-se verweigerten Zugriffe suchen soll.

Das Tool erstellt dann zwei Dateien: Quelldatei der Richtlinie drweb-se.te und die Binärdatei drweb-se.pp, die als Richtlinien-Modul geladen werden kann.

Wenn im Systemprotokoll keine passenden Regelverstöße gefunden wurden, gibt das Tool einen entsprechenden Fehler zurück.

In den meisten Fällen müssen Sie keine Änderungen an der mithilfe von audit2allow erstellen Datei vornehmen. Sie sollten daher direkt zum Punkt 4 gehen, in dem Sie erfahren, wie das erzeugte Richtlinien-Modul drweb-se.pp installiert wird. Beachten Sie, dass audit2allow am Ende des Vorgangs standardmäßig den Aufruf des Befehls semodule ausgibt. Kopieren Sie diesen Befehl in die Befehlszeile und führen Sie ihn aus. Damit erledigen Sie den Punkt 4. Gehen Sie zum Punkt 2 nur, wenn Sie die für Dr.Web für Linux automatisch erzeugten Regeln abändern wollen.

2)Über das Tool policygentool. Geben Sie hierzu als Parameter den Namen des Moduls, für das Sie die Richtlinie erstellen wollen, und den vollständigen Pfad zur ausführbaren Datei des Moduls an.

Bitte beachten Sie, dass policygentool als Teil des Pakets selinux-policy für RedHat Enterprise Linux und CentOS Linux nicht richtig funktionieren kann. Verwenden Sie dann das alternative Tool audit2allow.

Beispiel für die Erstellung einer Richtlinie mithilfe von policygentool:

Für drweb-se:

# policygentool drweb-se /opt/drweb.com/bin/drweb-se.real

Für drweb-filecheck:

# policygentool drweb-filecheck /opt/drweb.com/bin/drweb-filecheck.real

Sie werden aufgefordert, einige allgemeine Eigenschaften der Domäne anzugeben. Anschließend werden für jedes Modul drei Dateien erstellt, aus denen die Richtlinie besteht:

<module_name>.te, <module_name>.fc und <module_name>.if.

2.Ändern Sie bei Bedarf die generierte Quelldatei der Richtlinie <module_name>.te und kompilieren Sie diese mit checkmodule in eine Binärdatei (mit der Dateiendung .mod).

Bitte beachten Sie, dass dieser Befehl den Compiler checkpolicy voraussetzt.

Verwendungsbeispiel:

# checkmodule -M -m -o drweb-se.mod drweb-se.te

3.Erstellen Sie mit semodule_package das Richtlinien-Modul (mit der Dateiendung .pp).

Beispiel:

# semodule_package -o drweb-se.pp -m drweb-se.mod

4.Laden Sie das erzeugte Modul mit dem Tool semodule.

Beispiel:

# semodule -i drweb-se.pp

Weiterführende Informationen rund um das SELinux finden Sie in der Dokumentation für Ihre Distribution von Linux.