From 89b9395dfe7c8f48eb4980bd373c67594f0e526a Mon Sep 17 00:00:00 2001 From: Tommy Date: Wed, 7 Feb 2024 07:27:18 -0700 Subject: [PATCH] Code cleanup Signed-off-by: Tommy --- Docker-Compose.ign | 227 ----------------- Docker-Compose.yml | 436 -------------------------------- Generic.ign | 71 +++++- Generic.yml | 60 +++-- Mailcow/README.md | 3 - Mailcow/mailcow-updater.service | 14 - Mailcow/my-pdatesh.te | 7 - No-Config.ign | 19 -- No-Config.yml | 24 -- UTM.ign => UTM-Chrony.ign | 78 ++++-- UTM.yml => UTM-Chrony.yml | 90 +++---- kargs | 2 +- 12 files changed, 188 insertions(+), 843 deletions(-) delete mode 100644 Docker-Compose.ign delete mode 100644 Docker-Compose.yml delete mode 100644 Mailcow/README.md delete mode 100644 Mailcow/mailcow-updater.service delete mode 100644 Mailcow/my-pdatesh.te delete mode 100644 No-Config.ign delete mode 100644 No-Config.yml rename UTM.ign => UTM-Chrony.ign (55%) rename UTM.yml => UTM-Chrony.yml (70%) diff --git a/Docker-Compose.ign b/Docker-Compose.ign deleted file mode 100644 index 88cecff..0000000 --- a/Docker-Compose.ign +++ /dev/null @@ -1,227 +0,0 @@ -{ - "ignition": { - "version": "3.4.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=force_isolation", - "efi=disable_early_pci_dma", - "iommu=force", - "iommu.passthrough=0", - "iommu.strict=1", - "slab_nomerge", - "init_on_alloc=1", - "init_on_free=1", - "pti=on", - "vsyscall=none", - "ia32_emulation=0", - "page_alloc.shuffle=1", - "randomize_kstack_offset=on", - "extra_latent_entropy", - "debugfs=off" - ] - }, - "passwd": { - "users": [ - { - "groups": [ - "wheel", - "sudo" - ], - "name": "tomster", - "sshAuthorizedKeys": [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINkTKkJS7Id1WCyA5Klu/moLG9mP5hTC+v2qYqypMF1u contact@tommytran.io" - ] - }, - { - "name": "unpriv" - } - ] - }, - "storage": { - "files": [ - { - "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=" - } - }, - { - "path": "/etc/yum.repos.d/docker-ce.repo", - "contents": { - "compression": "gzip", - "source": "data:;base64,H4sIAAAAAAAC/7zSsU+EMBTH8b1/BcOtvepqwuS5upybcSjt7wqh15K2qPffGyjKQCAm8pxoHqQvn/B91V61CFyBxyQrizfm5BXlaRwXj0/FeRwXvDhUMkIGVbPh0Adb1il18UEI7T+c9VIf82VH5a/CNq7/FBdoH6Q4BFjIiHcE8XONyAsZ3PDQ5T0znVE1VJuPLW6/32A6w9gCwzWq3jTu4tdZp+9P9gKOO/kq846AGX0f1MavO4/v499ceQkpJyGmheIFMVHkNyyjY2ykN4HIwyMGrkQ36fZMjg7iGlMne1sgnvOcIrtpJalnI75ZRt7fv0hXKpyZe4a4u+grAAD//29EVAF/BwAA" - } - }, - { - "overwrite": true, - "path": "/etc/tuned/active_profile", - "contents": { - "compression": "", - "source": "data:,virtual-guest%0A" - } - }, - { - "overwrite": true, - "path": "/etc/tuned/profile_mode", - "contents": { - "compression": "", - "source": "data:,manual%0A" - } - }, - { - "overwrite": true, - "path": "/etc/systemd/zram-generator.conf", - "contents": { - "compression": "", - "source": "data:,%5Bzram0%5D%0Azram-fraction%20%3D%201%0Amax-zram-size%20%3D%208192%0Acompression-algorithm%20%3D%20zstd%0A" - } - }, - { - "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" - } - }, - { - "path": "/etc/systemd/system/automatic-updater.service", - "contents": { - "compression": "gzip", - "source": "data:;base64,H4sIAAAAAAAC/4yQsU78MAyHdz9Fpf/cyxNkuL8OIVaO6oaqQ0hMz2pqB8cB+vYM5YSEGNh+0vf5GzwOTDbBCWtUKkbC/thM1mAUu6GkYKhwfDFUnyQuqIeK+kYR4RFfGylWz2jvoksvnInxYEFntG/84wzG874mGCqqVxGDe5VW9nkRXYjnEylGE928K8GuzsTtoT7KWqSiSzcD/t19YDxbUPOuVXXPxG4m60rLGX5he6j7Cv1Va6XrEzxtBb0w1qsYwPjA1ULOE1wCG6b/m19bNupbRb194jMAAP//N1DJcGMBAAA=" - } - }, - { - "overwrite": true, - "path": "/etc/sysconfig/chronyd", - "contents": { - "compression": "", - "source": "data:,%23%20Command-line%20options%20for%20chronyd%0AOPTIONS%3D%22-F%201%22%0A" - } - }, - { - "overwrite": true, - "path": "/etc/unbound/unbound.conf", - "contents": { - "compression": "gzip", - "source": "data:;base64,H4sIAAAAAAAC/6xSQWvcPBC9768Q/s5jezfZ5MNQ6CWFQktL00uPE2lsD5ElZzTa1Pn1RbtdlyyFQqkNxp4373ne0ySSA0m3McaOEqN2pqo2G2MwawSVnBQw2DEK9OypM1VzQGk8PzQ5PMQcXFNY9SMt1caYV4TEQ0DPYejMQmljTOmER1ogUVAO5E9A4fkElkThIQdXftOQ2iYl35RqaiweYe7ZolKqreiZxfNIkjpTff7y6d37D3dv7r/df737eDQxsiMYVWfIiQRwoKDnYY4YuzKJLq+KRxMnD6/qB5LEMaxDOwoLYPhFRnEUAP0QwcXnMAg6ugA9ykDwlEmY0gUm1JMIephRxwssjfGYTp/4ZdXkIUQhsA56j2vKE36H7GY4dV61t7tSjC57AhtDz0NnqgN6dqhRDCtJeSnH9xRwIpg48MQJlWOApMJ2DS2HZwxKDoRmv4COQmmM3nVm256u0pQILM4J+ijAbs0rZh0ihwHm4mUmmVgLcXcNN/v91b70zCUEtav983dZm59CfZRnFAcvMVDZ2zJzZ6q6GDhjZTPynFQIp7PUGUPnpDPbuty7t//vr/5LZLOwLrX1MbveoxC4kGobp9/w2rr9C97upr3prm/b9vTottvtPxBp2z+L/AgAAP//qRxiA+IDAAA=" - } - }, - { - "path": "/etc/systemd/system/unbound.service.d/override.conf", - "contents": { - "compression": "gzip", - "source": "data:;base64,H4sIAAAAAAAC/2yRQWvcPBCG7/srBN8hp+T43Qxekt12ycYsiUsLpRRZfrMZLGvMzMjEl/72oqUbauhJo2dmmNGj7y+QmQJ+bJ4wsiwPSMtXIcPuHSEbKpOMzUlo9oYHlFJdsXacrnc2BPvMI1bgPnIY1oSTCcdPwnnSVeYRkhCPfP4XfuI+x+v0/1z7Ruo6gR/UZaV0dsphgDmejDipizTA3SjfSpi7/Hpz53bvU6RAFhfXk/ouwr2yuJmUOopky916YptTKVovcxIOFaVLU8TmGWpCwbZ9L1Dd+5EiQavt/ueh2bXuz/l/CZpdezw0jyX80hy+ffQ+w0ejq7eXRQ3jvY9xK+GNysws0Cp5o/nv9J6iQapfdSiKXR2mfIsxR1/e7+oeXT67esAixU49Xvy5kXMyV3OnHGFwtUA5S4B+7NP4ETr58tULdHPkMJwgyskXSRf2OwAA///OGG3DOAIAAA==" - } - }, - { - "path": "/etc/docker/daemon.json", - "contents": { - "compression": "gzip", - "source": "data:;base64,H4sIAAAAAAAC/9RSS2rDMBDd+xRCaw/aB7zoOUoXiq04wfqhGbmUkrsXyU6oiigNNWmzMVjz5ul99N4wxhgf1EFGTRCipZNRfMd4iBZ7wDekID1vF9w6R75jy+blFHuYZlMc55GXdExsImIQ2vVSi/3Jiryxkn6mSeRPYUz8z8UwAwC8lnRwwXTpsraGsIpeXZi6o0PiBeDl+nduv2q/2Lyb/jLXTTxMs2EAaQfigJ3zyv63PqqIUvGtlf2d5Z9XuKXtaTYwqH0cH6LbrBS0GztBxourBfENvD5KWffq5udx76x++Siqea2cm2fWLN9z8xEAAP//Je94AgUGAAA=" - } - } - ], - "links": [ - { - "path": "/etc/localtime", - "target": "../usr/share/zoneinfo/America/New_York" - }, - { - "path": "/etc/systemd/system/multi-user.target.wants/unbound.service", - "target": "/usr/lib/systemd/system/unbound.service" - }, - { - "path": "/etc/systemd/system/multi-user.target.wants/tuned.service", - "target": "/usr/lib/systemd/system/tuned.service" - }, - { - "path": "/etc/systemd/system/kdump.service", - "target": "/dev/null" - }, - { - "path": "/etc/systemd/system/debug-shell.service", - "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/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf | /usr/bin/tee /etc/chrony.conf\nExecStart=/usr/bin/systemctl restart chronyd\nExecStart=/usr/bin/rpm-ostree override remove cifs-utils containerd moby-engine runc 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/rpm-ostree install docker-ce docker-compose-plugin firewalld qemu-guest-agent tuned unbound\nExecStart=/usr/bin/sed -i 's/nullok//g' /etc/pam.d/system-auth\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf | /usr/bin/tee /etc/modprobe.d/30_security-misc.conf\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf | /usr/bin/tee /etc/sysctl.d/990-security-misc.conf\nExecStart=/usr/bin/sed -i 's/kernel.yama.ptrace_scope=2/kernel.yama.ptrace_scope=1/g' /etc/sysctl.d/990-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/990-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/990-security-misc.conf\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf | /usr/bin/tee /etc/sysctl.d/30_silent-kernel-printk.conf\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf | /usr/bin/tee /etc/sysctl.d/30_security-misc_kexec-disable.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf | /usr/bin/tee /etc/systemd/system/NetworkManager.service.d/99-brace.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf | /usr/bin/tee /etc/systemd/system/irqbalance.service.d/99-brace.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf | /usr/bin/tee /etc/systemd/system/sshd.service.d/override.conf\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf | /usr/bin/tee /etc/ssh/sshd_config.d/10-custom.conf\nExecStart=/usr/bin/systemctl disable systemd-resolved\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target\n", - "enabled": true, - "name": "postinst.service" - }, - { - "contents": "[Unit]\nDescription=Initial System Setup Part 2\n# We run this after the packages have been overlayed\nAfter=network-online.target\nConditionPathExists=!/var/lib/%N.stamp\nConditionPathExists=/var/lib/postinst.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/firewall-cmd --lockdown-on\n\n[Install]\nWantedBy=multi-user.target\n", - "enabled": true, - "name": "postinst2.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" - }, - { - "contents": "[Unit]\nDescription=gVisor Update\nRequires=network-online.target\nBefore=docker.service\n\n[Service]\nWorkingDirectory=/var/home/unpriv\nType=oneshot\nExecStart=/usr/bin/sleep 5\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc.sha512\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1.sha512\nExecStart=/usr/bin/sha512sum -c runsc.sha512 -c containerd-shim-runsc-v1.sha512\nExecStart=/usr/bin/rm -f runsc.sha512 containerd-shim-runsc-v1.sha512\nExecStart=/usr/bin/chown root:root runsc containerd-shim-runsc-v1\nExecStart=/usr/bin/chmod a+rx runsc containerd-shim-runsc-v1\nExecStart=/usr/bin/mv runsc containerd-shim-runsc-v1 /var/usrlocal/bin\nExecStart=/usr/bin/chcon system_u:object_r:container_runtime_exec_t:s0 /var/usrlocal/bin/runsc\n\n[Install]\nWantedBy=multi-user.target\n", - "enabled": true, - "name": "gvisor-updater.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/Docker-Compose.yml b/Docker-Compose.yml deleted file mode 100644 index e8c7880..0000000 --- a/Docker-Compose.yml +++ /dev/null @@ -1,436 +0,0 @@ -# Copyright (C) 2023 Thien Tran -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not -# use this file except in compliance with the License. You may obtain a copy of -# the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations under -# the License. - -variant: fcos -version: 1.5.0 -passwd: - users: - - name: tomster - ssh_authorized_keys: - - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINkTKkJS7Id1WCyA5Klu/moLG9mP5hTC+v2qYqypMF1u contact@tommytran.io - groups: - - wheel - - sudo - - name: unpriv -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/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf | /usr/bin/tee /etc/chrony.conf - ExecStart=/usr/bin/systemctl restart chronyd - ExecStart=/usr/bin/rpm-ostree override remove cifs-utils containerd moby-engine runc 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/rpm-ostree install docker-ce docker-compose-plugin firewalld qemu-guest-agent tuned unbound - ExecStart=/usr/bin/sed -i 's/nullok//g' /etc/pam.d/system-auth - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf | /usr/bin/tee /etc/modprobe.d/30_security-misc.conf - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf | /usr/bin/tee /etc/sysctl.d/990-security-misc.conf - ExecStart=/usr/bin/sed -i 's/kernel.yama.ptrace_scope=2/kernel.yama.ptrace_scope=1/g' /etc/sysctl.d/990-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/990-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/990-security-misc.conf - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf | /usr/bin/tee /etc/sysctl.d/30_silent-kernel-printk.conf - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf | /usr/bin/tee /etc/sysctl.d/30_security-misc_kexec-disable.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf | /usr/bin/tee /etc/systemd/system/NetworkManager.service.d/99-brace.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf | /usr/bin/tee /etc/systemd/system/irqbalance.service.d/99-brace.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf | /usr/bin/tee /etc/systemd/system/sshd.service.d/override.conf - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf | /usr/bin/tee /etc/ssh/sshd_config.d/10-custom.conf - ExecStart=/usr/bin/systemctl disable systemd-resolved - ExecStart=/usr/bin/touch /var/lib/%N.stamp - ExecStart=/usr/bin/systemctl --no-block reboot - - [Install] - WantedBy=multi-user.target - - name: postinst2.service - enabled: true - contents: | - [Unit] - Description=Initial System Setup Part 2 - # We run this after the packages have been overlayed - After=network-online.target - ConditionPathExists=!/var/lib/%N.stamp - ConditionPathExists=/var/lib/postinst.stamp - - [Service] - Type=oneshot - RemainAfterExit=yes - ExecStart=/usr/bin/firewall-cmd --lockdown-on - - [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: gvisor-updater.service - enabled: true - contents: | - [Unit] - Description=gVisor Update - Requires=network-online.target - Before=docker.service - - [Service] - WorkingDirectory=/var/home/unpriv - Type=oneshot - ExecStart=/usr/bin/sleep 5 - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc.sha512 - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1 - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1.sha512 - ExecStart=/usr/bin/sha512sum -c runsc.sha512 -c containerd-shim-runsc-v1.sha512 - ExecStart=/usr/bin/rm -f runsc.sha512 containerd-shim-runsc-v1.sha512 - ExecStart=/usr/bin/chown root:root runsc containerd-shim-runsc-v1 - ExecStart=/usr/bin/chmod a+rx runsc containerd-shim-runsc-v1 - ExecStart=/usr/bin/mv runsc containerd-shim-runsc-v1 /var/usrlocal/bin - ExecStart=/usr/bin/chcon system_u:object_r:container_runtime_exec_t:s0 /var/usrlocal/bin/runsc - - [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/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/yum.repos.d/docker-ce.repo - contents: - inline: | - [docker-ce-stable] - name=Docker CE Stable - $basearch - baseurl=https://download.docker.com/linux/fedora/$releasever/$basearch/stable - enabled=1 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - [docker-ce-stable-debuginfo] - name=Docker CE Stable - Debuginfo $basearch - baseurl=https://download.docker.com/linux/fedora/$releasever/debug-$basearch/stable - enabled=0 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - [docker-ce-stable-source] - name=Docker CE Stable - Sources - baseurl=https://download.docker.com/linux/fedora/$releasever/source/stable - enabled=0 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - [docker-ce-test] - name=Docker CE Test - $basearch - baseurl=https://download.docker.com/linux/fedora/$releasever/$basearch/test - enabled=0 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - [docker-ce-test-debuginfo] - name=Docker CE Test - Debuginfo $basearch - baseurl=https://download.docker.com/linux/fedora/$releasever/debug-$basearch/test - enabled=0 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - [docker-ce-test-source] - name=Docker CE Test - Sources - baseurl=https://download.docker.com/linux/fedora/$releasever/source/test - enabled=0 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - [docker-ce-nightly] - name=Docker CE Nightly - $basearch - baseurl=https://download.docker.com/linux/fedora/$releasever/$basearch/nightly - enabled=0 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - [docker-ce-nightly-debuginfo] - name=Docker CE Nightly - Debuginfo $basearch - baseurl=https://download.docker.com/linux/fedora/$releasever/debug-$basearch/nightly - enabled=0 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - [docker-ce-nightly-source] - name=Docker CE Nightly - Sources - baseurl=https://download.docker.com/linux/fedora/$releasever/source/nightly - enabled=0 - gpgcheck=1 - gpgkey=https://download.docker.com/linux/fedora/gpg - - path: /etc/tuned/active_profile - overwrite: true - contents: - inline: | - virtual-guest - - path: /etc/tuned/profile_mode - overwrite: true - contents: - inline: | - manual - - path: /etc/systemd/zram-generator.conf - overwrite: true - contents: - inline: | - [zram0] - zram-fraction = 1 - max-zram-size = 8192 - compression-algorithm = zstd - - 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 - - path: /etc/systemd/system/automatic-updater.service - contents: - inline: | - [Unit] - Description=Automatic Updater - After=docker.service - Requires=network-online.target - Requires=docker.service - - [Service] - User=root - Group=root - WorkingDirectory=/path/to/docker-compose/directory - #ExecStart=/usr/bin/git pull - ExecStart=/usr/bin/docker compose pull - ExecStart=/usr/bin/docker compose up -d - Type=oneshot - - [Install] - WantedBy=multi-user.target - - path: /etc/sysconfig/chronyd - overwrite: true - contents: - inline: | - # Command-line options for chronyd - OPTIONS="-F 1" - - path: /etc/unbound/unbound.conf - overwrite: true - contents: - inline: | - server: - chroot: "" - - auto-trust-anchor-file: "/var/lib/unbound/root.key" - trust-anchor-signaling: yes - root-key-sentinel: yes - - tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt - tls-ciphers: "PROFILE=SYSTEM" - - hide-http-user-agent: yes - hide-identity: yes - hide-trustanchor: yes - hide-version: yes - - deny-any: yes - harden-algo-downgrade: yes - harden-large-queries: yes - harden-referral-path: yes - harden-short-bufsize: yes - ignore-cd-flag: yes - max-udp-size: 3072 - module-config: "validator iterator" - qname-minimisation-strict: yes - unwanted-reply-threshold: 10000000 - use-caps-for-id: yes - - outgoing-port-permit: 1024-65535 - - prefetch: yes - prefetch-key: yes - - forward-zone: - name: "." - forward-tls-upstream: yes - forward-addr: 1.1.1.2@853#security.cloudflare-dns.com - forward-addr: 1.0.0.2@853#security.cloudflare-dns.com - forward-addr: 2606:4700:4700::1112@853#security.cloudflare-dns.com - forward-addr: 2606:4700:4700::1002@853#security.cloudflare-dns.com - - path: /etc/systemd/system/unbound.service.d/override.conf - contents: - inline: | - [Service] - MemoryDenyWriteExecute=true - PrivateDevices=true - PrivateTmp=true - ProtectHome=true - ProtectClock=true - ProtectControlGroups=true - ProtectKernelLogs=true - ProtectKernelModules=true - # This breaks using socket options like 'so-rcvbuf'. Explicitly disable for visibility. - ProtectKernelTunables=true - ProtectProc=invisible - RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX - RestrictRealtime=true - SystemCallArchitectures=native - SystemCallFilter=~@clock @cpu-emulation @debug @keyring @module mount @obsolete @resources - RestrictNamespaces=yes - LockPersonality=yes - - path: /etc/docker/daemon.json - contents: - inline: | - { - "default-runtime": "runsc-systrap", - "runtimes": { - "runsc-kvm": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=kvm", - "--network=host" - ] - }, - "runsc-systrap": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=systrap", - "--network=host" - ] - }, - "runsc-kvm --host-uds=open": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=kvm", - "--network=host", - "--host-uds=open" - ] - }, - "runsc-systrap --host-uds=open": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=systrap", - "--network=host", - "--host-uds=open" - ] - }, - "runsc-kvm-debug": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=kvm", - "--network=host", - "--debug-log=/tmp/runsc-kvm/", - "--debug", - "--strace" - ] - }, - "runsc-systrap-debug": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=systrap", - "--network=host", - "--debug-log=/tmp/runsc-systrap/", - "--debug", - "--strace" - ] - } - } - } - links: - - path: /etc/localtime - target: ../usr/share/zoneinfo/America/New_York - - path: /etc/systemd/system/multi-user.target.wants/unbound.service - target: /usr/lib/systemd/system/unbound.service - - path: /etc/systemd/system/multi-user.target.wants/tuned.service - target: /usr/lib/systemd/system/tuned.service - - path: /etc/systemd/system/kdump.service - target: /dev/null - - path: /etc/systemd/system/debug-shell.service - 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=force_isolation - - efi=disable_early_pci_dma - - iommu=force - - iommu.passthrough=0 - - iommu.strict=1 - - slab_nomerge - - init_on_alloc=1 - - init_on_free=1 - - pti=on - - vsyscall=none - - ia32_emulation=0 - - page_alloc.shuffle=1 - - randomize_kstack_offset=on - - extra_latent_entropy - - debugfs=off diff --git a/Generic.ign b/Generic.ign index fd1840b..e9b66f6 100644 --- a/Generic.ign +++ b/Generic.ign @@ -4,16 +4,14 @@ }, "kernelArguments": { "shouldExist": [ + "mitigations=auto,nosmt", "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", + "spec_rstack_overflow=safe-ret", "random.trust_bootloader=off", "random.trust_cpu=off", "intel_iommu=on", @@ -76,6 +74,60 @@ }, { "overwrite": true, + "path": "/etc/chrony.conf", + "contents": { + "source": "https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf" + } + }, + { + "path": "/etc/modprobe.d/30_security-misc.conf", + "contents": { + "source": "https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf" + } + }, + { + "path": "/etc/sysctl.d/990-security-misc.conf", + "contents": { + "source": "https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf" + } + }, + { + "path": "/etc/sysctl.d/30_silent-kernel-printk.conf", + "contents": { + "source": "https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf" + } + }, + { + "path": "/etc/sysctl.d/30_security-misc_kexec-disable.conf", + "contents": { + "source": "https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf" + } + }, + { + "path": "/etc/systemd/system/NetworkManager.service.d/99-brace.conf", + "contents": { + "source": "https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf" + } + }, + { + "path": "/etc/systemd/system/irqbalance.service.d/99-brace.conf", + "contents": { + "source": "https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf" + } + }, + { + "path": "/etc/systemd/system/sshd.service.d/local.conf", + "contents": { + "source": "https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf" + } + }, + { + "path": "/etc/ssh/sshd_config/10-custom.conf", + "contents": { + "source": "https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf" + } + }, + { "path": "/etc/tuned/active_profile", "contents": { "compression": "", @@ -83,7 +135,6 @@ } }, { - "overwrite": true, "path": "/etc/tuned/profile_mode", "contents": { "compression": "", @@ -91,7 +142,6 @@ } }, { - "overwrite": true, "path": "/etc/systemd/zram-generator.conf", "contents": { "compression": "", @@ -99,7 +149,6 @@ } }, { - "overwrite": true, "path": "/etc/security/limits.d/30-disable-coredump.conf", "contents": { "compression": "", @@ -107,7 +156,6 @@ } }, { - "overwrite": true, "path": "/etc/ssh/ssh_config.d/10-custom.conf", "contents": { "compression": "", @@ -123,7 +171,6 @@ } }, { - "overwrite": true, "path": "/etc/unbound/unbound.conf", "contents": { "compression": "gzip", @@ -148,7 +195,7 @@ "links": [ { "path": "/etc/localtime", - "target": "../usr/share/zoneinfo/America/New_York" + "target": "../usr/share/zoneinfo/America/Phoenix" }, { "path": "/etc/systemd/system/multi-user.target.wants/unbound.service", @@ -171,12 +218,12 @@ "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/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf | /usr/bin/tee /etc/chrony.conf\nExecStart=/usr/bin/systemctl restart chronyd\nExecStart=/usr/bin/rpm-ostree override remove cifs-utils containerd moby-engine runc 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/rpm-ostree install docker-ce firewalld qemu-guest-agent tuned unbound\nExecStart=/usr/bin/sed -i 's/nullok//g' /etc/pam.d/system-auth\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf | /usr/bin/tee /etc/modprobe.d/30_security-misc.conf\nExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf -o /etc/sysctl.d/990-security-misc.conf\nExecStart=/usr/bin/sed -i 's/kernel.yama.ptrace_scope=2/kernel.yama.ptrace_scope=1/g' /etc/sysctl.d/990-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/990-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/990-security-misc.conf\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf | /usr/bin/tee /etc/sysctl.d/30_silent-kernel-printk.conf\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf | /usr/bin/tee /etc/sysctl.d/30_security-misc_kexec-disable.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf | /usr/bin/tee /etc/systemd/system/NetworkManager.service.d/99-brace.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf | /usr/bin/tee /etc/systemd/system/irqbalance.service.d/99-brace.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf | /usr/bin/tee /etc/systemd/system/sshd.service.d/override.conf\nExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf | /usr/bin/tee /etc/ssh/sshd_config.d/10-custom.conf\nExecStart=/usr/bin/systemctl disable systemd-resolved\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target\n", + "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 override remove cifs-utils containerd moby-engine runc 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/rpm-ostree install docker-ce firewalld qemu-guest-agent tuned unbound\nExecStart=/usr/bin/sed -i 's/nullok//g' /etc/pam.d/system-auth\nExecStart=/usr/bin/sed -i 's/# install bluetooth/install bluetooth/g' /etc/modprobe.d/30_security-misc.conf\nExecStart=/usr/bin/sed -i 's/# install btusb/install btusb/g' /etc/modprobe.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/990-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/990-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/990-security-misc.conf\nExecStart=/usr/bin/systemctl disable systemd-resolved\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target\n", "enabled": true, "name": "postinst.service" }, { - "contents": "[Unit]\nDescription=Initial System Setup Part 2\n# We run this after the packages have been overlayed\nAfter=network-online.target\nConditionPathExists=!/var/lib/%N.stamp\nConditionPathExists=/var/lib/postinst.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/firewall-cmd --lockdown-on\nExecStart=/usr/bin/docker run --detach --privileged --name watchtower --restart unless-stopped --runtime=runc -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime:ro containrrr/watchtower --schedule \"0 15 0 * * 0\"\nExecStart=/bin/touch /var/lib/%N.stamp\n\n[Install]\nWantedBy=multi-user.target\n", + "contents": "[Unit]\nDescription=Initial System Setup Part 2\n# We run this after the packages have been overlayed\nAfter=network-online.target\nConditionPathExists=!/var/lib/%N.stamp\nConditionPathExists=/var/lib/postinst.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/systemctl enable --now firewalld\nExecStart=/usr/bin/firewall-cmd --lockdown-on\n\n[Install]\nWantedBy=multi-user.target\n", "enabled": true, "name": "postinst2.service" }, diff --git a/Generic.yml b/Generic.yml index e2d3ee3..e00f1b7 100644 --- a/Generic.yml +++ b/Generic.yml @@ -42,25 +42,14 @@ systemd: [Service] Type=oneshot RemainAfterExit=yes - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf | /usr/bin/tee /etc/chrony.conf - ExecStart=/usr/bin/systemctl restart chronyd ExecStart=/usr/bin/rpm-ostree override remove cifs-utils containerd moby-engine runc 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/rpm-ostree install docker-ce firewalld qemu-guest-agent tuned unbound ExecStart=/usr/bin/sed -i 's/nullok//g' /etc/pam.d/system-auth - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf | /usr/bin/tee /etc/modprobe.d/30_security-misc.conf - ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf -o /etc/sysctl.d/990-security-misc.conf + ExecStart=/usr/bin/sed -i 's/# install bluetooth/install bluetooth/g' /etc/modprobe.d/30_security-misc.conf + ExecStart=/usr/bin/sed -i 's/# install btusb/install btusb/g' /etc/modprobe.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/990-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/990-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/990-security-misc.conf - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf | /usr/bin/tee /etc/sysctl.d/30_silent-kernel-printk.conf - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf | /usr/bin/tee /etc/sysctl.d/30_security-misc_kexec-disable.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf | /usr/bin/tee /etc/systemd/system/NetworkManager.service.d/99-brace.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf | /usr/bin/tee /etc/systemd/system/irqbalance.service.d/99-brace.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf | /usr/bin/tee /etc/systemd/system/sshd.service.d/override.conf - ExecStart=/usr/bin/sudo -u unpriv /usr/bin/curl https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf | /usr/bin/tee /etc/ssh/sshd_config.d/10-custom.conf ExecStart=/usr/bin/systemctl disable systemd-resolved ExecStart=/usr/bin/touch /var/lib/%N.stamp ExecStart=/usr/bin/systemctl --no-block reboot @@ -80,9 +69,8 @@ systemd: [Service] Type=oneshot RemainAfterExit=yes + ExecStart=/usr/bin/systemctl enable --now firewalld ExecStart=/usr/bin/firewall-cmd --lockdown-on - ExecStart=/usr/bin/docker run --detach --privileged --name watchtower --restart unless-stopped --runtime=runc -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime:ro containrrr/watchtower --schedule "0 15 0 * * 0" - ExecStart=/bin/touch /var/lib/%N.stamp [Install] WantedBy=multi-user.target @@ -218,18 +206,43 @@ storage: enabled=0 gpgcheck=1 gpgkey=https://download.docker.com/linux/fedora/gpg - - path: /etc/tuned/active_profile + - path: /etc/chrony.conf + contents: + source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf overwrite: true + - path: /etc/modprobe.d/30_security-misc.conf + contents: + source: https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf + - path: /etc/sysctl.d/990-security-misc.conf + contents: + source: https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf + - path: /etc/sysctl.d/30_silent-kernel-printk.conf + contents: + source: https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf + - path: /etc/sysctl.d/30_security-misc_kexec-disable.conf + contents: + source: https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf + - path: /etc/systemd/system/NetworkManager.service.d/99-brace.conf + contents: + source: https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf + - path: /etc/systemd/system/irqbalance.service.d/99-brace.conf + contents: + source: https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf + - path: /etc/systemd/system/sshd.service.d/local.conf + contents: + source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf + - path: /etc/ssh/sshd_config/10-custom.conf + contents: + source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf + - path: /etc/tuned/active_profile contents: inline: | virtual-guest - path: /etc/tuned/profile_mode - overwrite: true contents: inline: | manual - path: /etc/systemd/zram-generator.conf - overwrite: true contents: inline: | [zram0] @@ -237,12 +250,10 @@ storage: max-zram-size = 8192 compression-algorithm = zstd - 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 @@ -254,7 +265,6 @@ storage: # Command-line options for chronyd OPTIONS="-F 1" - path: /etc/unbound/unbound.conf - overwrite: true contents: inline: | server: @@ -377,7 +387,7 @@ storage: } links: - path: /etc/localtime - target: ../usr/share/zoneinfo/America/New_York + target: ../usr/share/zoneinfo/America/Phoenix - path: /etc/systemd/system/multi-user.target.wants/unbound.service target: /usr/lib/systemd/system/unbound.service - path: /etc/systemd/system/multi-user.target.wants/tuned.service @@ -388,16 +398,14 @@ storage: target: /dev/null kernel_arguments: should_exist: + - mitigations=auto,nosmt - 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 + - spec_rstack_overflow=safe-ret - random.trust_bootloader=off - random.trust_cpu=off - intel_iommu=on diff --git a/Mailcow/README.md b/Mailcow/README.md deleted file mode 100644 index e3774be..0000000 --- a/Mailcow/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Notes -1. mailcow-updater can be used instead of auto-updater to take advantage of mailcow's update.sh script -2. You will need to compile and install the my-pdatesh module for SELinux to avoid the 203/EXEC error. diff --git a/Mailcow/mailcow-updater.service b/Mailcow/mailcow-updater.service deleted file mode 100644 index 289a51a..0000000 --- a/Mailcow/mailcow-updater.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Mailcow Automatic Updater -After=docker.service -Wants=network-online.target -Requires=docker.service - -[Service] -User=root -Group=root -WorkingDirectory=/opt/mailcow-dockerized/ -ExecStart=/opt/mailcow-dockerized/update.sh --force - -[Install] -WantedBy=multi-user.target diff --git a/Mailcow/my-pdatesh.te b/Mailcow/my-pdatesh.te deleted file mode 100644 index b9a590d..0000000 --- a/Mailcow/my-pdatesh.te +++ /dev/null @@ -1,7 +0,0 @@ -module my-pdatesh 1.0; - -require { - type init_t; - type var_t; - class file { execute execute_no_trans open read }; -} diff --git a/No-Config.ign b/No-Config.ign deleted file mode 100644 index 72368c7..0000000 --- a/No-Config.ign +++ /dev/null @@ -1,19 +0,0 @@ -{ - "ignition": { - "version": "3.4.0" - }, - "passwd": { - "users": [ - { - "groups": [ - "wheel", - "sudo" - ], - "name": "tomster", - "sshAuthorizedKeys": [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINkTKkJS7Id1WCyA5Klu/moLG9mP5hTC+v2qYqypMF1u contact@tommytran.io" - ] - } - ] - } -} diff --git a/No-Config.yml b/No-Config.yml deleted file mode 100644 index 984773e..0000000 --- a/No-Config.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 2023 Thien Tran -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not -# use this file except in compliance with the License. You may obtain a copy of -# the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations under -# the License. - -variant: fcos -version: 1.5.0 -passwd: - users: - - name: tomster - ssh_authorized_keys: - - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINkTKkJS7Id1WCyA5Klu/moLG9mP5hTC+v2qYqypMF1u contact@tommytran.io - groups: - - wheel - - sudo \ No newline at end of file diff --git a/UTM.ign b/UTM-Chrony.ign similarity index 55% rename from UTM.ign rename to UTM-Chrony.ign index e8a4b70..1050a0a 100644 --- a/UTM.ign +++ b/UTM-Chrony.ign @@ -4,16 +4,14 @@ }, "kernelArguments": { "shouldExist": [ + "mitigations=auto,nosmt", "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", + "spec_rstack_overflow=safe-ret", "random.trust_bootloader=off", "random.trust_cpu=off", "intel_iommu=on", @@ -69,6 +67,60 @@ }, { "overwrite": true, + "path": "/etc/chrony.conf", + "contents": { + "source": "https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf" + } + }, + { + "path": "/etc/modprobe.d/30_security-misc.conf", + "contents": { + "source": "https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf" + } + }, + { + "path": "/etc/sysctl.d/990-security-misc.conf", + "contents": { + "source": "https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf" + } + }, + { + "path": "/etc/sysctl.d/30_silent-kernel-printk.conf", + "contents": { + "source": "https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf" + } + }, + { + "path": "/etc/sysctl.d/30_security-misc_kexec-disable.conf", + "contents": { + "source": "https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf" + } + }, + { + "path": "/etc/systemd/system/NetworkManager.service.d/99-brace.conf", + "contents": { + "source": "https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf" + } + }, + { + "path": "/etc/systemd/system/irqbalance.service.d/99-brace.conf", + "contents": { + "source": "https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf" + } + }, + { + "path": "/etc/systemd/system/sshd.service.d/local.conf", + "contents": { + "source": "https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf" + } + }, + { + "path": "/etc/ssh/sshd_config/10-custom.conf", + "contents": { + "source": "https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf" + } + }, + { "path": "/etc/tuned/active_profile", "contents": { "compression": "", @@ -76,7 +128,6 @@ } }, { - "overwrite": true, "path": "/etc/tuned/profile_mode", "contents": { "compression": "", @@ -84,7 +135,6 @@ } }, { - "overwrite": true, "path": "/etc/systemd/zram-generator.conf", "contents": { "compression": "", @@ -92,7 +142,6 @@ } }, { - "overwrite": true, "path": "/etc/security/limits.d/30-disable-coredump.conf", "contents": { "compression": "", @@ -100,7 +149,6 @@ } }, { - "overwrite": true, "path": "/etc/ssh/ssh_config.d/10-custom.conf", "contents": { "compression": "", @@ -116,7 +164,6 @@ } }, { - "overwrite": true, "path": "/etc/unbound/unbound.conf", "contents": { "compression": "gzip", @@ -134,7 +181,7 @@ "links": [ { "path": "/etc/localtime", - "target": "../usr/share/zoneinfo/America/New_York" + "target": "../usr/share/zoneinfo/America/Phoenix" }, { "path": "/etc/systemd/system/multi-user.target.wants/unbound.service", @@ -157,20 +204,15 @@ "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.\nConditionPathExists=!/var/home/unpriv/%N.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nUser=unpriv\nWorkingDirectory=/var/home/unpriv\nExecStart=/usr/bin/sleep 5\nExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf\nExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf\nExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf\nExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf\nExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf\nExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf -o /var/home/unpriv/NetworkManager-brace.conf\nExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf -o /var/home/unpriv/irqbalance-brace.conf\nExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf\nExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf\nExecStart=/usr/bin/touch /var/home/unpriv/%N.stamp\n\n[Install]\nWantedBy=multi-user.target\n", + "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/systemctl restart chronyd\nExecStart=/usr/bin/rpm-ostree install firewalld qemu-guest-agent tuned unbound\nExecStart=/usr/bin/rpm-ostree override remove cifs-utils containerd moby-engine runc 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/sed -i '$ a\\allow 10.0.2.2/32' /etc/chrony.conf\nExecStart=/usr/bin/sed -i 's/# install bluetooth/install bluetooth/g' /etc/modprobe.d/30_security-misc.conf\nExecStart=/usr/bin/sed -i 's/# install btusb/install btusb/g' /etc/modprobe.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/990-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/990-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/990-security-misc.conf\nExecStart=/usr/bin/systemctl disable systemd-resolved\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target\n", "enabled": true, - "name": "postinst.service" + "name": "postinst1.service" }, { - "contents": "[Unit]\nDescription=Initial System Setup Part 2\n# We run this after files have been downloaded\nAfter=postinst.service\nBefore=zincati.service\nConditionPathExists=!/var/lib/%N.stamp\nConditionPathExists=/var/home/unpriv/postinst.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/cp /var/home/unpriv/chrony.conf /etc/chrony.conf\nExecStart=/usr/bin/cp /var/home/unpriv/30_security-misc.conf /etc/modprobe.d/30_security-misc.conf\nExecStart=/usr/bin/cp /var/home/unpriv/990-security-misc.conf /etc/sysctl.d/990-security-misc.conf\nExecStart=/usr/bin/cp /var/home/unpriv/30_silent-kernel-printk.conf /etc/sysctl.d/30_silent-kernel-printk.conf\nExecStart=/usr/bin/cp /var/home/unpriv/30_security-misc_kexec-disable.conf /etc/sysctl.d/30_security-misc_kexec-disable.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d\nExecStart=/usr/bin/cp /var/home/unpriv/local.conf /etc/systemd/system/sshd.service.d/override.conf\nExecStart=/usr/bin/cp /var/home/unpriv/10-custom.conf /etc/ssh/sshd_config.d/10-custom.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d\nExecStart=/usr/bin/cp /var/home/unpriv/NetworkManager-brace.conf /etc/systemd/system/NetworkManager.service.d/99-brace.conf\nExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d\nExecStart=/usr/bin/cp /var/home/unpriv/irqbalance-brace.conf /etc/systemd/system/irqbalance.service.d/99-brace.conf\nExecStart=/usr/bin/systemctl restart chronyd\nExecStart=/usr/bin/rpm-ostree install firewalld qemu-guest-agent tuned unbound\nExecStart=/usr/bin/rpm-ostree override remove cifs-utils containerd moby-engine runc 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/sed -i '$ a\\allow 10.0.2.2/32' /etc/chrony.conf\nExecStart=/usr/bin/sed -i 's/# install bluetooth/install bluetooth/g' /etc/modprobe.d/30_security-misc.conf\nExecStart=/usr/bin/sed -i 's/# install btusb/install btusb/g' /etc/modprobe.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/990-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/990-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/990-security-misc.conf\nExecStart=/usr/bin/systemctl disable systemd-resolved\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target\n", + "contents": "[Unit]\nDescription=Initial System Setup Part 3\n# We run this after the packages have been overlayed\nAfter=firewalld.service\nConditionPathExists=!/var/lib/%N.stamp\nConditionPathExists=/var/lib/postinst.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/systemctl enable --now firewalld\nExecStart=/usr/bin/firewall-cmd --lockdown-on\nExecStart=/usr/bin/firewall-cmd --permanent --add-service=ntp\nExecStart=/usr/bin/firewall-cmd --reload\n\n[Install]\nWantedBy=multi-user.target\n", "enabled": true, "name": "postinst2.service" }, - { - "contents": "[Unit]\nDescription=Initial System Setup Part 3\n# We run this after the packages have been overlayed\nAfter=firewalld.service\nConditionPathExists=!/var/lib/%N.stamp\nConditionPathExists=/var/lib/postinst2.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/systemctl enable --now firewalld\nExecStart=/usr/bin/firewall-cmd --lockdown-on\nExecStart=/usr/bin/firewall-cmd --permanent --add-service=ntp\nExecStart=/usr/bin/firewall-cmd --reload\n\n[Install]\nWantedBy=multi-user.target\n", - "enabled": true, - "name": "postinst3.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, diff --git a/UTM.yml b/UTM-Chrony.yml similarity index 70% rename from UTM.yml rename to UTM-Chrony.yml index 4970d5a..e4c1cef 100644 --- a/UTM.yml +++ b/UTM-Chrony.yml @@ -25,7 +25,7 @@ passwd: - name: unpriv systemd: units: - - name: postinst.service + - name: postinst1.service enabled: true contents: | [Unit] @@ -36,54 +36,12 @@ systemd: After=network-online.target # We run before `zincati.service` to avoid conflicting rpm-ostree # transactions. - ConditionPathExists=!/var/home/unpriv/%N.stamp - - [Service] - Type=oneshot - RemainAfterExit=yes - User=unpriv - WorkingDirectory=/var/home/unpriv - ExecStart=/usr/bin/sleep 5 - ExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf - ExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf - ExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf - ExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf - ExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf - ExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf -o /var/home/unpriv/NetworkManager-brace.conf - ExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf -o /var/home/unpriv/irqbalance-brace.conf - ExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf - ExecStart=/usr/bin/curl -O https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf - ExecStart=/usr/bin/touch /var/home/unpriv/%N.stamp - - [Install] - WantedBy=multi-user.target - - name: postinst2.service - enabled: true - contents: | - [Unit] - Description=Initial System Setup Part 2 - # We run this after files have been downloaded - After=postinst.service Before=zincati.service ConditionPathExists=!/var/lib/%N.stamp - ConditionPathExists=/var/home/unpriv/postinst.stamp [Service] Type=oneshot RemainAfterExit=yes - ExecStart=/usr/bin/cp /var/home/unpriv/chrony.conf /etc/chrony.conf - ExecStart=/usr/bin/cp /var/home/unpriv/30_security-misc.conf /etc/modprobe.d/30_security-misc.conf - ExecStart=/usr/bin/cp /var/home/unpriv/990-security-misc.conf /etc/sysctl.d/990-security-misc.conf - ExecStart=/usr/bin/cp /var/home/unpriv/30_silent-kernel-printk.conf /etc/sysctl.d/30_silent-kernel-printk.conf - ExecStart=/usr/bin/cp /var/home/unpriv/30_security-misc_kexec-disable.conf /etc/sysctl.d/30_security-misc_kexec-disable.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d - ExecStart=/usr/bin/cp /var/home/unpriv/local.conf /etc/systemd/system/sshd.service.d/override.conf - ExecStart=/usr/bin/cp /var/home/unpriv/10-custom.conf /etc/ssh/sshd_config.d/10-custom.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d - ExecStart=/usr/bin/cp /var/home/unpriv/NetworkManager-brace.conf /etc/systemd/system/NetworkManager.service.d/99-brace.conf - ExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d - ExecStart=/usr/bin/cp /var/home/unpriv/irqbalance-brace.conf /etc/systemd/system/irqbalance.service.d/99-brace.conf - ExecStart=/usr/bin/systemctl restart chronyd ExecStart=/usr/bin/rpm-ostree install firewalld qemu-guest-agent tuned unbound ExecStart=/usr/bin/rpm-ostree override remove cifs-utils containerd moby-engine runc 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 @@ -99,7 +57,7 @@ systemd: [Install] WantedBy=multi-user.target - - name: postinst3.service + - name: postinst2.service enabled: true contents: | [Unit] @@ -107,7 +65,7 @@ systemd: # We run this after the packages have been overlayed After=firewalld.service ConditionPathExists=!/var/lib/%N.stamp - ConditionPathExists=/var/lib/postinst2.stamp + ConditionPathExists=/var/lib/postinst.stamp [Service] Type=oneshot @@ -155,18 +113,43 @@ storage: inline: | [updates] strategy = "immediate" - - path: /etc/tuned/active_profile + - path: /etc/chrony.conf + contents: + source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf overwrite: true + - path: /etc/modprobe.d/30_security-misc.conf + contents: + source: https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf + - path: /etc/sysctl.d/990-security-misc.conf + contents: + source: https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/990-security-misc.conf + - path: /etc/sysctl.d/30_silent-kernel-printk.conf + contents: + source: https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_silent-kernel-printk.conf + - path: /etc/sysctl.d/30_security-misc_kexec-disable.conf + contents: + source: https://raw.githubusercontent.com/Kicksecure/security-misc/master/usr/lib/sysctl.d/30_security-misc_kexec-disable.conf + - path: /etc/systemd/system/NetworkManager.service.d/99-brace.conf + contents: + source: https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf + - path: /etc/systemd/system/irqbalance.service.d/99-brace.conf + contents: + source: https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf + - path: /etc/systemd/system/sshd.service.d/local.conf + contents: + source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/local.conf + - path: /etc/ssh/sshd_config/10-custom.conf + contents: + source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config/10-custom.conf + - path: /etc/tuned/active_profile contents: inline: | virtual-guest - path: /etc/tuned/profile_mode - overwrite: true contents: inline: | manual - path: /etc/systemd/zram-generator.conf - overwrite: true contents: inline: | [zram0] @@ -174,12 +157,10 @@ storage: max-zram-size = 8192 compression-algorithm = zstd - 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 @@ -191,7 +172,6 @@ storage: # Command-line options for chronyd OPTIONS="-F 1" - path: /etc/unbound/unbound.conf - overwrite: true contents: inline: | server: @@ -256,7 +236,7 @@ storage: LockPersonality=yes links: - path: /etc/localtime - target: ../usr/share/zoneinfo/America/New_York + target: ../usr/share/zoneinfo/America/Phoenix - path: /etc/systemd/system/multi-user.target.wants/unbound.service target: /usr/lib/systemd/system/unbound.service - path: /etc/systemd/system/multi-user.target.wants/tuned.service @@ -267,16 +247,14 @@ storage: target: /dev/null kernel_arguments: should_exist: + - mitigations=auto,nosmt - 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 + - spec_rstack_overflow=safe-ret - random.trust_bootloader=off - random.trust_cpu=off - intel_iommu=on diff --git a/kargs b/kargs index 4ade0ad..f93c589 100644 --- a/kargs +++ b/kargs @@ -12,4 +12,4 @@ # License for the specific language governing permissions and limitations under # the License. -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=force_isolation efi=disable_early_pci_dma iommu=force 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 \ No newline at end of file +mitigations=auto,nosmt spectre_v2=on spec_store_bypass_disable=on tsx=off kvm.nx_huge_pages=force nosmt=force l1d_flush=on spec_rstack_overflow=safe-ret random.trust_bootloader=off random.trust_cpu=off intel_iommu=on amd_iommu=isolation_force efi=disable_early_pci_dma iommu=force iommu.passthrough=0 iommu.strict=1 slab_nomerge init_on_alloc=1 init_on_free=1 pti=on vsyscall=none ia32_emulation=0 page_alloc.shuffle=1 randomize_kstack_offset=on extra_latent_entropy debugfs=off \ No newline at end of file