summaryrefslogtreecommitdiffstats
path: root/meta-hardening/recipes-core
diff options
context:
space:
mode:
authorArmin Kuster <akuster808@gmail.com>2020-07-26 13:10:31 -0700
committerArmin Kuster <akuster808@gmail.com>2020-08-23 14:48:56 -0700
commit94e8e61988848e92b20c4337e99cee6b03971c5c (patch)
tree99546675c1351575c6da17a0605a7fa36d868cc0 /meta-hardening/recipes-core
parent787ba6faeaa8823a4d87e5edd15581cb4e12fa70 (diff)
downloadmeta-security-94e8e61988848e92b20c4337e99cee6b03971c5c.tar.gz
meta-harden: Add a layer to demo harding OE/YP
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Diffstat (limited to 'meta-hardening/recipes-core')
-rw-r--r--meta-hardening/recipes-core/base-files/base-files_%.bbappend4
-rw-r--r--meta-hardening/recipes-core/images/harden-image-minimal.bb25
-rwxr-xr-xmeta-hardening/recipes-core/initscripts/files/mountall.sh41
-rw-r--r--meta-hardening/recipes-core/initscripts/initscripts_1.0.bbappend8
-rw-r--r--meta-hardening/recipes-core/packagegroups/packagegroup-hardening.bb19
5 files changed, 97 insertions, 0 deletions
diff --git a/meta-hardening/recipes-core/base-files/base-files_%.bbappend b/meta-hardening/recipes-core/base-files/base-files_%.bbappend
new file mode 100644
index 0000000..3956304
--- /dev/null
+++ b/meta-hardening/recipes-core/base-files/base-files_%.bbappend
@@ -0,0 +1,4 @@
1
2do_install_append_harden () {
3 sed -i 's/umask.*/umask 027/g' ${D}/${sysconfdir}/profile
4}
diff --git a/meta-hardening/recipes-core/images/harden-image-minimal.bb b/meta-hardening/recipes-core/images/harden-image-minimal.bb
new file mode 100644
index 0000000..daed3fb
--- /dev/null
+++ b/meta-hardening/recipes-core/images/harden-image-minimal.bb
@@ -0,0 +1,25 @@
1SUMMARY = "A small image for an example hardening OE."
2
3IMAGE_INSTALL = "packagegroup-core-boot packagegroup-hardening"
4IMAGE_INSTALL_append = " os-release"
5
6IMAGE_FEATURES = ""
7IMAGE_LINGUAS = " "
8
9LICENSE = "MIT"
10
11IMAGE_ROOTFS_SIZE ?= "8192"
12
13inherit core-image extrausers
14
15ROOT_DEFAULT_PASSWORD ?= "1SimplePw!"
16DEFAULT_ADMIN_ACCOUNT ?= "myadmin"
17DEFAULT_ADMIN_GROUP ?= "wheel"
18DEFAULT_ADMIN_ACCOUNT_PASSWORD ?= "1SimplePw!"
19
20EXTRA_USERS_PARAMS = "${@bb.utils.contains('DISABLE_ROOT', 'True', "usermod -L root;", "usermod -P '${ROOT_DEFAULT_PASSWORD}' root;", d)}"
21
22EXTRA_USERS_PARAMS += "useradd ${DEFAULT_ADMIN_ACCOUNT};"
23EXTRA_USERS_PARAMS += "groupadd ${DEFAULT_ADMIN_GROUP};"
24EXTRA_USERS_PARAMS += "usermod -P '${DEFAULT_ADMIN_ACCOUNT_PASSWORD}' ${DEFAULT_ADMIN_ACCOUNT};"
25EXTRA_USERS_PARAMS += "usermod -aG ${DEFAULT_ADMIN_GROUP} ${DEFAULT_ADMIN_ACCOUNT};"
diff --git a/meta-hardening/recipes-core/initscripts/files/mountall.sh b/meta-hardening/recipes-core/initscripts/files/mountall.sh
new file mode 100755
index 0000000..e093f96
--- /dev/null
+++ b/meta-hardening/recipes-core/initscripts/files/mountall.sh
@@ -0,0 +1,41 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: mountall
4# Required-Start: mountvirtfs
5# Required-Stop:
6# Default-Start: S
7# Default-Stop:
8# Short-Description: Mount all filesystems.
9# Description:
10### END INIT INFO
11
12. /etc/default/rcS
13
14#
15# Mount local filesystems in /etc/fstab. For some reason, people
16# might want to mount "proc" several times, and mount -v complains
17# about this. So we mount "proc" filesystems without -v.
18#
19test "$VERBOSE" != no && echo "Mounting local filesystems..."
20mkdir -p /home
21mkdir -p /var
22mount -at nonfs,nosmbfs,noncpfs 2>/dev/null
23
24#
25# We might have mounted something over /dev, see if /dev/initctl is there.
26#
27if test ! -p /dev/initctl
28then
29 rm -f /dev/initctl
30 mknod -m 600 /dev/initctl p
31fi
32kill -USR1 1
33
34#
35# Execute swapon command again, in case we want to swap to
36# a file on a now mounted filesystem.
37#
38[ -x /sbin/swapon ] && swapon -a
39
40: exit 0
41
diff --git a/meta-hardening/recipes-core/initscripts/initscripts_1.0.bbappend b/meta-hardening/recipes-core/initscripts/initscripts_1.0.bbappend
new file mode 100644
index 0000000..896b039
--- /dev/null
+++ b/meta-hardening/recipes-core/initscripts/initscripts_1.0.bbappend
@@ -0,0 +1,8 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI_append_harden = " file://mountall.sh"
4
5do_install_append_harden() {
6 install -d ${D}${sysconfdir}/init.d
7 install -m 0755 ${WORKDIR}/mountall.sh ${D}${sysconfdir}/init.d
8}
diff --git a/meta-hardening/recipes-core/packagegroups/packagegroup-hardening.bb b/meta-hardening/recipes-core/packagegroups/packagegroup-hardening.bb
new file mode 100644
index 0000000..1dcd5fc
--- /dev/null
+++ b/meta-hardening/recipes-core/packagegroups/packagegroup-hardening.bb
@@ -0,0 +1,19 @@
1#
2#
3#
4
5SUMMARY = "Hardening example group"
6
7inherit packagegroup
8
9PROVIDES = "${PACKAGES}"
10PACKAGES = "${PN} \
11 packagegroup-${PN} \
12"
13
14RDEPENDS_${PN} = "\
15 init-ifupdown \
16 ${VIRTUAL-RUNTIME_base-utils-syslog} \
17 sudo \
18 ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-plugin-wheel", "",d)} \
19"