commit:     d2997e65537e373d02d379ab2d5036788b7a5155
Author:     Dave Sugar <dsugar <AT> tresys <DOT> com>
AuthorDate: Mon Apr 16 20:08:55 2018 +0000
Commit:     Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Sun Apr 22 11:46:18 2018 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=d2997e65

Fix problems booting with fips=1

Seeing the following problem when booting in enforcing with FIPS mode enabled.
Request for unknown module key 'CentOS Linux kernel signing key: 
c757a9fbbd0d82c9e54052029a0908d17cf1adc7' err -13
Then seeing the system halt

Fixing the following denials:
[    4.492635] type=1400 audit(1523666552.903:4): avc:  denied  { search } for  
pid=894 comm="systemd-journal" name="crypto" dev="proc" ino=6124 
scontext=system_u:system_r:syslogd_t:s0 
tcontext=system_u:object_r:sysctl_crypto_t:s0 tclass=dir
[    4.496621] type=1400 audit(1523666552.907:5): avc:  denied  { read } for  
pid=894 comm="systemd-journal" name="fips_enabled" dev="proc" ino=6125 
scontext=system_u:system_r:syslogd_t:s0 
tcontext=system_u:object_r:sysctl_crypto_t:s0 tclass=file
[    4.499741] type=1400 audit(1523666552.910:6): avc:  denied  { open } for  
pid=894 comm="systemd-journal" path="/proc/sys/crypto/fips_enabled" dev="proc" 
ino=6125 scontext=system_u:system_r:syslogd_t:s0 
tcontext=system_u:object_r:sysctl_crypto_t:s0 tclass=file
[    4.502969] type=1400 audit(1523666552.914:7): avc:  denied  { getattr } for 
 pid=894 comm="systemd-journal" path="/proc/sys/crypto/fips_enabled" dev="proc" 
ino=6125 scontext=system_u:system_r:syslogd_t:s0 
tcontext=system_u:object_r:sysctl_crypto_t:s0 tclass=file

[    4.950021] type=1400 audit(1523666553.360:8): avc:  denied  { search } for  
pid=952 comm="systemctl" name="crypto" dev="proc" ino=6124 
scontext=system_u:system_r:udev_t:s0-s0:c0.c1023 
tcontext=system_u:object_r:sysctl_crypto_t:s0 tclass=dir
[    4.986551] type=1400 audit(1523666553.397:9): avc:  denied  { read } for  
pid=952 comm="systemctl" name="fips_enabled" dev="proc" ino=6125 
scontext=system_u:system_r:udev_t:s0-s0:c0.c1023 
tcontext=system_u:object_r:sysctl_crypto_t:s0 tclass=file
[    5.028737] type=1400 audit(1523666553.439:10): avc:  denied  { open } for  
pid=952 comm="systemctl" path="/proc/sys/crypto/fips_enabled" dev="proc" 
ino=6125 scontext=system_u:system_r:udev_t:s0-s0:c0.c1023 
tcontext=system_u:object_r:sysctl_crypto_t:s0 tclass=file

type=1400 audit(1512501270.176:3): avc:  denied  { search } for  pid=1 
comm="systemd" scontext=system_u:system_r:init_t:s0 
tcontext=system_u:system_r:kernel_t:s0 tclass=key

Signed-off-by: Dave Sugar <dsugar <AT> tresys.com>

 policy/modules/system/init.te    | 1 +
 policy/modules/system/logging.te | 1 +
 policy/modules/system/udev.te    | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/policy/modules/system/init.te b/policy/modules/system/init.te
index 82722156..8fd6c23f 100644
--- a/policy/modules/system/init.te
+++ b/policy/modules/system/init.te
@@ -281,6 +281,7 @@ ifdef(`init_systemd',`
        kernel_read_all_sysctls(init_t)
        kernel_read_software_raid_state(init_t)
        kernel_unmount_debugfs(init_t)
+       kernel_search_key(init_t)
        kernel_setsched(init_t)
        kernel_rw_unix_sysctls(init_t)
 

diff --git a/policy/modules/system/logging.te b/policy/modules/system/logging.te
index d18dc74b..38b75ce4 100644
--- a/policy/modules/system/logging.te
+++ b/policy/modules/system/logging.te
@@ -434,6 +434,7 @@ allow syslogd_t syslogd_var_run_t:file map;
 files_pid_filetrans(syslogd_t, syslogd_var_run_t, file)
 allow syslogd_t syslogd_var_run_t:dir create_dir_perms;
 
+kernel_read_crypto_sysctls(syslogd_t)
 kernel_read_system_state(syslogd_t)
 kernel_read_network_state(syslogd_t)
 kernel_read_kernel_sysctls(syslogd_t)

diff --git a/policy/modules/system/udev.te b/policy/modules/system/udev.te
index 7620e44c..53daf204 100644
--- a/policy/modules/system/udev.te
+++ b/policy/modules/system/udev.te
@@ -96,9 +96,11 @@ kernel_rw_unix_dgram_sockets(udev_t)
 kernel_dgram_send(udev_t)
 kernel_signal(udev_t)
 kernel_search_debugfs(udev_t)
+kernel_search_key(udev_t)
 
 #https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=235182
 kernel_rw_net_sysctls(udev_t)
+kernel_read_crypto_sysctls(udev_t)
 kernel_read_network_state(udev_t)
 kernel_read_software_raid_state(udev_t)
 kernel_dontaudit_search_unlabeled(udev_t)

Reply via email to