systemd 서비스를 사용하여 부팅 시 마운트하는 암호화된 추가 파티션으로 SELinux를 설정하려고 합니다.
허용 모드에서 SELinux를 실행하면 모든 것이 잘 실행됩니다(파티션이 올바르게 마운트되고 데이터에 액세스할 수 있으며 서비스가 정상적으로 실행됩니다).
강제 모드(enforcing=1)에서 SELinux를 실행하면 해당 파티션을 마운트할 수 없으며 다음 오류가 발생합니다.
/dev/mapper/temporary-cryptsetup-1808: chown failed: Permission denied
sh[1777]: Failed to open temporary keystore device.
sh[1777]: Command failed with code 5: Input/output error
이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
Audit2allow는 추가할 추가 규칙을 반환하지 않습니다.
@AB의 댓글 다음에 1을 편집하세요.
꼬리 대신 고양이를 사용했습니다. Audit2allow는 추가 허용 규칙을 제안하지 않지만 로그 파일을 분석한 결과 일부 거부 관심 사항이 발견되었습니다.
type=AVC msg=audit(1624863678.748:72): avc: denied { getattr } for pid=1894 comm="cryptsetup" path="/dev/dm-0" dev="devtmpfs" ino=5388 scontext=system_u:system_r:sysadm_t:s0-s15:c0.c1023 tcontext=system_u:object_r:fixed_disk_device_t:s15:c0.c1023 tclass=blk_file permissive=1
type=AVC msg=audit(1624863678.748:73): avc: denied { read } for pid=1894 comm="cryptsetup" name="dm-0" dev="devtmpfs" ino=5388 scontext=system_u:system_r:sysadm_t:s0-s15:c0.c1023 tcontext=system_u:object_r:fixed_disk_device_t:s15:c0.c1023 tclass=blk_file permissive=1
각 "cryptsetup" 항목에 대한 감사 로그를 검색하여 다음을 발견했습니다.
~# cat /var/log/audit/audit.log | grep "cryptsetup"
type=AVC msg=audit(1624863678.748:72): avc: denied { getattr } for pid=1894 comm="cryptsetup" path="/dev/dm-0" dev="devtmpfs" ino=5388 scontext=system_u:system_r:sysadm_t:s0-s15:c0.c1023 tcontext=system_u:object_r:fixed_disk_device_t:s15:c0.c1023 tclass=blk_file permissive=1
type=SYSCALL msg=audit(1624863678.748:72): arch=14 syscall=195 success=yes exit=0 a0=bfebd34c a1=bfebd2e0 a2=bfebd2e0 a3=bfebd370 items=0 ppid=1891 pid=1894 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="cryptsetup" exe="/usr/sbin/cryptsetup" subj=system_u:system_r:sysadm_t:s0-s15:c0.c1023 key=(null)
type=AVC msg=audit(1624863678.748:73): avc: denied { read } for pid=1894 comm="cryptsetup" name="dm-0" dev="devtmpfs" ino=5388 scontext=system_u:system_r:sysadm_t:s0-s15:c0.c1023 tcontext=system_u:object_r:fixed_disk_device_t:s15:c0.c1023 tclass=blk_file permissive=1
type=SYSCALL msg=audit(1624863678.748:73): arch=14 syscall=5 success=yes exit=6 a0=bfebf7ac a1=131000 a2=0 a3=10022cc0 items=0 ppid=1891 pid=1894 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="cryptsetup" exe="/usr/sbin/cryptsetup" subj=system_u:system_r:sysadm_t:s0-s15:c0.c1023 key=(null)
편집 2: refpolicy 저장소에서 변경 사항을 찾아보니2020년 11월에 제출됨그리고2021년 2월 약속. 제가 맡은 사건에도 적용될지는 모르겠습니다.
답변1
lvm_exec_t
cryptsetup 컨텍스트에 할당하는 문제가 해결되었습니다 .
lvm.fc
cryptsetup 파일 에는 다음과 같이 정의되어 있지만 실제 위치 /bin/cryptsetup
로 변경해야 합니다 ./usr/sbin/cryptsetup