当社には、システムにアップロードされたすべてのファイルをスキャンするための ClamAV 構成を備えた API サーバー (tomcat) があります。
clamAV 構成では、API サーバーが clamAV サーバーに接続する必要があります。
両方のサーバーで SELinux が有効になっており、ファイルをアップロードしようとすると、次のエラー/例外が発生します。
tomcat: java.net.socketexception permission denied (connect failed)
このエラーは SELinux に関連しており、この拒否の監査ログは次のとおりです。
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.
Audit2Allow
コマンドを使用して SELinux カスタム ポリシーを作成することでこの問題を解決しました。
しかし、SELinux ブール値や適用できるラベル変更を使用してこの問題を解決する他の方法があるかどうかを知る必要があります。
アドバイスをいただけますか?
ありがとう
答え1
他に方法があったら、audit2why
それについてあなたに話していたでしょう。
sealert
最近の SELinux 拒否を表示し、詳細な情報を提供するツールを試すこともできます。