Wir haben einen API-Server (Tomcat) mit ClamAV-Konfiguration zum Scannen aller auf das System hochgeladenen Dateien.
Für die clamAV-Konfiguration muss der API-Server eine Verbindung zum clamAV-Server herstellen.
SELinux ist auf beiden Servern aktiviert und immer wenn wir versuchen, Dateien hochzuladen, erhalten wir den folgenden Fehler/die folgende Ausnahme:
tomcat: java.net.socketexception permission denied (connect failed)
Dieser Fehler hängt mit SELinux zusammen. Hier ist das Prüfprotokoll für diese Ablehnung:
type=AVC msg=audit(1632293242.892:403): avc: denied { name_connect } for pid=2663 comm="http-nio-8780-e" dest=3310 scontext=system_u:system_r:tomcat_t:s0 tcontext=system_uSmiley Surprisedbject_r:clamd_port_t:s0 tclass=tcp_socket permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
Wir haben dies gelöst, indem wir mit Audit2Allow
einem Befehl eine benutzerdefinierte SELinux-Richtlinie erstellt haben.
Wir müssen jedoch wissen, ob es eine andere Möglichkeit gibt, dies mithilfe von SELinux-Booleschen Werten oder einer beliebigen Beschriftungsänderung zu lösen, die wir anwenden können.
Können Sie mir bitte einen Rat geben?
Danke
Antwort1
Wenn es einen anderen Weg gäbe, audit2why
hätte ich es Ihnen mitgeteilt.
Sie können auch das Tool ausprobieren sealert
, das aktuelle SELinux-Ablehnungen anzeigt und detaillierte Informationen bereitstellt.