diff --git a/UTM.ign b/UTM.ign new file mode 100644 index 0000000..e5ecfe6 --- /dev/null +++ b/UTM.ign @@ -0,0 +1,142 @@ +{ + "ignition": { + "version": "3.3.0" + }, + "kernelArguments": { + "shouldExist": [ + "spectre_v2=on", + "spec_store_bypass_disable=on", + "l1tf=full,force", + "mds=full,nosmt", + "tsx=off", + "tsx_async_abort=full,nosmt", + "kvm.nx_huge_pages=force", + "nosmt=force", + "l1d_flush=on", + "mmio_stale_data=full,nosmt", + "random.trust_bootloader=off", + "random.trust_cpu=off", + "intel_iommu=on", + "amd_iommu=on", + "iommu.passthrough=0 iommu.strict=1", + "slab_nomerge", + "init_on_alloc=1", + "init_on_free=1", + "pti=on", + "vsyscall=none", + "page_alloc.shuffle=1", + "randomize_kstack_offset=on", + "extra_latent_entropy", + "debugfs=off" + ] + }, + "passwd": { + "users": [ + { + "groups": [ + "wheel", + "sudo" + ], + "name": "tomster", + "sshAuthorizedKeys": [ + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDbVNnQVs6SVW1GvQQ7FE6afs08LMtTNmDIPtoT3+Aqa7I3HOZRgWpqh3kIz3OTOCs2zl5JHCJDaANvadjGFcdtSI+zy7bozpj5TJWGDnGkH3Rp2SBBRK6twjjrN9nbTJ2ihlkXEOA2e3SDFXEkwu6t0fLZelBUk3FWnbK/xPmsRUuEF90oxpXpZIPeFbE4nNK3HarNPL+XzA2xzSqrwNk9ICCJ9MS3OcnPpWIQR3LKLEgyPFKwy4K6WzQyNvr5uFAcV9Zrq9TM93HSOUdtFFXcDeAEu76cQorsgAyU7XbAPqSza780qF/kHhQ+Hb4q1Wmyk62nAu7dT86lujpzIWXOdFJZyb3WWjP21qe7bk8A1S5Q9lfto/bo0Rs2wHbBRtoxMrb8DTC3EtErjN/IXMZrqMZpj3hNiNxP3PYKXLWb6AbuWjQO5d4Tu4vv4QWKGyJwvkI55V0sI9a2lLODAK+x9z4K7cbGLFHqdEFCLkq7sDU3zd9q68//M/LQO3AO9sMpd8jHDg0xdgdfh5dP6grUDypz1h/HtXCT+w3Ka2geitqoTMv6y0WO1vT+c97mvbjf24rwoLiPe7qVPnxKTRPNRH1vhmOLeZsQva2ATXBCR/J+Xn4JzSWOt17N/s5ldvfD+d6FrYzDNw664efaXMIWCbVJtlKvas0I9iM2VYRM7Q==", + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDcmfm4RKkVC02QrF6ajGVVlbO3+AiVVyfoO4jbUjNbBNarVNgOHNC2lyxo3DJG33uKg74/e6fwj2mr2qW7Bq/yefmMqZrwY6ZyBDOOnkmsaMjX3Q5dJVRvHaYDShseJEBVtALVZFPyYQhdCdCEI/pO1Oeh+bDgLFinWoKAx6Fau8ArjbCsU4WfmgTUQae8AkE5e+uj+2T7Nq195CgfWEnAcKTKEYTr+6Y5a8L/w6ugto41bXvbwWhgogMT7epkcsfSF14M5hi0kBTawmzSi6HsqnAs4PWadaN0IMtfZJ/ZdpNw2QjdDKReGc3AcvEUQU9840RgVmXLp0JT5kdHJZabYcpPaDRwTw3A/oNIEZCzOKve8j4aFrf003etUn7Vq5wchyqyRrk2KRnK61v8BOtF7REs5jw/hQ1PdbsGewhxmGQy3gJ670BS1apQDvrZVHUqIsl3SGcykBBQvLu0F5erZ3ENPAk0wb++ygBtqsoF0wV9rv+L/VEh7233/TUQbH6K2ggZg5SvQnjUA4JqnBcSPf8kMlEGCU+8yeGSF086vL3gpVF6VpvUa34Sh+RbLGtNPVcoTSa2yLwSHdU0NmA9Lj/0M3+ty+uK4pBU86zIIAmyB9NBN/TcpeR7PVi3J991EbVLZgwzAK7S/LAmE6vWLG1IoQbDDN7QCB9XWiFiaQ==" + ] + } + ] + }, + "storage": { + "files": [ + { + "path": "/etc/ssh/sshd_config.d/10-custom.conf", + "contents": { + "compression": "", + "source": "data:,X11Forwarding%20no%0AGSSAPIAuthentication%20no%0A" + } + }, + { + "path": "/etc/zincati/config.d/51-rollout-wariness.toml", + "contents": { + "compression": "", + "source": "data:,%5Bidentity%5D%0Arollout_wariness%20%3D%200%0A" + } + }, + { + "path": "/etc/zincati/config.d/55-updates-strategy.toml", + "contents": { + "compression": "gzip", + "source": "data:;base64,H4sIAAAAAAAC/2SNMarEMAxEe51C6ADB1S8+5BRbGmNMLLIGRw62TMieflGRats3b2b8PHNSHgGG9qS837gindxLy2UjePLlQQG0HBw/TdjM2rZUjRD4H3e5iuR2hQA53QNX9EivKYT2lrpGK9qK+3eOoLLs+o5Hkals+p+DbwAAAP//4Po2vKAAAAA=" + } + }, + { + "overwrite": true, + "path": "/etc/systemd/zram-generator.conf", + "contents": { + "compression": "", + "source": "data:;base64,IyBUaGlzIGNvbmZpZyBmaWxlIGVuYWJsZXMgYSAvZGV2L3pyYW0wIGRldmljZSB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzClt6cmFtMF0KenJhbS1mcmFjdGlvbiA9IDEKbWF4LXpyYW0tc2l6ZSA9IDgxOTIK" + } + }, + { + "overwrite": true, + "path": "/etc/security/limits.d/30-disable-coredump.conf", + "contents": { + "compression": "", + "source": "data:,*%20hard%20core%200%0A" + } + }, + { + "overwrite": true, + "path": "/etc/ssh/ssh_config.d/10-custom.conf", + "contents": { + "compression": "", + "source": "data:,GSSAPIAuthentication%20no%0AVerifyHostKeyDNS%20yes%0A" + } + } + ], + "links": [ + { + "path": "/etc/systemd/system/kdump.service.target", + "target": "/dev/null" + } + ] + }, + "systemd": { + "units": [ + { + "contents": "[Unit]\nDescription=Initial System Setup\n# We run after `systemd-machine-id-commit.service` to ensure that\n# `ConditionFirstBoot=true` services won't rerun on the next boot.\nAfter=systemd-machine-id-commit.service\nAfter=network-online.target\n# We run before `zincati.service` to avoid conflicting rpm-ostree\n# transactions.\nBefore=zincati.service\nConditionPathExists=!/var/lib/%N.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/rpm-ostree install firewalld qemu-guest-agent\nExecStart=/usr/bin/rpm-ostree override remove cifs-utils samba-common-libs samba-client-libs libsmbclient libwbclient samba-common sssd-krb5-common sssd-ipa sssd-nfs-idmap sssd-ldap sssd-client sssd-ad sssd-common sssd-krb5 sssd-common-pac\nExecStart=/usr/bin/sed -i 's/nullok//g' /etc/pam.d/system-auth\nExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf -o /etc/modprobe.d/30_security-misc.conf\nExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_security-misc.conf -o /etc/sysctl.d/30_security-misc.conf\nExecStart=/usr/bin/sed -i 's/kernel.yama.ptrace_scope=2/kernel.yama.ptrace_scope=1/g' /etc/sysctl.d/30_security-misc.conf\nExecStart=/usr/bin/sed -i 's/net.ipv4.icmp_echo_ignore_all=1/net.ipv4.icmp_echo_ignore_all=0/g' /etc/sysctl.d/30_security-misc.conf\nExecStart=/usr/bin/sed -i 's/net.ipv6.icmp.echo_ignore_all=1/net.ipv6.icmp.echo_ignore_all=0/g' /etc/sysctl.d/30_security-misc.conf\nExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_silent-kernel-printk.conf -o /etc/sysctl.d/30_silent-kernel-printk.conf\nExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_security-misc_kexec-disable.conf -o /etc/sysctl.d/30_security-misc_kexec-disable.conf\nExecStart=/usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf -o /etc/chrony.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d\nExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf -o /etc/systemd/system/NetworkManager.service.d/99-brace.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d\nExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf -o /etc/systemd/system/irqbalance.service.d/99-brace.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d\nExecStart=/usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/limits.conf -o /etc/systemd/system/sshd.service.d/limits.conf\nExecStart=/bin/systemctl disable systemd-resolved\nExecStart=/bin/touch /var/lib/%N.stamp\nExecStart=/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target\n", + "enabled": true, + "name": "postinst.service" + }, + { + "contents": "[Service]\nType=oneshot\nExecStart=/usr/sbin/setsebool container_use_cephfs off\nExecStart=/usr/sbin/setsebool virt_use_nfs off\nExecStart=/usr/sbin/setsebool virt_use_samba off\nRemainAfterExit=yes\n[Install]\nWantedBy=multi-user.target\n", + "enabled": true, + "name": "setsebool.service" + }, + { + "enabled": true, + "name": "docker.service" + }, + { + "enabled": true, + "name": "fstrim.timer" + }, + { + "enabled": true, + "name": "systemd-oomd.service" + }, + { + "enabled": false, + "mask": true, + "name": "rpm-ostree-countme.timer" + }, + { + "enabled": false, + "name": "sshd.service" + }, + { + "enabled": true, + "name": "sshd.socket" + } + ] + } +} diff --git a/UTM.yml b/UTM.yml new file mode 100644 index 0000000..ac08019 --- /dev/null +++ b/UTM.yml @@ -0,0 +1,148 @@ +variant: fcos +version: 1.4.0 +passwd: + users: + - name: tomster + ssh_authorized_keys: + - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDbVNnQVs6SVW1GvQQ7FE6afs08LMtTNmDIPtoT3+Aqa7I3HOZRgWpqh3kIz3OTOCs2zl5JHCJDaANvadjGFcdtSI+zy7bozpj5TJWGDnGkH3Rp2SBBRK6twjjrN9nbTJ2ihlkXEOA2e3SDFXEkwu6t0fLZelBUk3FWnbK/xPmsRUuEF90oxpXpZIPeFbE4nNK3HarNPL+XzA2xzSqrwNk9ICCJ9MS3OcnPpWIQR3LKLEgyPFKwy4K6WzQyNvr5uFAcV9Zrq9TM93HSOUdtFFXcDeAEu76cQorsgAyU7XbAPqSza780qF/kHhQ+Hb4q1Wmyk62nAu7dT86lujpzIWXOdFJZyb3WWjP21qe7bk8A1S5Q9lfto/bo0Rs2wHbBRtoxMrb8DTC3EtErjN/IXMZrqMZpj3hNiNxP3PYKXLWb6AbuWjQO5d4Tu4vv4QWKGyJwvkI55V0sI9a2lLODAK+x9z4K7cbGLFHqdEFCLkq7sDU3zd9q68//M/LQO3AO9sMpd8jHDg0xdgdfh5dP6grUDypz1h/HtXCT+w3Ka2geitqoTMv6y0WO1vT+c97mvbjf24rwoLiPe7qVPnxKTRPNRH1vhmOLeZsQva2ATXBCR/J+Xn4JzSWOt17N/s5ldvfD+d6FrYzDNw664efaXMIWCbVJtlKvas0I9iM2VYRM7Q== + - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDcmfm4RKkVC02QrF6ajGVVlbO3+AiVVyfoO4jbUjNbBNarVNgOHNC2lyxo3DJG33uKg74/e6fwj2mr2qW7Bq/yefmMqZrwY6ZyBDOOnkmsaMjX3Q5dJVRvHaYDShseJEBVtALVZFPyYQhdCdCEI/pO1Oeh+bDgLFinWoKAx6Fau8ArjbCsU4WfmgTUQae8AkE5e+uj+2T7Nq195CgfWEnAcKTKEYTr+6Y5a8L/w6ugto41bXvbwWhgogMT7epkcsfSF14M5hi0kBTawmzSi6HsqnAs4PWadaN0IMtfZJ/ZdpNw2QjdDKReGc3AcvEUQU9840RgVmXLp0JT5kdHJZabYcpPaDRwTw3A/oNIEZCzOKve8j4aFrf003etUn7Vq5wchyqyRrk2KRnK61v8BOtF7REs5jw/hQ1PdbsGewhxmGQy3gJ670BS1apQDvrZVHUqIsl3SGcykBBQvLu0F5erZ3ENPAk0wb++ygBtqsoF0wV9rv+L/VEh7233/TUQbH6K2ggZg5SvQnjUA4JqnBcSPf8kMlEGCU+8yeGSF086vL3gpVF6VpvUa34Sh+RbLGtNPVcoTSa2yLwSHdU0NmA9Lj/0M3+ty+uK4pBU86zIIAmyB9NBN/TcpeR7PVi3J991EbVLZgwzAK7S/LAmE6vWLG1IoQbDDN7QCB9XWiFiaQ== + groups: + - wheel + - sudo +systemd: + units: + - name: postinst.service + enabled: true + contents: | + [Unit] + Description=Initial System Setup + # We run after `systemd-machine-id-commit.service` to ensure that + # `ConditionFirstBoot=true` services won't rerun on the next boot. + After=systemd-machine-id-commit.service + After=network-online.target + # We run before `zincati.service` to avoid conflicting rpm-ostree + # transactions. + Before=zincati.service + ConditionPathExists=!/var/lib/%N.stamp + + [Service] + Type=oneshot + RemainAfterExit=yes + ExecStart=/usr/bin/rpm-ostree install firewalld qemu-guest-agent + ExecStart=/usr/bin/rpm-ostree override remove cifs-utils samba-common-libs samba-client-libs libsmbclient libwbclient samba-common sssd-krb5-common sssd-ipa sssd-nfs-idmap sssd-ldap sssd-client sssd-ad sssd-common sssd-krb5 sssd-common-pac + ExecStart=/usr/bin/sed -i 's/nullok//g' /etc/pam.d/system-auth + ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf -o /etc/modprobe.d/30_security-misc.conf + ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_security-misc.conf -o /etc/sysctl.d/30_security-misc.conf + ExecStart=/usr/bin/sed -i 's/kernel.yama.ptrace_scope=2/kernel.yama.ptrace_scope=1/g' /etc/sysctl.d/30_security-misc.conf + ExecStart=/usr/bin/sed -i 's/net.ipv4.icmp_echo_ignore_all=1/net.ipv4.icmp_echo_ignore_all=0/g' /etc/sysctl.d/30_security-misc.conf + ExecStart=/usr/bin/sed -i 's/net.ipv6.icmp.echo_ignore_all=1/net.ipv6.icmp.echo_ignore_all=0/g' /etc/sysctl.d/30_security-misc.conf + ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_silent-kernel-printk.conf -o /etc/sysctl.d/30_silent-kernel-printk.conf + ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_security-misc_kexec-disable.conf -o /etc/sysctl.d/30_security-misc_kexec-disable.conf + ExecStart=/usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf -o /etc/chrony.conf + ExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d + ExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf -o /etc/systemd/system/NetworkManager.service.d/99-brace.conf + ExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d + ExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf -o /etc/systemd/system/irqbalance.service.d/99-brace.conf + ExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d + ExecStart=/usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/limits.conf -o /etc/systemd/system/sshd.service.d/limits.conf + ExecStart=/bin/systemctl disable systemd-resolved + ExecStart=/bin/touch /var/lib/%N.stamp + ExecStart=/bin/systemctl --no-block reboot + + [Install] + WantedBy=multi-user.target + - name: setsebool.service + enabled: true + contents: | + [Service] + Type=oneshot + ExecStart=/usr/sbin/setsebool container_use_cephfs off + ExecStart=/usr/sbin/setsebool virt_use_nfs off + ExecStart=/usr/sbin/setsebool virt_use_samba off + RemainAfterExit=yes + [Install] + WantedBy=multi-user.target + - name: docker.service + enabled: true + - name: fstrim.timer + enabled: true + - name: systemd-oomd.service + enabled: true + - name: rpm-ostree-countme.timer + enabled: false + mask: true + - name: sshd.service + enabled: false + - name: sshd.socket + enabled: true +storage: + files: + - path: /etc/ssh/sshd_config.d/10-custom.conf + contents: + inline: | + X11Forwarding no + GSSAPIAuthentication no + - path: /etc/zincati/config.d/51-rollout-wariness.toml + contents: + inline: | + [identity] + rollout_wariness = 0 + - path: /etc/zincati/config.d/55-updates-strategy.toml + contents: + inline: | + [updates] + strategy = "periodic" + [updates.periodic] + time_zone = "localtime" + [[updates.periodic.window]] + days = [ "Sun" ] + start_time = "0:00" + length_minutes = 60 + - path: /etc/systemd/zram-generator.conf + overwrite: true + contents: + inline: | + # This config file enables a /dev/zram0 device with the default settings + [zram0] + zram-fraction = 1 + max-zram-size = 8192 + - path: /etc/security/limits.d/30-disable-coredump.conf + overwrite: true + contents: + inline: | + * hard core 0 + - path: /etc/ssh/ssh_config.d/10-custom.conf + overwrite: true + contents: + inline: | + GSSAPIAuthentication no + VerifyHostKeyDNS yes + links: + - path: /etc/systemd/system/kdump.service.target + target: /dev/null +kernel_arguments: + should_exist: + - spectre_v2=on + - spec_store_bypass_disable=on + - l1tf=full,force + - mds=full,nosmt + - tsx=off + - tsx_async_abort=full,nosmt + - kvm.nx_huge_pages=force + - nosmt=force + - l1d_flush=on + - mmio_stale_data=full,nosmt + - random.trust_bootloader=off + - random.trust_cpu=off + - intel_iommu=on + - amd_iommu=on + - iommu.passthrough=0 iommu.strict=1 + - slab_nomerge + - init_on_alloc=1 + - init_on_free=1 + - pti=on + - vsyscall=none + - page_alloc.shuffle=1 + - randomize_kstack_offset=on + - extra_latent_entropy + - debugfs=off