Symptom
Wenn Sie versuchen, das IGEL Cloud-Gateway (ICG) auf einem System zu installieren, auf dem SELinux aktiv ist, stoßen Sie auf einen Fehler wie:
Fehler:
stderr: Python 2.7.18
Befehl 'systemctl --quiet enable icg-server' gab einen Exit-Status ungleich Null zurück 1
Problem
Der Dienst ICG kann nicht gestartet werden, da er nicht auf die erforderlichen Systemressourcen zugreifen darf. Die entsprechende SELinux-Richtlinie fehlt.
Weitere Informationen zu SELinux finden Sie unter https://www.redhat.com/de/topics/linux/what-is-selinux
Umwelt
-
ICG 2.04.100 und ICG 2.05.100 (getestet; die Lösung sollte auch mit höheren Versionen funktionieren)
-
Red Hat Enterprise Linux 8.5 mit Kernel 4.18.0-348.el8.x86_64 (getestet; die Lösung könnte auch mit anderen Linux-Systemen funktionieren)
-
Die Voraussetzungen müssen erfüllt sein
-
Python muss installiert sein
-
Firewall-Konfiguration: Der Port, der von ICG für eingehende Verbindungen verwendet wird, muss offen sein. Standardmäßig ist dies Port 8443; weitere Informationen finden Sie unter Verwendete Netzwerk-Ports.
Lösung
Im Folgenden werden wir eine SELinux-Richtlinie in einer Datei definieren und mit einem Skript installieren.
Schreiben der SELinux-Richtlinie
-
Loggen Sie sich auf dem Rechner ein, auf dem Ihr ICG gehostet wird und gehen Sie in ein Verzeichnis, in dem Ihr Benutzer Dateien erstellen darf.
-
Öffnen Sie den Texteditor Ihrer Wahl, z.B. vi, und erstellen Sie eine Datei namens
icg.teBashvi icg.te
-
Geben Sie den folgenden Inhalt in die Datei ein und speichern Sie sie als
icg.te(in vi wird die Datei mit:wqgespeichert):Modul icg 1.0; require { Typ init_t; Typ user_home_t; class file { execute execute_no_trans ioctl open read }; } #============= init_t ============== allow init_t user_home_t:file { execute execute_no_trans ioctl open read };
Installieren der SELinux-Richtlinie
-
Erstellen Sie eine weitere Datei namens
icg sh; dies wird das Installationsskript sein.Bashvi icg.sh
-
Geben Sie den folgenden Inhalt in die Datei ein und speichern Sie sie als
icg.sh:#!/bin/bash checkmodule -M -m -o icg.mod icg.te semodule_package -o icg.pp -m icg.mod semodule -i icg.pp
-
Starten Sie das Installationsskript.
chmod +x icg.sh sudo ./icg.shNun, da die Sicherheitsrichtlinie installiert ist, können Sie ICG auf Ihrem System installieren.