2018-04-16 20:08:55

by Sugar, David

[permalink] [raw]
Subject: [refpolicy] [PATCH] 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 <[email protected]>
---
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 59f71cae..54288a7f 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 511be86c..9d6d2cfb 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 cef5826c..fb0a020f 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)
--
2.14.3


2018-04-18 00:15:18

by Chris PeBenito

[permalink] [raw]
Subject: [refpolicy] [PATCH] Fix problems booting with fips=1

On 04/16/2018 04:08 PM, Dave Sugar via refpolicy wrote:
> 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 <[email protected]>
> ---
> 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 59f71cae..54288a7f 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 511be86c..9d6d2cfb 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 cef5826c..fb0a020f 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)

Merged.

--
Chris PeBenito