Encryption

SELinux 和 cryptsetup:chown 失敗,無法訪問臨時密鑰庫

  • July 16, 2021

我正在嘗試設置 SELinux 和我在啟動時使用 systemd 服務安裝的加密附加分區。

如果我在許可模式下執行 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 repo 中的任何更改,我發現了 this Novembre 2020 committhis February 2021 commit。我不知道他們是否可以適用於手頭的案件。

解決了將上下文分配給 cryptsetup 的問題lvm_exec_t

lvm.fc文件中 cryptsetup 被定義為,/bin/cryptsetup但我必須將其更改為/usr/sbin/cryptsetup實際位置。

引用自:https://unix.stackexchange.com/questions/656142