|
From: Stefan B. <st...@li...> - 2016-11-30 16:19:16
|
From: Stefan Berger <st...@us...>
To sync with systemd, use the filepath /etc/ima/ima-policy as
the default file location for the IMA policy. At the same time we
move the ima config file location to /etc/ima/ima. Adapt the
documentation to the new path. Maintain backwards compatibility
by still reading the old files in case the new ones do not exist.
Signed-off-by: Stefan Berger <st...@li...>
---
modules.d/98integrity/README | 8 ++++----
modules.d/98integrity/ima-keys-load.sh | 7 ++++++-
modules.d/98integrity/ima-policy-load.sh | 20 +++++++++++++++++---
3 files changed, 27 insertions(+), 8 deletions(-)
diff --git a/modules.d/98integrity/README b/modules.d/98integrity/README
index 64de0ae..c8ccee5 100644
--- a/modules.d/98integrity/README
+++ b/modules.d/98integrity/README
@@ -33,10 +33,10 @@ line.
# Save the policy in a file.
-# Create the configuration file '/etc/sysconfig/ima' to override the path name of
+# Create the configuration file '/etc/ima/ima' to override the path name of
# the IMA custom policy.
-------------- '/etc/sysconfig/ima' (with the default value) -------------
-IMAPOLICY="/etc/sysconfig/ima-policy"
+------------- '/etc/ima/ima' (with the default value) -------------
+IMAPOLICY="/etc/ima/ima-policy"
-------------------------------------------------------------------------
@@ -64,5 +64,5 @@ IMAPOLICY="/etc/sysconfig/ima-policy"
# 98integrity/ima-keys-load.sh script loads the signed certificates stored
# in the $IMAKEYSDIR onto the trusted IMA keyring. The default $IMAKEYSDIR
-# directory is /etc/keys/ima, but can be specified in the /etc/sysconfig/ima
+# directory is /etc/keys/ima, but can be specified in the /etc/ima/ima
# policy.
diff --git a/modules.d/98integrity/ima-keys-load.sh b/modules.d/98integrity/ima-keys-load.sh
index 659b722..922af1e 100755
--- a/modules.d/98integrity/ima-keys-load.sh
+++ b/modules.d/98integrity/ima-keys-load.sh
@@ -2,7 +2,10 @@
SECURITYFSDIR="/sys/kernel/security"
IMASECDIR="${SECURITYFSDIR}/ima"
-IMACONFIG="${NEWROOT}/etc/sysconfig/ima"
+IMACONFIG="${NEWROOT}/etc/ima/ima"
+
+# for backwards compatibility
+IMACONFIG_OLD="${NEWROOT}/etc/sysconfig/ima"
load_x509_keys()
{
@@ -11,6 +14,8 @@ load_x509_keys()
# override the default configuration
if [ -f "${IMACONFIG}" ]; then
. ${IMACONFIG}
+ elif [ -f "${IMACONFIG_OLD}" ]; then
+ . ${IMACONFIG_OLD}
fi
if [ -z "${IMAKEYDIR}" ]; then
diff --git a/modules.d/98integrity/ima-policy-load.sh b/modules.d/98integrity/ima-policy-load.sh
index 85cd3b9..a92b1bb 100755
--- a/modules.d/98integrity/ima-policy-load.sh
+++ b/modules.d/98integrity/ima-policy-load.sh
@@ -5,10 +5,19 @@
# Copyright (C) 2011 Politecnico di Torino, Italy
# TORSEC group -- http://security.polito.it
# Roberto Sassu <rob...@po...>
+#
+# Copyright (C) 2016 IBM Corporation
+#
+# Stefan Berger <st...@li...>
+#
IMASECDIR="${SECURITYFSDIR}/ima"
-IMACONFIG="${NEWROOT}/etc/sysconfig/ima"
-IMAPOLICY="/etc/sysconfig/ima-policy"
+IMACONFIG="${NEWROOT}/etc/ima/ima"
+IMAPOLICY="/etc/ima/ima-policy"
+
+# for backwards compatibility
+IMACONFIG_OLD="${NEWROOT}/etc/sysconfig/ima"
+IMAPOLICY_OLD="/etc/sysconfig/ima-policy"
load_ima_policy()
{
@@ -21,11 +30,16 @@ load_ima_policy()
fi
# override the default configuration
- [ -f "${IMACONFIG}" ] && \
+ if [ -f "${IMACONFIG}" ]; then
. ${IMACONFIG}
+ elif [ -f "${IMACONFIG_OLD}" ]; then
+ . ${IMACONFIG_OLD}
+ fi
# set the IMA policy path name
IMAPOLICYPATH="${NEWROOT}${IMAPOLICY}"
+ [ ! -f "${IMAPOLICYPATH}" ] && \
+ IMAPOLICYPATH="${NEWROOT}${IMAPOLICY_OLD}"
# check the existence of the IMA policy file
[ -f "${IMAPOLICYPATH}" ] && {
--
2.8.3
|