24.5. systemd 실패 문제 해결 IMA 정책 로드
systemd가 /etc/ima/ima-policy 를 로드하지 않으면 시스템이 중단되고 systemd[1] 오류가 표시됩니다. 실행 정지.
[ 5.829882] ima: policy update failed
[ 5.830094] ima: signed policy file (specified as an absolute pathname) required
[!!!!!!] Failed to load IMA policy.
…
[ 5.859994] systemd[1]: Freezing execution.
시스템을 복구하는 데 사용할 수 있는 세 가지 방법이 있습니다.
24.5.1. Secure Boot 해제 링크 복사링크가 클립보드에 복사되었습니다!
서명되지 않았기 때문에 정책을 로드할 수 없는 경우 다음 예와 유사한 오류가 표시될 수 있습니다.
[ 5.661906] ima: policy update failed
[ 5.662290] ima: signed policy file (specified as an absolute pathname) required
[ 5.662496] systemd[1]: Failed to load the IMA custom policy file /etc/ima/ima-policy1: Permission denied
[ 5.662663] ima: policy update failed
[ 5.662856] audit: type=1800 audit(1744968172.925:7): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 op=appraise_data cause=IMA-signature-required comm="systemd" name="/etc/ima/ima-policy" dev="vda3" ino=25679834 res=0 errno=0
[ 5.663205] audit: type=1802 audit(1744968172.925:8): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 op=policy_update cause=failed comm="systemd" res=0 errno=0
[!!!!!!] Failed to load IMA policy.
이 문제를 해결하려면 Secure Boot를 일시적으로 끄고 UEFI 시스템의 사용자 정의 서명된 IMA 정책 배포를 수행하여 문제를 해결할 수 있습니다.
24.5.2. init=/bin/bash 커널 매개변수로 시스템 부팅 링크 복사링크가 클립보드에 복사되었습니다!
init=/bin/bash 커널 매개변수를 사용하여 시스템을 부팅하려면 다음 단계를 사용합니다.
-
부트로더 항목을 수정하고
init=/bin/bash커널 매개변수를 추가합니다. 쉘에 액세스한 후 쓰기 권한으로 시스템을 다시 마운트합니다.
# mount -o remount,rw //etc/ima/ima-policy의 이름을/etc/ima/ima-policy.bak로 변경합니다.# mv /etc/ima/ima-policy /etc/ima/ima-policy.bak시스템을 재부팅합니다.
# echo 1 > /proc/sys/kernel/sysrq # printf "s\nb" > /proc/sysrq-trigger/etc/ima/ima-policy.bak의 모든 문제를 해결하고 정책을 로드할 수 있는지 확인합니다.# echo /etc/ima/ima-policy.bak >> /sys/kernel/security/integrity/ima/policy/etc/ima/ima-policy.bak의 이름을/etc/ima/ima-policy로 변경합니다.# mv /etc/ima/ima-policy.bak /etc/ima/ima-policy
24.5.3. initcall_blacklist=init_ima 커널 매개변수로 시스템 부팅 링크 복사링크가 클립보드에 복사되었습니다!
시스템이 중단된 경우 systemd[1]: 실행 해제, initcall_blacklist=init_ima 커널 매개변수로 시스템을 부팅하여 IMA 정책을 비활성화할 수 있습니다.
-
부트 로더 항목을 수정하고
initcall_blacklist=init_ima커널 매개변수를 추가합니다. /etc/ima/ima-policy의 이름을/etc/ima/ima-policy.bak로 변경합니다.# mv /etc/ima/ima-policy /etc/ima/ima-policy.bak시스템을 재부팅합니다.
# systemctl reboot/etc/ima/ima-policy.bak의 모든 문제를 해결하고 정책을 로드할 수 있는지 확인합니다.# echo /etc/ima/ima-policy.bak >> /sys/kernel/security/integrity/ima/policy/etc/ima/ima-policy.bak의 이름을/etc/ima/ima-policy로 변경합니다.# mv /etc/ima/ima-policy.bak /etc/ima/ima-policy