Fehlerbehebung bei fehlgeschlagener ICG-Installation auf einem SELinux-System
Symptom
Wenn man versucht, IGEL Cloud Gateway (ICG) auf einem System zu installieren, auf dem SELinux aktiv ist, stößt man auf einen Fehler wie:
Error:
stderr: Python 2.7.18
Command 'systemctl --quiet enable icg-server' returned non-zero exit status 1
Problem
Der ICG Dienst kann nicht gestartet werden, da er nicht auf die notwendigen Systemressourcen zugreifen darf. Die entsprechende SELinux-Richtlinie fehlt.
Weitere Informationen zu SELinux finden Sie unter What is SELinux (Security-Enhanced Linux)?
Umgebung
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 vom ICG für eingehende Verbindungen verwendet wird, muss offen sein. Standardmäßig ist dies Port 8443; weitere Informationen finden Sie unter Verwendete Netzwerkanschlüsse.
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.te
BASHvi icg.te
Geben Sie den folgenden Inhalt in die Datei ein und speichern Sie sie als
icg.te
(in vi wird die Datei mit:wq
gespeichert):CODEmodule 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
:CODE#!/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.
BASHchmod +x icg.sh sudo ./icg.sh
Nun, da die Sicherheitsrichtlinie installiert ist, können Sie ICG auf Ihrem System installieren.