Fehlerbehebung Installation von IGEL Cloud-Gateway (ICG) auf einem SELinux-System fehlgeschlagen

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:

Bash
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

  1. 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.

  2. Öffnen Sie den Texteditor Ihrer Wahl, z.B. vi, und erstellen Sie eine Datei namens icg.te

    Bash
    vi icg.te
    


  1. Geben Sie den folgenden Inhalt in die Datei ein und speichern Sie sie als icg.te (in vi wird die Datei mit :wq gespeichert):

    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

  1. Erstellen Sie eine weitere Datei namens icg sh; dies wird das Installationsskript sein.

    Bash
    vi icg.sh
    


  1. 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 
    


  1. Starten Sie das Installationsskript.

    chmod +x icg.sh
    sudo ./icg.sh
    

    Nun, da die Sicherheitsrichtlinie installiert ist, können Sie ICG auf Ihrem System installieren.