From 6b592afe0feefd09b9179a33dd4e3e14fdee8a93 Mon Sep 17 00:00:00 2001 From: Tommy Date: Thu, 5 Jun 2025 03:06:25 -0700 Subject: [PATCH] Repo cleanup Signed-off-by: Tommy --- etc/docker/daemon-metropolis-nexus.json | 20 -- etc/docker/daemon-unbound.json | 24 -- etc/tuned/active_profile | 1 - etc/tuned/profile_mode | 1 - etc/unbound/unbound.conf | 45 --- ...acloud.org:secureblue:hardened_malloc.repo | 10 - etc/yum.repos.d/docker-ce.repo | 62 ---- etc/zincati/config.d/51-rollout-wariness.toml | 2 - etc/zincati/config.d/55-updates-strategy.toml | 10 - x86-metropolis-nexus.ign | 1 - x86-metropolis-nexus.yml | 269 ---------------- x86-unbound.ign | 1 - x86-unbound.yml | 299 ------------------ x86.ign | 1 + x86.yml | 214 +++++++++++++ 15 files changed, 215 insertions(+), 745 deletions(-) delete mode 100644 etc/docker/daemon-metropolis-nexus.json delete mode 100644 etc/docker/daemon-unbound.json delete mode 100644 etc/tuned/active_profile delete mode 100644 etc/tuned/profile_mode delete mode 100644 etc/unbound/unbound.conf delete mode 100644 etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo delete mode 100644 etc/yum.repos.d/docker-ce.repo delete mode 100644 etc/zincati/config.d/51-rollout-wariness.toml delete mode 100644 etc/zincati/config.d/55-updates-strategy.toml delete mode 100644 x86-metropolis-nexus.ign delete mode 100644 x86-metropolis-nexus.yml delete mode 100644 x86-unbound.ign delete mode 100644 x86-unbound.yml create mode 100644 x86.ign create mode 100644 x86.yml diff --git a/etc/docker/daemon-metropolis-nexus.json b/etc/docker/daemon-metropolis-nexus.json deleted file mode 100644 index 1ae4d0a..0000000 --- a/etc/docker/daemon-metropolis-nexus.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "default-runtime": "runsc-systrap", - "runtimes": { - "runsc-systrap": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=systrap", - "--network=host" - ] - }, - "runsc-systrap --host-uds=open": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=systrap", - "--network=host", - "--host-uds=open" - ] - } - } -} \ No newline at end of file diff --git a/etc/docker/daemon-unbound.json b/etc/docker/daemon-unbound.json deleted file mode 100644 index 2d4130e..0000000 --- a/etc/docker/daemon-unbound.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "default-runtime": "runsc-systrap", - "runtimes": { - "runsc-systrap": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=systrap", - "--network=host" - ] - }, - "runsc-systrap --host-uds=open": { - "path": "/usr/local/bin/runsc", - "runtimeArgs": [ - "--platform=systrap", - "--network=host", - "--host-uds=open" - ] - } - }, - "default-address-pools": [ - { "base": "242.242.0.0/16", "size": 24 } - ], - "dns" : [ "242.242.0.1" ] -} \ No newline at end of file diff --git a/etc/tuned/active_profile b/etc/tuned/active_profile deleted file mode 100644 index fee234f..0000000 --- a/etc/tuned/active_profile +++ /dev/null @@ -1 +0,0 @@ -virtual-guest \ No newline at end of file diff --git a/etc/tuned/profile_mode b/etc/tuned/profile_mode deleted file mode 100644 index aabfa58..0000000 --- a/etc/tuned/profile_mode +++ /dev/null @@ -1 +0,0 @@ -manual \ No newline at end of file diff --git a/etc/unbound/unbound.conf b/etc/unbound/unbound.conf deleted file mode 100644 index 676f2c2..0000000 --- a/etc/unbound/unbound.conf +++ /dev/null @@ -1,45 +0,0 @@ -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 - - ip-transparent: yes - interface: 127.0.0.1 - interface: ::1 - interface: 242.242.0.1 - access-control: 242.242.0.0/16 allow - -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 \ No newline at end of file diff --git a/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo b/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo deleted file mode 100644 index 8b4952d..0000000 --- a/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo +++ /dev/null @@ -1,10 +0,0 @@ -[copr:copr.fedorainfracloud.org:secureblue:hardened_malloc] -name=Copr repo for hardened_malloc owned by secureblue -baseurl=https://download.copr.fedorainfracloud.org/results/secureblue/hardened_malloc/fedora-$releasever-$basearch/ -type=rpm-md -skip_if_unavailable=True -gpgcheck=1 -gpgkey=https://download.copr.fedorainfracloud.org/results/secureblue/hardened_malloc/pubkey.gpg -repo_gpgcheck=0 -enabled=1 -enabled_metadata=1 \ No newline at end of file diff --git a/etc/yum.repos.d/docker-ce.repo b/etc/yum.repos.d/docker-ce.repo deleted file mode 100644 index 9f90b82..0000000 --- a/etc/yum.repos.d/docker-ce.repo +++ /dev/null @@ -1,62 +0,0 @@ -[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 \ No newline at end of file diff --git a/etc/zincati/config.d/51-rollout-wariness.toml b/etc/zincati/config.d/51-rollout-wariness.toml deleted file mode 100644 index 4b3b8bb..0000000 --- a/etc/zincati/config.d/51-rollout-wariness.toml +++ /dev/null @@ -1,2 +0,0 @@ -[identity] -rollout_wariness = 0 \ No newline at end of file diff --git a/etc/zincati/config.d/55-updates-strategy.toml b/etc/zincati/config.d/55-updates-strategy.toml deleted file mode 100644 index 06ec5ed..0000000 --- a/etc/zincati/config.d/55-updates-strategy.toml +++ /dev/null @@ -1,10 +0,0 @@ -[updates] -strategy = "periodic" - -[updates.periodic] -time_zone = "localtime" - -[[updates.periodic.window]] -days = [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ] -start_time = "3:00" -length_minutes = 60 \ No newline at end of file diff --git a/x86-metropolis-nexus.ign b/x86-metropolis-nexus.ign deleted file mode 100644 index a3cff41..0000000 --- a/x86-metropolis-nexus.ign +++ /dev/null @@ -1 +0,0 @@ -{"ignition":{"version":"3.5.0"},"kernelArguments":{"shouldExist":["mitigations=auto,nosmt","spectre_v2=on","spectre_bhi=on","spec_store_bypass_disable=on","tsx=off","kvm.nx_huge_pages=force","nosmt=force","l1d_flush=on","l1tf=full,force","kvm-intel.vmentry_l1d_flush=always","spec_rstack_overflow=safe-ret","gather_data_sampling=force","reg_file_data_sampling=on","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","debugfs=off","lockdown=confidentiality","module.sig_enforce=1","console=tty0","console=ttyS0,115200"]},"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":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/zincati/config.d/51-rollout-wariness.toml"}},{"path":"/etc/zincati/config.d/55-updates-strategy.toml","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/zincati/config.d/55-updates-strategy.toml"}},{"path":"/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo"}},{"path":"/etc/yum.repos.d/docker-ce.repo","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/yum.repos.d/docker-ce.repo"}},{"path":"/etc/docker/daemon.json","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/docker/daemon-metropolis-nexus.json"}},{"overwrite":true,"path":"/etc/chrony.conf","contents":{"source":"https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/chrony.conf"}},{"path":"/etc/modprobe.d/server-blacklist.conf","contents":{"source":"https://raw.githubusercontent.com/secureblue/secureblue/refs/heads/live/files/system/etc/modprobe.d/blacklist.conf"}},{"path":"/etc/sysctl.d/99-server.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysctl.d/99-server.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/ssh/sshd_config.d/10-custom.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config.d/10-custom.conf"}},{"path":"/etc/ssh/ssh_config.d/10-custom.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/ssh_config.d/10-custom.conf"}},{"path":"/etc/systemd/system/sshd.service.d/override.conf","contents":{"source":"https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/systemd/system/sshd.service.d/override.conf"}},{"path":"/etc/tuned/active_profile","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/tuned/active_profile"}},{"path":"/etc/tuned/profile_mode","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/tuned/profile_mode"}},{"path":"/etc/systemd/zram-generator.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/zram-generator.conf"}},{"path":"/etc/security/limits.d/30-disable-coredump.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/security/limits.d/30-disable-coredump.conf"}},{"path":"/etc/systemd/coredump.conf.d","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/coredump.conf.d/disable.conf"}},{"overwrite":true,"path":"/etc/sysconfig/chronyd","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysconfig/chronyd"}},{"overwrite":true,"path":"/etc/issue","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue"}},{"overwrite":true,"path":"/etc/issue.net","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue"}}],"links":[{"path":"/etc/localtime","target":"../usr/share/zoneinfo/Etc/UTC"},{"path":"/etc/systemd/system/multi-user.target.wants/tuned.service","target":"/usr/lib/systemd/system/tuned.service"}]},"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/sbin/restorecon -R /var\nExecStart=/usr/sbin/setsebool -P container_use_cephfs off\nExecStart=/usr/sbin/setsebool -P virt_use_nfs off\nExecStart=/usr/sbin/setsebool -P virt_use_samba off\nExecStart=/usr/bin/rpm-ostree override remove containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc\nExecStart=/usr/bin/rpm-ostree install docker-ce docker-compose-plugin hardened_malloc qemu-guest-agent tuned\nExecStart=/usr/bin/sed -i 's/\\s+nullok//g' /etc/pam.d/system-auth\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/echo 'libhardened_malloc.so' \u003e /etc/ld.so.preload\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target\n","enabled":true,"name":"postinst.service"},{"contents":"[Unit]\nDescription=Update gVisor\nRequires=network-online.target\nAfter=network-online.target\nBefore=docker.service\n\n[Service]\nType=oneshot\nRuntimeDirectory=gvisor-updater\nWorkingDirectory=/run/gvisor-updater\n\nExecStart=/usr/bin/sleep 5\nExecStart=curl -sS --remote-name-all 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc.sha512' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1.sha512'\nExecStart=sha512sum -c runsc.sha512 -c containerd-shim-runsc-v1.sha512\nExecStart=+chown root:root runsc containerd-shim-runsc-v1\nExecStart=+chmod a+rx runsc containerd-shim-runsc-v1\nExecStart=+mv -Z runsc containerd-shim-runsc-v1 /usr/local/bin/\n\nDynamicUser=true\nCapabilityBoundingSet=\nLockPersonality=true\nMemoryDenyWriteExecute=true\nNoNewPrivileges=true\nPrivateDevices=true\nPrivateIPC=true\nPrivateTmp=true\nProcSubset=pid\nProtectClock=true\nProtectControlGroups=true\nProtectHome=true\nProtectHostname=true\nProtectKernelLogs=true\nProtectKernelModules=true\nProtectKernelTunables=true\nProtectProc=invisible\nProtectSystem=strict\nRestrictAddressFamilies=\nRestrictNamespaces=true\nRestrictRealtime=true\nRestrictSUIDSGID=true\nRuntimeDirectoryMode=700\nSystemCallArchitectures=native\nSystemCallFilter=@system-service\nSystemCallFilter=~@obsolete\n\n[Install]\nWantedBy=multi-user.target\n","enabled":true,"name":"gvisor-updater.service"},{"contents":"[Unit]\nDescription=Docker Compose Updater for /srv/%I\nRequires=network-online.target\nRequisite=docker.service\nAfter=network-online.target\nAfter=docker.service\n\n[Service]\nType=oneshot\nUser=root\nGroup=root\nWorkingDirectory=/srv/%i\nExecStart=/usr/bin/docker image prune -f -a --filter 'until=240h'\n#ExecStart=/usr/bin/git pull\nExecStart=/usr/bin/docker compose pull\nExecStart=/usr/bin/docker compose up -d\n","enabled":false,"name":"docker-compose-updater@.service"},{"contents":"[Unit]\nDescription=Run docker-compose-updater for /srv/%I daily, 15 mintues after OS updates\n\n[Timer]\nOnCalendar=*-*-* 03:15\nPersistent=true\n\n[Install]\nWantedBy=timers.target\n","enabled":false,"name":"docker-compose-updater@.timer"},{"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"},{"enabled":false,"mask":true,"name":"kdump.service"},{"enabled":false,"mask":true,"name":"debug-shell.service"}]}} diff --git a/x86-metropolis-nexus.yml b/x86-metropolis-nexus.yml deleted file mode 100644 index ebeb820..0000000 --- a/x86-metropolis-nexus.yml +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright (C) 2021-2025 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.6.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/sbin/restorecon -R /var - ExecStart=/usr/sbin/setsebool -P container_use_cephfs off - ExecStart=/usr/sbin/setsebool -P virt_use_nfs off - ExecStart=/usr/sbin/setsebool -P virt_use_samba off - ExecStart=/usr/bin/rpm-ostree override remove containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc systemd-resolved - ExecStart=/usr/bin/rpm-ostree install docker-ce docker-compose-plugin hardened_malloc qemu-guest-agent tuned - ExecStart=/usr/bin/sed -i 's/\s+nullok//g' /etc/pam.d/system-auth - ExecStart=/usr/bin/systemctl disable systemd-resolved - ExecStart=/usr/bin/rm /etc/resolv.conf - ExecStart=/usr/bin/touch /var/lib/%N.stamp - ExecStart=/usr/bin/echo 'libhardened_malloc.so' > /etc/ld.so.preload - ExecStart=/usr/bin/systemctl --no-block reboot - - [Install] - WantedBy=multi-user.target - - name: gvisor-updater.service - enabled: true - contents: | - [Unit] - Description=Update gVisor - Requires=network-online.target - After=network-online.target - Before=docker.service - - [Service] - Type=oneshot - RuntimeDirectory=gvisor-updater - WorkingDirectory=/run/gvisor-updater - - ExecStart=/usr/bin/sleep 5 - ExecStart=curl -sS --remote-name-all 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc.sha512' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1.sha512' - ExecStart=sha512sum -c runsc.sha512 -c containerd-shim-runsc-v1.sha512 - ExecStart=+chown root:root runsc containerd-shim-runsc-v1 - ExecStart=+chmod a+rx runsc containerd-shim-runsc-v1 - ExecStart=+mv -Z runsc containerd-shim-runsc-v1 /usr/local/bin/ - - DynamicUser=true - CapabilityBoundingSet= - LockPersonality=true - MemoryDenyWriteExecute=true - NoNewPrivileges=true - PrivateDevices=true - PrivateIPC=true - PrivateTmp=true - ProcSubset=pid - ProtectClock=true - ProtectControlGroups=true - ProtectHome=true - ProtectHostname=true - ProtectKernelLogs=true - ProtectKernelModules=true - ProtectKernelTunables=true - ProtectProc=invisible - ProtectSystem=strict - RestrictAddressFamilies= - RestrictNamespaces=true - RestrictRealtime=true - RestrictSUIDSGID=true - RuntimeDirectoryMode=700 - SystemCallArchitectures=native - SystemCallFilter=@system-service - SystemCallFilter=~@obsolete - - [Install] - WantedBy=multi-user.target - - name: docker-compose-updater@.service - enabled: false - contents: | - [Unit] - Description=Docker Compose Updater for /srv/%I - Requires=network-online.target - Requisite=docker.service - After=network-online.target - After=docker.service - - [Service] - Type=oneshot - User=root - Group=root - WorkingDirectory=/srv/%i - ExecStart=/usr/bin/docker image prune -f -a --filter 'until=240h' - #ExecStart=/usr/bin/git pull - ExecStart=/usr/bin/docker compose pull - ExecStart=/usr/bin/docker compose up -d - - name: docker-compose-updater@.timer - enabled: false - contents: | - [Unit] - Description=Run docker-compose-updater for /srv/%I daily, 15 mintues after OS updates - - [Timer] - OnCalendar=*-*-* 03:15 - Persistent=true - - [Install] - WantedBy=timers.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 - - name: kdump.service - enabled: false - mask: true - - name: debug-shell.service - enabled: false - mask: true -storage: - files: - - path: /etc/zincati/config.d/51-rollout-wariness.toml - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/zincati/config.d/51-rollout-wariness.toml - - path: /etc/zincati/config.d/55-updates-strategy.toml - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/zincati/config.d/55-updates-strategy.toml - - path: /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo - - path: /etc/yum.repos.d/docker-ce.repo - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/yum.repos.d/docker-ce.repo - - path: /etc/docker/daemon.json - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/docker/daemon-metropolis-nexus.json - - path: /etc/chrony.conf - contents: - source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/chrony.conf - overwrite: true - - path: /etc/modprobe.d/server-blacklist.conf - contents: - source: https://raw.githubusercontent.com/secureblue/secureblue/refs/heads/live/files/system/etc/modprobe.d/blacklist.conf - - path: /etc/sysctl.d/99-server.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysctl.d/99-server.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/ssh/sshd_config.d/10-custom.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config.d/10-custom.conf - - path: /etc/ssh/ssh_config.d/10-custom.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/ssh_config.d/10-custom.conf - - path: /etc/systemd/system/sshd.service.d/override.conf - contents: - source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/systemd/system/sshd.service.d/override.conf - - path: /etc/tuned/active_profile - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/tuned/active_profile - - path: /etc/tuned/profile_mode - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/tuned/profile_mode - - path: /etc/systemd/zram-generator.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/zram-generator.conf - - path: /etc/security/limits.d/30-disable-coredump.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/security/limits.d/30-disable-coredump.conf - - path: /etc/systemd/coredump.conf.d - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/coredump.conf.d/disable.conf - - path: /etc/sysconfig/chronyd - overwrite: true - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysconfig/chronyd - - path: /etc/issue - overwrite: true - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue - - path: /etc/issue.net - overwrite: true - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue - links: - - path: /etc/localtime - target: ../usr/share/zoneinfo/Etc/UTC - - path: /etc/systemd/system/multi-user.target.wants/tuned.service - target: /usr/lib/systemd/system/tuned.service -kernel_arguments: - should_exist: - - mitigations=auto,nosmt - - spectre_v2=on - - spectre_bhi=on - - spec_store_bypass_disable=on - - tsx=off - - kvm.nx_huge_pages=force - - nosmt=force - - l1d_flush=on - - l1tf=full,force - - kvm-intel.vmentry_l1d_flush=always - - spec_rstack_overflow=safe-ret - - gather_data_sampling=force - - reg_file_data_sampling=on - - 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 - - debugfs=off - - lockdown=confidentiality - - module.sig_enforce=1 - - console=tty0 - - console=ttyS0,115200 \ No newline at end of file diff --git a/x86-unbound.ign b/x86-unbound.ign deleted file mode 100644 index 992e509..0000000 --- a/x86-unbound.ign +++ /dev/null @@ -1 +0,0 @@ -{"ignition":{"version":"3.5.0"},"kernelArguments":{"shouldExist":["mitigations=auto,nosmt","spectre_v2=on","spectre_bhi=on","spec_store_bypass_disable=on","tsx=off","kvm.nx_huge_pages=force","nosmt=force","l1d_flush=on","l1tf=full,force","kvm-intel.vmentry_l1d_flush=always","spec_rstack_overflow=safe-ret","gather_data_sampling=force","reg_file_data_sampling=on","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","debugfs=off","lockdown=confidentiality","module.sig_enforce=1","console=tty0","console=ttyS0,115200"]},"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":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/zincati/config.d/51-rollout-wariness.toml"}},{"path":"/etc/zincati/config.d/55-updates-strategy.toml","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/zincati/config.d/55-updates-strategy.toml"}},{"path":"/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo"}},{"path":"/etc/yum.repos.d/docker-ce.repo","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/yum.repos.d/docker-ce.repo"}},{"path":"/etc/docker/daemon.json","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/docker/daemon-unbound.json"}},{"overwrite":true,"path":"/etc/chrony.conf","contents":{"source":"https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/chrony.conf"}},{"path":"/etc/modprobe.d/server-blacklist.conf","contents":{"source":"https://raw.githubusercontent.com/secureblue/secureblue/refs/heads/live/files/system/etc/modprobe.d/blacklist.conf"}},{"path":"/etc/sysctl.d/99-server.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysctl.d/99-server.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/ssh/sshd_config.d/10-custom.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config.d/10-custom.conf"}},{"path":"/etc/ssh/ssh_config.d/10-custom.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/ssh_config.d/10-custom.conf"}},{"path":"/etc/systemd/system/sshd.service.d/override.conf","contents":{"source":"https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/systemd/system/sshd.service.d/override.conf"}},{"path":"/etc/tuned/active_profile","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/tuned/active_profile"}},{"path":"/etc/tuned/profile_mode","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/tuned/profile_mode"}},{"path":"/etc/systemd/zram-generator.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/zram-generator.conf"}},{"path":"/etc/security/limits.d/30-disable-coredump.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/security/limits.d/30-disable-coredump.conf"}},{"path":"/etc/systemd/coredump.conf.d","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/coredump.conf.d/disable.conf"}},{"overwrite":true,"path":"/etc/sysconfig/chronyd","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysconfig/chronyd"}},{"path":"/etc/unbound/unbound.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/unbound/unbound.conf"}},{"path":"/etc/systemd/system/unbound.service.d/override.conf","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/system/unbound.service.d/override.conf"}},{"overwrite":true,"path":"/etc/issue","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue"}},{"overwrite":true,"path":"/etc/issue.net","contents":{"source":"https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue"}}],"links":[{"path":"/etc/localtime","target":"../usr/share/zoneinfo/Etc/UTC"},{"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"}]},"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/sbin/restorecon -R /var\nExecStart=/usr/sbin/setsebool -P container_use_cephfs off\nExecStart=/usr/sbin/setsebool -P virt_use_nfs off\nExecStart=/usr/sbin/setsebool -P virt_use_samba off\nExecStart=/usr/bin/rpm-ostree override remove containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc systemd-resolved\nExecStart=/usr/bin/rpm-ostree install docker-ce docker-compose-plugin firewalld hardened_malloc qemu-guest-agent tuned unbound\nExecStart=/usr/bin/sed -i 's/\\s+nullok//g' /etc/pam.d/system-auth\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/echo 'libhardened_malloc.so' \u003e /etc/ld.so.preload\nExecStart=/usr/bin/systemctl enable --now firewalld\nExecStart=/usr/bin/firewall-cmd --lockdown-on\nExecStart=/usr/bin/firewall-cmd --permanent --remove-service=mds\nExecStart=/usr/bin/rm /etc/unbound/unbound_control.key\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":"postinst2.service"},{"contents":"[Unit]\nDescription=Update gVisor\nRequires=network-online.target\nAfter=network-online.target\nBefore=docker.service\n\n[Service]\nType=oneshot\nRuntimeDirectory=gvisor-updater\nWorkingDirectory=/run/gvisor-updater\n\nExecStart=/usr/bin/sleep 5\nExecStart=curl -sS --remote-name-all 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc.sha512' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1.sha512'\nExecStart=sha512sum -c runsc.sha512 -c containerd-shim-runsc-v1.sha512\nExecStart=+chown root:root runsc containerd-shim-runsc-v1\nExecStart=+chmod a+rx runsc containerd-shim-runsc-v1\nExecStart=+mv -Z runsc containerd-shim-runsc-v1 /usr/local/bin/\n\nDynamicUser=true\nCapabilityBoundingSet=\nLockPersonality=true\nMemoryDenyWriteExecute=true\nNoNewPrivileges=true\nPrivateDevices=true\nPrivateIPC=true\nPrivateTmp=true\nProcSubset=pid\nProtectClock=true\nProtectControlGroups=true\nProtectHome=true\nProtectHostname=true\nProtectKernelLogs=true\nProtectKernelModules=true\nProtectKernelTunables=true\nProtectProc=invisible\nProtectSystem=strict\nRestrictAddressFamilies=\nRestrictNamespaces=true\nRestrictRealtime=true\nRestrictSUIDSGID=true\nRuntimeDirectoryMode=700\nSystemCallArchitectures=native\nSystemCallFilter=@system-service\nSystemCallFilter=~@obsolete\n\n[Install]\nWantedBy=multi-user.target\n","enabled":true,"name":"gvisor-updater.service"},{"contents":"[Unit]\nDescription=Docker Compose Updater for /srv/%I\nRequires=network-online.target\nRequisite=docker.service\nAfter=network-online.target\nAfter=docker.service\n\n[Service]\nType=oneshot\nUser=root\nGroup=root\nWorkingDirectory=/srv/%i\nExecStart=/usr/bin/docker image prune -f -a --filter 'until=240h'\n#ExecStart=/usr/bin/git pull\nExecStart=/usr/bin/docker compose pull\nExecStart=/usr/bin/docker compose up -d\n","enabled":false,"name":"docker-compose-updater@.service"},{"contents":"[Unit]\nDescription=Run docker-compose-updater for /srv/%I daily, 15 mintues after OS updates\n\n[Timer]\nOnCalendar=*-*-* 03:15\nPersistent=true\n\n[Install]\nWantedBy=timers.target\n","enabled":false,"name":"docker-compose-updater@.timer"},{"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"},{"enabled":false,"mask":true,"name":"kdump.service"},{"enabled":false,"mask":true,"name":"debug-shell.service"}]}} diff --git a/x86-unbound.yml b/x86-unbound.yml deleted file mode 100644 index e0e25ec..0000000 --- a/x86-unbound.yml +++ /dev/null @@ -1,299 +0,0 @@ -# Copyright (C) 2021-2025 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.6.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/sbin/restorecon -R /var - ExecStart=/usr/sbin/setsebool -P container_use_cephfs off - ExecStart=/usr/sbin/setsebool -P virt_use_nfs off - ExecStart=/usr/sbin/setsebool -P virt_use_samba off - ExecStart=/usr/bin/rpm-ostree override remove containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc systemd-resolved - ExecStart=/usr/bin/rpm-ostree install docker-ce docker-compose-plugin firewalld hardened_malloc qemu-guest-agent tuned unbound - ExecStart=/usr/bin/sed -i 's/\s+nullok//g' /etc/pam.d/system-auth - ExecStart=/usr/bin/systemctl disable systemd-resolved - ExecStart=/usr/bin/rm /etc/resolv.conf - 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/echo 'libhardened_malloc.so' > /etc/ld.so.preload - ExecStart=/usr/bin/systemctl enable --now firewalld - ExecStart=/usr/bin/firewall-cmd --lockdown-on - ExecStart=/usr/bin/firewall-cmd --permanent --remove-service=mds - ExecStart=/usr/bin/rm /etc/unbound/unbound_control.key - ExecStart=/usr/bin/touch /var/lib/%N.stamp - ExecStart=/usr/bin/systemctl --no-block reboot - - [Install] - WantedBy=multi-user.target - - name: gvisor-updater.service - enabled: true - contents: | - [Unit] - Description=Update gVisor - Requires=network-online.target - After=network-online.target - Before=docker.service - - [Service] - Type=oneshot - RuntimeDirectory=gvisor-updater - WorkingDirectory=/run/gvisor-updater - - ExecStart=/usr/bin/sleep 5 - ExecStart=curl -sS --remote-name-all 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc.sha512' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1' 'https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1.sha512' - ExecStart=sha512sum -c runsc.sha512 -c containerd-shim-runsc-v1.sha512 - ExecStart=+chown root:root runsc containerd-shim-runsc-v1 - ExecStart=+chmod a+rx runsc containerd-shim-runsc-v1 - ExecStart=+mv -Z runsc containerd-shim-runsc-v1 /usr/local/bin/ - - DynamicUser=true - CapabilityBoundingSet= - LockPersonality=true - MemoryDenyWriteExecute=true - NoNewPrivileges=true - PrivateDevices=true - PrivateIPC=true - PrivateTmp=true - ProcSubset=pid - ProtectClock=true - ProtectControlGroups=true - ProtectHome=true - ProtectHostname=true - ProtectKernelLogs=true - ProtectKernelModules=true - ProtectKernelTunables=true - ProtectProc=invisible - ProtectSystem=strict - RestrictAddressFamilies= - RestrictNamespaces=true - RestrictRealtime=true - RestrictSUIDSGID=true - RuntimeDirectoryMode=700 - SystemCallArchitectures=native - SystemCallFilter=@system-service - SystemCallFilter=~@obsolete - - [Install] - WantedBy=multi-user.target - - name: docker-compose-updater@.service - enabled: false - contents: | - [Unit] - Description=Docker Compose Updater for /srv/%I - Requires=network-online.target - Requisite=docker.service - After=network-online.target - After=docker.service - - [Service] - Type=oneshot - User=root - Group=root - WorkingDirectory=/srv/%i - ExecStart=/usr/bin/docker image prune -f -a --filter 'until=240h' - #ExecStart=/usr/bin/git pull - ExecStart=/usr/bin/docker compose pull - ExecStart=/usr/bin/docker compose up -d - - name: docker-compose-updater@.timer - enabled: false - contents: | - [Unit] - Description=Run docker-compose-updater for /srv/%I daily, 15 mintues after OS updates - - [Timer] - OnCalendar=*-*-* 03:15 - Persistent=true - - [Install] - WantedBy=timers.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 - - name: kdump.service - enabled: false - mask: true - - name: debug-shell.service - enabled: false - mask: true -storage: - files: - - path: /etc/zincati/config.d/51-rollout-wariness.toml - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/zincati/config.d/51-rollout-wariness.toml - - path: /etc/zincati/config.d/55-updates-strategy.toml - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/zincati/config.d/55-updates-strategy.toml - - path: /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo - - path: /etc/yum.repos.d/docker-ce.repo - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/yum.repos.d/docker-ce.repo - - path: /etc/docker/daemon.json - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/docker/daemon-unbound.json - - path: /etc/chrony.conf - contents: - source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/chrony.conf - overwrite: true - - path: /etc/modprobe.d/server-blacklist.conf - contents: - source: https://raw.githubusercontent.com/secureblue/secureblue/refs/heads/live/files/system/etc/modprobe.d/blacklist.conf - - path: /etc/sysctl.d/99-server.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysctl.d/99-server.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/ssh/sshd_config.d/10-custom.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/sshd_config.d/10-custom.conf - - path: /etc/ssh/ssh_config.d/10-custom.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/ssh/ssh_config.d/10-custom.conf - - path: /etc/systemd/system/sshd.service.d/override.conf - contents: - source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/systemd/system/sshd.service.d/override.conf - - path: /etc/tuned/active_profile - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/tuned/active_profile - - path: /etc/tuned/profile_mode - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/tuned/profile_mode - - path: /etc/systemd/zram-generator.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/zram-generator.conf - - path: /etc/security/limits.d/30-disable-coredump.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/security/limits.d/30-disable-coredump.conf - - path: /etc/systemd/coredump.conf.d - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/coredump.conf.d/disable.conf - - path: /etc/sysconfig/chronyd - overwrite: true - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysconfig/chronyd - - path: /etc/unbound/unbound.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/unbound/unbound.conf - - path: /etc/systemd/system/unbound.service.d/override.conf - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/system/unbound.service.d/override.conf - - path: /etc/issue - overwrite: true - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue - - path: /etc/issue.net - overwrite: true - contents: - source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue - links: - - path: /etc/localtime - target: ../usr/share/zoneinfo/Etc/UTC - - 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 -kernel_arguments: - should_exist: - - mitigations=auto,nosmt - - spectre_v2=on - - spectre_bhi=on - - spec_store_bypass_disable=on - - tsx=off - - kvm.nx_huge_pages=force - - nosmt=force - - l1d_flush=on - - l1tf=full,force - - kvm-intel.vmentry_l1d_flush=always - - spec_rstack_overflow=safe-ret - - gather_data_sampling=force - - reg_file_data_sampling=on - - 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 - - debugfs=off - - lockdown=confidentiality - - module.sig_enforce=1 - - console=tty0 - - console=ttyS0,115200 diff --git a/x86.ign b/x86.ign new file mode 100644 index 0000000..5ef2c5e --- /dev/null +++ b/x86.ign @@ -0,0 +1 @@ +{"ignition":{"version":"3.5.0"},"kernelArguments":{"shouldExist":["mitigations=auto,nosmt","nosmt=force","spectre_v2=on","spectre_bhi=on","spec_store_bypass_disable=on","tsx=off","l1d_flush=on","l1tf=full,force","kvm-intel.vmentry_l1d_flush=always","spec_rstack_overflow=safe-ret","gather_data_sampling=force","reg_file_data_sampling=on","kvm.nx_huge_pages=force","amd_iommu=force_isolation","intel_iommu=on","iommu=force","iommu.strict=1","iommu.passthrough=0","efi=disable_early_pci_dma","slab_nomerge","init_on_alloc=1","init_on_free=1","page_alloc.shuffle=1","pti=on","randomize_kstack_offset=on","lockdown=confidentiality","module.sig_enforce=1","oops=panic","vsyscall=none","ia32_emulation=0","debugfs=off","random.trust_bootloader=off","random.trust_cpu=off","console=tty0","console=ttyS0,115200"]},"passwd":{"users":[{"groups":["wheel","sudo"],"name":"tomster","sshAuthorizedKeys":["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINkTKkJS7Id1WCyA5Klu/moLG9mP5hTC+v2qYqypMF1u contact@tommytran.io"]}]},"storage":{"files":[{"overwrite":true,"path":"/etc/chrony.conf","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/main/etc/chrony.conf"}},{"overwrite":true,"path":"/etc/sysconfig/chronyd","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/sysconfig/chronyd"}},{"path":"/etc/docker/daemon.json","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/docker/daemon.json"}},{"overwrite":true,"path":"/etc/issue","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/issue"}},{"overwrite":true,"path":"/etc/issue.net","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/issue"}},{"path":"/etc/modprobe.d/server-blacklist.conf","contents":{"source":"https://raw.githubusercontent.com/secureblue/secureblue/live/files/system/etc/modprobe.d/blacklist.conf"}},{"path":"/etc/security/limits.d/30-disable-coredump.conf","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/security/limits.d/30-disable-coredump.conf"}},{"path":"/etc/ssh/sshd_config.d/10-custom.conf","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/ssh/sshd_config.d/10-custom.conf"}},{"path":"/etc/ssh/ssh_config.d/10-custom.conf","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/ssh/ssh_config.d/10-custom.conf"}},{"path":"/etc/systemd/system/sshd.service.d/override.conf","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/system/sshd.service.d/override.conf"}},{"path":"/etc/sysctl.d/99-server.conf","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/sysctl.d/99-server.conf"}},{"path":"/etc/systemd/coredump.conf.d","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/coredump.conf.d/disable.conf"}},{"path":"/etc/systemd/system/gvisor-updater.service","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/system/gvisor-updater.service"}},{"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/zram-generator.conf","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/zram-generator.conf"}},{"path":"/etc/tuned/active_profile","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/tuned/active_profile"}},{"path":"/etc/tuned/profile_mode","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/tuned/profile_mode"}},{"overwrite":true,"path":"/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo"}},{"path":"/etc/zincati/config.d/51-rollout-wariness.toml","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/zincati/config.d/51-rollout-wariness.toml"}},{"path":"/etc/zincati/config.d/55-updates-strategy.toml","contents":{"source":"https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/zincati/config.d/55-updates-strategy.toml"}}],"links":[{"path":"/etc/systemd/system/multi-user.target.wants/gvisor-updater.service","target":"/etc/systemd/system/gvisor-updater.service"},{"path":"/etc/systemd/system/multi-user.target.wants/tuned.service","target":"/usr/lib/systemd/system/tuned.service"}]},"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/sbin/restorecon -R /var\nExecStart=/usr/sbin/setsebool -P container_use_cephfs off\nExecStart=/usr/sbin/setsebool -P virt_use_nfs off\nExecStart=/usr/sbin/setsebool -P virt_use_samba off\nExecStart=/usr/bin/rpm-ostree install hardened_malloc qemu-guest-agent tuned\nExecStart=/usr/bin/sed -i 's/\\s+nullok//g' /etc/pam.d/system-auth\nExecStart=/usr/bin/systemctl disable systemd-resolved\nExecStart=/usr/bin/rm /etc/resolv.conf\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/echo 'libhardened_malloc.so' \u003e /etc/ld.so.preload\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target\n","enabled":true,"name":"postinst.service"},{"enabled":false,"mask":true,"name":"debug-shell.service"},{"enabled":false,"name":"docker.service"},{"enabled":false,"mask":true,"name":"rpm-ostree-countme.timer"},{"enabled":false,"mask":true,"name":"irqbalance.service"},{"enabled":false,"mask":true,"name":"kdump.service"},{"enabled":false,"mask":true,"name":"systemd-resolved.service"}]}} diff --git a/x86.yml b/x86.yml new file mode 100644 index 0000000..8ecf844 --- /dev/null +++ b/x86.yml @@ -0,0 +1,214 @@ +# Copyright (C) 2021-2025 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.6.0 + +passwd: + users: + - name: tomster + ssh_authorized_keys: + - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINkTKkJS7Id1WCyA5Klu/moLG9mP5hTC+v2qYqypMF1u contact@tommytran.io + 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/sbin/restorecon -R /var + ExecStart=/usr/sbin/setsebool -P container_use_cephfs off + ExecStart=/usr/sbin/setsebool -P virt_use_nfs off + ExecStart=/usr/sbin/setsebool -P virt_use_samba off + ExecStart=/usr/bin/rpm-ostree install hardened_malloc qemu-guest-agent tuned + ExecStart=/usr/bin/sed -i 's/\s+nullok//g' /etc/pam.d/system-auth + ExecStart=/usr/bin/systemctl disable systemd-resolved + ExecStart=/usr/bin/rm /etc/resolv.conf + ExecStart=/usr/bin/touch /var/lib/%N.stamp + ExecStart=/usr/bin/echo 'libhardened_malloc.so' > /etc/ld.so.preload + ExecStart=/usr/bin/systemctl --no-block reboot + + [Install] + WantedBy=multi-user.target + + - name: debug-shell.service + enabled: false + mask: true + - name: docker.service + enabled: false + - name: rpm-ostree-countme.timer + enabled: false + mask: true + - name: irqbalance.service + enabled: false + mask: true + - name: kdump.service + enabled: false + mask: true + - name: systemd-resolved.service + enabled: false + mask: true + +storage: + files: + - path: /etc/chrony.conf + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/main/etc/chrony.conf + overwrite: true + - path: /etc/sysconfig/chronyd + overwrite: true + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/sysconfig/chronyd + + - path: /etc/docker/daemon.json + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/docker/daemon.json + + - path: /etc/issue + overwrite: true + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/issue + - path: /etc/issue.net + overwrite: true + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/issue + + - path: /etc/modprobe.d/server-blacklist.conf + contents: + source: https://raw.githubusercontent.com/secureblue/secureblue/live/files/system/etc/modprobe.d/blacklist.conf + + - path: /etc/security/limits.d/30-disable-coredump.conf + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/security/limits.d/30-disable-coredump.conf + + - path: /etc/ssh/sshd_config.d/10-custom.conf + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/ssh/sshd_config.d/10-custom.conf + - path: /etc/ssh/ssh_config.d/10-custom.conf + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/ssh/ssh_config.d/10-custom.conf + - path: /etc/systemd/system/sshd.service.d/override.conf + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/system/sshd.service.d/override.conf + + - path: /etc/sysctl.d/99-server.conf + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/sysctl.d/99-server.conf + + - path: /etc/systemd/coredump.conf.d + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/coredump.conf.d/disable.conf + + - path: /etc/systemd/system/gvisor-updater.service + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/system/gvisor-updater.service + + # Annoying AGPL3 license + - 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/zram-generator.conf + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/zram-generator.conf + + - path: /etc/tuned/active_profile + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/tuned/active_profile + - path: /etc/tuned/profile_mode + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/tuned/profile_mode + + - path: /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:secureblue:hardened_malloc.repo + overwrite: true + + - path: /etc/zincati/config.d/51-rollout-wariness.toml + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/zincati/config.d/51-rollout-wariness.toml + - path: /etc/zincati/config.d/55-updates-strategy.toml + contents: + source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/zincati/config.d/55-updates-strategy.toml + + links: + - path: /etc/systemd/system/multi-user.target.wants/gvisor-updater.service + target: /etc/systemd/system/gvisor-updater.service + - path: /etc/systemd/system/multi-user.target.wants/tuned.service + target: /usr/lib/systemd/system/tuned.service + +kernel_arguments: + should_exist: + # CPU vulnerabilities + - mitigations=auto,nosmt + - nosmt=force + - spectre_v2=on + - spectre_bhi=on + - spec_store_bypass_disable=on + - tsx=off + - l1d_flush=on + - l1tf=full,force + - kvm-intel.vmentry_l1d_flush=always + - spec_rstack_overflow=safe-ret + - gather_data_sampling=force + - reg_file_data_sampling=on + - kvm.nx_huge_pages=force + + # DMA protection + - amd_iommu=force_isolation + - intel_iommu=on + - iommu=force + - iommu.strict=1 + - iommu.passthrough=0 + - efi=disable_early_pci_dma + + # Memory protection + - slab_nomerge + - init_on_alloc=1 + - init_on_free=1 + - page_alloc.shuffle=1 + - pti=on + - randomize_kstack_offset=on + + # ASR + - lockdown=confidentiality + - module.sig_enforce=1 + - oops=panic + - vsyscall=none + - ia32_emulation=0 + - debugfs=off + + # Entropy + - random.trust_bootloader=off + - random.trust_cpu=off + + # Serial support for Proxmox + - console=tty0 + - console=ttyS0,115200 \ No newline at end of file