diff options
author | Armin Kuster <akuster808@gmail.com> | 2020-07-26 13:10:31 -0700 |
---|---|---|
committer | Armin Kuster <akuster808@gmail.com> | 2020-08-23 14:48:56 -0700 |
commit | 94e8e61988848e92b20c4337e99cee6b03971c5c (patch) | |
tree | 99546675c1351575c6da17a0605a7fa36d868cc0 /meta-hardening/recipes-core | |
parent | 787ba6faeaa8823a4d87e5edd15581cb4e12fa70 (diff) | |
download | meta-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')
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 | |||
2 | do_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 @@ | |||
1 | SUMMARY = "A small image for an example hardening OE." | ||
2 | |||
3 | IMAGE_INSTALL = "packagegroup-core-boot packagegroup-hardening" | ||
4 | IMAGE_INSTALL_append = " os-release" | ||
5 | |||
6 | IMAGE_FEATURES = "" | ||
7 | IMAGE_LINGUAS = " " | ||
8 | |||
9 | LICENSE = "MIT" | ||
10 | |||
11 | IMAGE_ROOTFS_SIZE ?= "8192" | ||
12 | |||
13 | inherit core-image extrausers | ||
14 | |||
15 | ROOT_DEFAULT_PASSWORD ?= "1SimplePw!" | ||
16 | DEFAULT_ADMIN_ACCOUNT ?= "myadmin" | ||
17 | DEFAULT_ADMIN_GROUP ?= "wheel" | ||
18 | DEFAULT_ADMIN_ACCOUNT_PASSWORD ?= "1SimplePw!" | ||
19 | |||
20 | EXTRA_USERS_PARAMS = "${@bb.utils.contains('DISABLE_ROOT', 'True', "usermod -L root;", "usermod -P '${ROOT_DEFAULT_PASSWORD}' root;", d)}" | ||
21 | |||
22 | EXTRA_USERS_PARAMS += "useradd ${DEFAULT_ADMIN_ACCOUNT};" | ||
23 | EXTRA_USERS_PARAMS += "groupadd ${DEFAULT_ADMIN_GROUP};" | ||
24 | EXTRA_USERS_PARAMS += "usermod -P '${DEFAULT_ADMIN_ACCOUNT_PASSWORD}' ${DEFAULT_ADMIN_ACCOUNT};" | ||
25 | EXTRA_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 | # | ||
19 | test "$VERBOSE" != no && echo "Mounting local filesystems..." | ||
20 | mkdir -p /home | ||
21 | mkdir -p /var | ||
22 | mount -at nonfs,nosmbfs,noncpfs 2>/dev/null | ||
23 | |||
24 | # | ||
25 | # We might have mounted something over /dev, see if /dev/initctl is there. | ||
26 | # | ||
27 | if test ! -p /dev/initctl | ||
28 | then | ||
29 | rm -f /dev/initctl | ||
30 | mknod -m 600 /dev/initctl p | ||
31 | fi | ||
32 | kill -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 @@ | |||
1 | FILESEXTRAPATHS_prepend := "${THISDIR}/files:" | ||
2 | |||
3 | SRC_URI_append_harden = " file://mountall.sh" | ||
4 | |||
5 | do_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 | |||
5 | SUMMARY = "Hardening example group" | ||
6 | |||
7 | inherit packagegroup | ||
8 | |||
9 | PROVIDES = "${PACKAGES}" | ||
10 | PACKAGES = "${PN} \ | ||
11 | packagegroup-${PN} \ | ||
12 | " | ||
13 | |||
14 | RDEPENDS_${PN} = "\ | ||
15 | init-ifupdown \ | ||
16 | ${VIRTUAL-RUNTIME_base-utils-syslog} \ | ||
17 | sudo \ | ||
18 | ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-plugin-wheel", "",d)} \ | ||
19 | " | ||