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
마찬가지로 다음 오류는 내 문제와 관련된 것 같습니다.
- https://bugzilla.redhat.com/show_bug.cgi?id=1248785
- https://bugzilla.redhat.com/show_bug.cgi?id=573191
하지만 읽어본 후에는 문제를 해결하는 방법을 정말로 이해할 수 없습니다.
공식 CentOS 저장소에서 제공하는 패키지 업데이트를 계속 사용하고 싶으므로 방금 적용한 업데이트(위에 붙여넣음)를 롤백하지 않겠습니다. 또한 SElinux를 강제 모드로 유지하고 싶습니다.
어느안과학디버깅을 계속하고 문제를 해결하려면 어떻게 해야 합니까?