SELinux 및 cryptsetup: chown이 실패하고 임시 키 저장소에 액세스할 수 없습니다.

SELinux 및 cryptsetup: chown이 실패하고 임시 키 저장소에 액세스할 수 없습니다.

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_tcryptsetup 컨텍스트에 할당하는 문제가 해결되었습니다 .

lvm.fccryptsetup 파일 에는 다음과 같이 정의되어 있지만 실제 위치 /bin/cryptsetup로 변경해야 합니다 ./usr/sbin/cryptsetup

관련 정보