Selinux 阻止 clamd 为每个线程打开新端口

Selinux 阻止 clamd 为每个线程打开新端口

CentOS7 上强制执行的 SElinux 再次阻止 clamAV 扫描文件操作。

几个月前,我遇到了同样的问题发布在这里,最后我通过以下配置解决了这个问题:

# grep 'StreamMin\|StreamMax' /etc/clamd.d/scan.conf
StreamMaxLength 2000M
StreamMinPort 30000
StreamMaxPort 32000

# getsebool -a | grep antivirus
antivirus_can_scan_system --> on
antivirus_use_jit --> on

# semanage port -l | grep clamd
clamd_port_t                   tcp      30000-32000, 3310

昨天系统得到了 yum 更新,在它们之间,我看到selinux-policy*软件包也更新了:

Updated     selinux-policy-3.13.1-102.el7_3.16.noarch                @updates
Update                     3.13.1-166.el7_4.4.noarch                 @updates
Updated     selinux-policy-targeted-3.13.1-102.el7_3.16.noarch       @updates
Update                              3.13.1-166.el7_4.4.noarch        @updates

更新后,同样的问题又回来了,如下所示/var/log/messages

Sep 15 10:55:45 production clamd: LibClamAV Warning: RWX mapping denied: Can't allocate RWX Memory: Permission denied
Sep 15 10:55:45 production clamd: LibClamAV Warning: Bytecode: disabling JIT because SELinux is preventing 'execmem' access.
Sep 15 10:55:45 production clamd: Run  'setsebool -P clamd_use_jit on'.

日志看起来很清楚,也提供了解决方案,但无论如何,这个布尔值之前已经设置为 true,所以它看起来没有那么有用。

以下是相关audit.log条目:

type=AVC msg=audit(1505723879.248:302432): avc:  denied  { name_connect } for  pid=21691 comm="java" dest=3310 scontext=system_u:system_r:tomcat_t:s0 tcontext=system_u:object_r:clamd_port_t:s0 tclass=tcp_socket

同样,以下错误似乎与我的问题有关:

但阅读它们后我真的不明白如何解决它。

我想坚持使用官方 CentOS 存储库提供的软件包更新,因此我会避免回滚刚刚应用的更新(上面粘贴)。另外,我想将 SElinux 保持在强制模式下。

任何眼科如何继续调试并解决问题?

相关内容