У нас есть API-сервер (tomcat), имеющий конфигурацию clamAV для сканирования любого загружаемого в систему файла.
Для конфигурации 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.
Мы решили эту проблему, создав пользовательскую политику SELinux с помощью Audit2Allow
команды.
Но нам нужно знать, есть ли другой способ решить эту проблему с помощью булевых функций SELinux или любого изменения метки, которое мы можем применить.
Могли бы вы, пожалуйста, посоветовать ?
Спасибо
решение1
Если бы был другой способ, audit2why
я бы вам о нем рассказал.
Вы также можете попробовать sealert
инструмент, который покажет последние отклонения SELinux и предоставит подробную информацию.