From a63c7fd6371461c1866976a7e01da552ab19ad0e Mon Sep 17 00:00:00 2001 From: CloudBuilder Date: Sun, 19 Jul 2020 03:54:47 +0000 Subject: [PATCH] Imported 2.677 No reason for CPC update specified. --- debian/changelog | 26 +++++++ live-build/apparmor/generic.features | 78 +++++++++++++++++++ live-build/apparmor/generic/capability | 1 + live-build/apparmor/generic/caps/mask | 1 + live-build/apparmor/generic/dbus/mask | 1 + .../generic/domain/attach_conditions/xattr | 1 + live-build/apparmor/generic/domain/change_hat | 1 + .../apparmor/generic/domain/change_hatv | 1 + .../apparmor/generic/domain/change_onexec | 1 + .../apparmor/generic/domain/change_profile | 1 + .../generic/domain/computed_longest_left | 1 + .../generic/domain/fix_binfmt_elf_mmap | 1 + .../apparmor/generic/domain/post_nnp_subset | 1 + live-build/apparmor/generic/domain/stack | 1 + live-build/apparmor/generic/domain/version | 1 + live-build/apparmor/generic/file/mask | 1 + live-build/apparmor/generic/mount/mask | 1 + .../apparmor/generic/namespaces/pivot_root | 1 + .../apparmor/generic/namespaces/profile | 1 + live-build/apparmor/generic/network/af_mask | 1 + live-build/apparmor/generic/network/af_unix | 1 + .../apparmor/generic/network_v8/af_mask | 1 + live-build/apparmor/generic/policy/set_load | 1 + .../apparmor/generic/policy/versions/v5 | 1 + .../apparmor/generic/policy/versions/v6 | 1 + .../apparmor/generic/policy/versions/v7 | 1 + .../apparmor/generic/policy/versions/v8 | 1 + live-build/apparmor/generic/ptrace/mask | 1 + live-build/apparmor/generic/query/label/data | 1 + .../generic/query/label/multi_transaction | 1 + live-build/apparmor/generic/query/label/perms | 1 + live-build/apparmor/generic/rlimit/mask | 1 + live-build/apparmor/generic/signal/mask | 1 + live-build/auto/build | 19 +++++ live-build/functions | 12 +++ live-build/seccomp/generic.actions_avail | 1 + .../hooks/032-installer-squashfs.binary | 9 ++- 37 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 live-build/apparmor/generic.features create mode 100644 live-build/apparmor/generic/capability create mode 100644 live-build/apparmor/generic/caps/mask create mode 100644 live-build/apparmor/generic/dbus/mask create mode 100644 live-build/apparmor/generic/domain/attach_conditions/xattr create mode 100644 live-build/apparmor/generic/domain/change_hat create mode 100644 live-build/apparmor/generic/domain/change_hatv create mode 100644 live-build/apparmor/generic/domain/change_onexec create mode 100644 live-build/apparmor/generic/domain/change_profile create mode 100644 live-build/apparmor/generic/domain/computed_longest_left create mode 100644 live-build/apparmor/generic/domain/fix_binfmt_elf_mmap create mode 100644 live-build/apparmor/generic/domain/post_nnp_subset create mode 100644 live-build/apparmor/generic/domain/stack create mode 100644 live-build/apparmor/generic/domain/version create mode 100644 live-build/apparmor/generic/file/mask create mode 100644 live-build/apparmor/generic/mount/mask create mode 100644 live-build/apparmor/generic/namespaces/pivot_root create mode 100644 live-build/apparmor/generic/namespaces/profile create mode 100644 live-build/apparmor/generic/network/af_mask create mode 100644 live-build/apparmor/generic/network/af_unix create mode 100644 live-build/apparmor/generic/network_v8/af_mask create mode 100644 live-build/apparmor/generic/policy/set_load create mode 100644 live-build/apparmor/generic/policy/versions/v5 create mode 100644 live-build/apparmor/generic/policy/versions/v6 create mode 100644 live-build/apparmor/generic/policy/versions/v7 create mode 100644 live-build/apparmor/generic/policy/versions/v8 create mode 100644 live-build/apparmor/generic/ptrace/mask create mode 100644 live-build/apparmor/generic/query/label/data create mode 100644 live-build/apparmor/generic/query/label/multi_transaction create mode 100644 live-build/apparmor/generic/query/label/perms create mode 100644 live-build/apparmor/generic/rlimit/mask create mode 100644 live-build/apparmor/generic/signal/mask create mode 100644 live-build/seccomp/generic.actions_avail diff --git a/debian/changelog b/debian/changelog index 524ecbed..0ebdecf4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,29 @@ +livecd-rootfs (2.677) groovy; urgency=medium + + * Avoid rbind /sys for chroot snap pre-seeding (cgroups fail to unmount) + + -- Robert C Jennings Sat, 18 Jul 2020 16:51:05 -0500 + +livecd-rootfs (2.676) groovy; urgency=medium + + * apparmor: Add generic v5.4 kernel apparmor features + * apparmor: mount more up-to-date apparmor features in the chroot. + * seccomp: add more up-to-date seccomp actions + * seccomp: mount more up-to-date seccomp features + * apparmor: compile all profiles + + -- Dimitri John Ledkov Sat, 18 Jul 2020 01:17:54 +0100 + +livecd-rootfs (2.675) groovy; urgency=medium + + [ Robert C Jennings ] + * Apply snap-preseed optimizations after seeding snaps + + [ Dimitri John Ledkov ] + * live-server: remove duplicate snaps, due to overlayfs vs snap-preseed. + + -- Dimitri John Ledkov Fri, 17 Jul 2020 21:19:35 +0100 + livecd-rootfs (2.674) groovy; urgency=medium [ David Krauser ] diff --git a/live-build/apparmor/generic.features b/live-build/apparmor/generic.features new file mode 100644 index 00000000..9f272e6a --- /dev/null +++ b/live-build/apparmor/generic.features @@ -0,0 +1,78 @@ +query {label {multi_transaction {yes +} +data {yes +} +perms {allow deny audit quiet +} +} +} +dbus {mask {acquire send receive +} +} +signal {mask {hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost +} +} +ptrace {mask {read trace +} +} +caps {mask {chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read +} +} +rlimit {mask {cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime +} +} +capability {0xffffff +} +namespaces {pivot_root {no +} +profile {yes +} +} +mount {mask {mount umount pivot_root +} +} +network {af_unix {yes +} +af_mask {unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp +} +} +network_v8 {af_mask {unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp +} +} +file {mask {create read write exec append mmap_exec link lock +} +} +domain {version {1.2 +} +attach_conditions {xattr {yes +} +} +computed_longest_left {yes +} +post_nnp_subset {yes +} +fix_binfmt_elf_mmap {yes +} +stack {yes +} +change_profile {yes +} +change_onexec {yes +} +change_hatv {yes +} +change_hat {yes +} +} +policy {set_load {yes +} +versions {v8 {yes +} +v7 {yes +} +v6 {yes +} +v5 {yes +} +} +} diff --git a/live-build/apparmor/generic/capability b/live-build/apparmor/generic/capability new file mode 100644 index 00000000..96a10b97 --- /dev/null +++ b/live-build/apparmor/generic/capability @@ -0,0 +1 @@ +0xffffff diff --git a/live-build/apparmor/generic/caps/mask b/live-build/apparmor/generic/caps/mask new file mode 100644 index 00000000..1a8d13ec --- /dev/null +++ b/live-build/apparmor/generic/caps/mask @@ -0,0 +1 @@ +chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read diff --git a/live-build/apparmor/generic/dbus/mask b/live-build/apparmor/generic/dbus/mask new file mode 100644 index 00000000..1248078e --- /dev/null +++ b/live-build/apparmor/generic/dbus/mask @@ -0,0 +1 @@ +acquire send receive diff --git a/live-build/apparmor/generic/domain/attach_conditions/xattr b/live-build/apparmor/generic/domain/attach_conditions/xattr new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/attach_conditions/xattr @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/change_hat b/live-build/apparmor/generic/domain/change_hat new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/change_hat @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/change_hatv b/live-build/apparmor/generic/domain/change_hatv new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/change_hatv @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/change_onexec b/live-build/apparmor/generic/domain/change_onexec new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/change_onexec @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/change_profile b/live-build/apparmor/generic/domain/change_profile new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/change_profile @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/computed_longest_left b/live-build/apparmor/generic/domain/computed_longest_left new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/computed_longest_left @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/fix_binfmt_elf_mmap b/live-build/apparmor/generic/domain/fix_binfmt_elf_mmap new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/fix_binfmt_elf_mmap @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/post_nnp_subset b/live-build/apparmor/generic/domain/post_nnp_subset new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/post_nnp_subset @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/stack b/live-build/apparmor/generic/domain/stack new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/domain/stack @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/domain/version b/live-build/apparmor/generic/domain/version new file mode 100644 index 00000000..5625e59d --- /dev/null +++ b/live-build/apparmor/generic/domain/version @@ -0,0 +1 @@ +1.2 diff --git a/live-build/apparmor/generic/file/mask b/live-build/apparmor/generic/file/mask new file mode 100644 index 00000000..087b6771 --- /dev/null +++ b/live-build/apparmor/generic/file/mask @@ -0,0 +1 @@ +create read write exec append mmap_exec link lock diff --git a/live-build/apparmor/generic/mount/mask b/live-build/apparmor/generic/mount/mask new file mode 100644 index 00000000..652c8796 --- /dev/null +++ b/live-build/apparmor/generic/mount/mask @@ -0,0 +1 @@ +mount umount pivot_root diff --git a/live-build/apparmor/generic/namespaces/pivot_root b/live-build/apparmor/generic/namespaces/pivot_root new file mode 100644 index 00000000..7ecb56eb --- /dev/null +++ b/live-build/apparmor/generic/namespaces/pivot_root @@ -0,0 +1 @@ +no diff --git a/live-build/apparmor/generic/namespaces/profile b/live-build/apparmor/generic/namespaces/profile new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/namespaces/profile @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/network/af_mask b/live-build/apparmor/generic/network/af_mask new file mode 100644 index 00000000..503289e7 --- /dev/null +++ b/live-build/apparmor/generic/network/af_mask @@ -0,0 +1 @@ +unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp diff --git a/live-build/apparmor/generic/network/af_unix b/live-build/apparmor/generic/network/af_unix new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/network/af_unix @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/network_v8/af_mask b/live-build/apparmor/generic/network_v8/af_mask new file mode 100644 index 00000000..503289e7 --- /dev/null +++ b/live-build/apparmor/generic/network_v8/af_mask @@ -0,0 +1 @@ +unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp diff --git a/live-build/apparmor/generic/policy/set_load b/live-build/apparmor/generic/policy/set_load new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/policy/set_load @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/policy/versions/v5 b/live-build/apparmor/generic/policy/versions/v5 new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/policy/versions/v5 @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/policy/versions/v6 b/live-build/apparmor/generic/policy/versions/v6 new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/policy/versions/v6 @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/policy/versions/v7 b/live-build/apparmor/generic/policy/versions/v7 new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/policy/versions/v7 @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/policy/versions/v8 b/live-build/apparmor/generic/policy/versions/v8 new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/policy/versions/v8 @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/ptrace/mask b/live-build/apparmor/generic/ptrace/mask new file mode 100644 index 00000000..10fc201a --- /dev/null +++ b/live-build/apparmor/generic/ptrace/mask @@ -0,0 +1 @@ +read trace diff --git a/live-build/apparmor/generic/query/label/data b/live-build/apparmor/generic/query/label/data new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/query/label/data @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/query/label/multi_transaction b/live-build/apparmor/generic/query/label/multi_transaction new file mode 100644 index 00000000..7cfab5b0 --- /dev/null +++ b/live-build/apparmor/generic/query/label/multi_transaction @@ -0,0 +1 @@ +yes diff --git a/live-build/apparmor/generic/query/label/perms b/live-build/apparmor/generic/query/label/perms new file mode 100644 index 00000000..71685cbf --- /dev/null +++ b/live-build/apparmor/generic/query/label/perms @@ -0,0 +1 @@ +allow deny audit quiet diff --git a/live-build/apparmor/generic/rlimit/mask b/live-build/apparmor/generic/rlimit/mask new file mode 100644 index 00000000..c305a7d2 --- /dev/null +++ b/live-build/apparmor/generic/rlimit/mask @@ -0,0 +1 @@ +cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime diff --git a/live-build/apparmor/generic/signal/mask b/live-build/apparmor/generic/signal/mask new file mode 100644 index 00000000..9eb55a04 --- /dev/null +++ b/live-build/apparmor/generic/signal/mask @@ -0,0 +1 @@ +hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost diff --git a/live-build/auto/build b/live-build/auto/build index 3c8f76fe..4cd879bd 100755 --- a/live-build/auto/build +++ b/live-build/auto/build @@ -112,7 +112,26 @@ preinstall_snaps() { for snap in "$@"; do SNAP_NO_VALIDATE_SEED=1 snap_preseed chroot "${snap}" done + + if [ ! -c /dev/mem ]; then + mknod -m 660 /dev/mem c 1 1 + chown root:kmem /dev/mem + fi + + mount --rbind /dev chroot/dev + mount --bind /sys chroot/sys + mount --bind /sys/kernel/security chroot/sys/kernel/security + mount --bind /proc chroot/proc + # Provide more up to date apparmor features, matching target kernel + mount -o bind /usr/share/livecd-rootfs/live-build/apparmor/generic chroot/sys/kernel/security/apparmor/features + mount -o bind /usr/share/livecd-rootfs/live-build/seccomp/generic.actions_avail chroot/proc/sys/kernel/seccomp/actions_avail + snap_validate_seed chroot + + umount --recursive chroot/proc + umount --recursive chroot/sys + umount --recursive chroot/dev + lb chroot_resolv remove } diff --git a/live-build/functions b/live-build/functions index 2a386990..483fc807 100644 --- a/live-build/functions +++ b/live-build/functions @@ -90,9 +90,18 @@ mount_image() { setup_mountpoint() { local mountpoint="$1" + if [ ! -c /dev/mem ]; then + mknod -m 660 /dev/mem c 1 1 + chown root:kmem /dev/mem + fi + mount --rbind /dev "$mountpoint/dev" mount proc-live -t proc "$mountpoint/proc" mount sysfs-live -t sysfs "$mountpoint/sys" + mount securityfs -t securityfs "$mountpoint/sys/kernel/security" + # Provide more up to date apparmor features, matching target kernel + mount -o bind /usr/share/livecd-rootfs/live-build/apparmor/generic "$mountpoint/sys/kernel/security/apparmor/features/" + mount -o bind /usr/share/livecd-rootfs/live-build/seccomp/generic.actions_avail "$mountpoint/proc/sys/kernel/seccomp/actions_avail" mount -t tmpfs none "$mountpoint/tmp" mount -t tmpfs none "$mountpoint/var/lib/apt" mount -t tmpfs none "$mountpoint/var/cache/apt" @@ -687,6 +696,9 @@ snap_validate_seed() { if [ -e "${CHROOT_ROOT}/var/lib/snapd/seed/seed.yaml" ]; then snap debug validate-seed "${CHROOT_ROOT}/var/lib/snapd/seed/seed.yaml" + /usr/lib/snapd/snap-preseed --reset $(realpath "${CHROOT_ROOT}") + /usr/lib/snapd/snap-preseed $(realpath "${CHROOT_ROOT}") + chroot "${CHROOT_ROOT}" apparmor_parser --skip-read-cache --write-cache --skip-kernel-load --verbose -j `nproc` /etc/apparmor.d fi } diff --git a/live-build/seccomp/generic.actions_avail b/live-build/seccomp/generic.actions_avail new file mode 100644 index 00000000..a608f9fd --- /dev/null +++ b/live-build/seccomp/generic.actions_avail @@ -0,0 +1 @@ +kill_process kill_thread trap errno user_notif trace log allow diff --git a/live-build/ubuntu-server/hooks/032-installer-squashfs.binary b/live-build/ubuntu-server/hooks/032-installer-squashfs.binary index 99dab98c..a86deb35 100755 --- a/live-build/ubuntu-server/hooks/032-installer-squashfs.binary +++ b/live-build/ubuntu-server/hooks/032-installer-squashfs.binary @@ -21,10 +21,9 @@ if [ -n "$SUBARCH" ]; then exit 0 fi +. config/binary . config/functions . config/common -# somehow i don't have LB_DISTRIBUTION set ?! -. config/bootstrap FILESYSTEM_ROOT=binary/boot/squashfs.dir INSTALLER_ROOT=binary/boot/installer.squashfs.dir @@ -84,6 +83,12 @@ sed -i -e'N;/name: lxd/,+2d' $INSTALLER_ROOT/var/lib/snapd/seed/seed.yaml teardown_mountpoint "$INSTALLER_ROOT" +# Drop core/lxd/snapd that got copied up from base layer, due to +# snap-preseed tool doing --reset & speedup +find $OVERLAY_ROOT/var/lib/snapd/ -name 'core*.snap' -delete +find $OVERLAY_ROOT/var/lib/snapd/ -name 'snapd_*.snap' -delete +find $OVERLAY_ROOT/var/lib/snapd/ -name 'lxd_*.snap' -delete + squashfs_f="${PWD}/livecd.${PROJECT}.installer.squashfs" create_squashfs "$OVERLAY_ROOT/" ${squashfs_f}