[systemd-devel] [PATCH v3] 98integrity: Use /etc/ima as dir for IMA policy and config file
Stefan Berger
stefanb at linux.vnet.ibm.com
Wed Nov 30 16:18:54 UTC 2016
From: Stefan Berger <stefanb at us.ibm.com>
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 <stefanb at linux.vnet.ibm.com>
---
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 <roberto.sassu at polito.it>
+#
+# Copyright (C) 2016 IBM Corporation
+#
+# Stefan Berger <stefanb at linux.vnet.ibm.com>
+#
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
More information about the systemd-devel
mailing list