diff --git a/README.md b/README.md index 17a736e..4cb6cc5 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,4 @@ Ignition configurations for Fedora CoreOS
2. Only ED25519 SSH keys are accepted with the SSHD hardening configuration. If you do not use ED25519 keys, you will need to adjust the `/etc/ssh/sshd_config.d/10-custom.conf` file accordingly. 3. If you create a passwordless user that requires administrative privileges, ensure that it is part of the `sudo` group (CoreOS allows this group to use sudo without a password) as the configs will disable empty password system authentication. 4. These configurations are made with a VPS in mind. You should adapt it for a bare metal deployment if that is what you are using (adding additional kernel parameters, configuring drive encryption, configuring storage, etc). You should also change the tuned profile from `virtual-guest` appropriately. -5. The docker-compose-updater.service in `/etc/systemd/system` can be enabled to have automatic updates for your containers created by Docker Compose. \ No newline at end of file +5. The docker-compose-updater@.timer can be enabled to have automatic updates for your containers created by Docker Compose. \ No newline at end of file diff --git a/etc/docker/daemon-unbound.json b/etc/docker/daemon-unbound.json new file mode 100644 index 0000000..2d4130e --- /dev/null +++ b/etc/docker/daemon-unbound.json @@ -0,0 +1,24 @@ +{ + "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/docker/daemon.json b/etc/docker/daemon.json index 3d705f4..1ae4d0a 100644 --- a/etc/docker/daemon.json +++ b/etc/docker/daemon.json @@ -1,13 +1,6 @@ { "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": [ @@ -15,14 +8,6 @@ "--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": [ @@ -31,9 +16,5 @@ "--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/kargs b/kargs deleted file mode 100644 index fb00bb6..0000000 --- a/kargs +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2021-2024 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. - -# This file is just incase you want to quickly copy-paste the kernel arguments into `rpm-ostree kargs` - -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 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 new file mode 100644 index 0000000..c147064 --- /dev/null +++ b/x86-unbound.ign @@ -0,0 +1 @@ +{"ignition":{"version":"3.4.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/live/files/system/usr/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 cifs-utils containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc samba-client-libs samba-common libwbclient libsmbclient samba-common-libs sssd-client sssd-ldap sssd-common sssd-krb5-common sssd-nfs-idmap sssd-ad sssd-krb5 sssd-ipa sssd-common-pac 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 once a week, 15 mintues after OS updates\n\n[Timer]\nOnCalendar=Fri 2: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 new file mode 100644 index 0000000..fe4c809 --- /dev/null +++ b/x86-unbound.yml @@ -0,0 +1,298 @@ +# Copyright (C) 2021-2024 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/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 cifs-utils containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc samba-client-libs samba-common libwbclient libsmbclient samba-common-libs sssd-client sssd-ldap sssd-common sssd-krb5-common sssd-nfs-idmap sssd-ad sssd-krb5 sssd-ipa sssd-common-pac 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/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 once a week, 15 mintues after OS updates + + [Timer] + OnCalendar=Fri 2: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/live/files/system/usr/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 index 43f58b7..1e0e9c7 100644 --- a/x86.ign +++ b/x86.ign @@ -1 +1 @@ -{"ignition":{"version":"3.4.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.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/live/files/system/usr/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 cifs-utils containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc samba-client-libs samba-common libwbclient libsmbclient samba-common-libs sssd-client sssd-ldap sssd-common sssd-krb5-common sssd-nfs-idmap sssd-ad sssd-krb5 sssd-ipa sssd-common-pac 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/echo 'EDITOR=nano' \u003e\u003e /etc/bashrc\nExecStart=/usr/bin/echo 'VISUAL=nano' \u003e\u003e /etc/bashrc\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/firewall-cmd --permanent --remove-service=dhcpv6-client\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 once a week, 15 mintues after OS updates\n\n[Timer]\nOnCalendar=Fri 2: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"}]}} +{"ignition":{"version":"3.4.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.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/live/files/system/usr/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 cifs-utils containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc samba-client-libs samba-common libwbclient libsmbclient samba-common-libs sssd-client sssd-ldap sssd-common sssd-krb5-common sssd-nfs-idmap sssd-ad sssd-krb5 sssd-ipa sssd-common-pac\nExecStart=/usr/bin/rpm-ostree install docker-ce docker-compose-plugin firewalld 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/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/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 once a week, 15 mintues after OS updates\n\n[Timer]\nOnCalendar=Fri 2: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.yml b/x86.yml index c4d574b..111d9e2 100644 --- a/x86.yml +++ b/x86.yml @@ -46,12 +46,9 @@ systemd: 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 cifs-utils containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc samba-client-libs samba-common libwbclient libsmbclient samba-common-libs sssd-client sssd-ldap sssd-common sssd-krb5-common sssd-nfs-idmap sssd-ad sssd-krb5 sssd-ipa sssd-common-pac systemd-resolved - ExecStart=/usr/bin/rpm-ostree install docker-ce docker-compose-plugin firewalld hardened_malloc qemu-guest-agent tuned unbound + ExecStart=/usr/bin/rpm-ostree override remove cifs-utils containerd docker-cli dnsmasq google-compute-engine-guest-configs-udev iptables-legacy iptables-legacy-libs moby-engine runc samba-client-libs samba-common libwbclient libsmbclient samba-common-libs sssd-client sssd-ldap sssd-common sssd-krb5-common sssd-nfs-idmap sssd-ad sssd-krb5 sssd-ipa sssd-common-pac + ExecStart=/usr/bin/rpm-ostree install docker-ce docker-compose-plugin firewalld hardened_malloc qemu-guest-agent tuned ExecStart=/usr/bin/sed -i 's/\s+nullok//g' /etc/pam.d/system-auth - ExecStart=/usr/bin/echo 'EDITOR=nano' >> /etc/bashrc - ExecStart=/usr/bin/echo 'VISUAL=nano' >> /etc/bashrc - ExecStart=/usr/bin/systemctl disable systemd-resolved ExecStart=/usr/bin/touch /var/lib/%N.stamp ExecStart=/usr/bin/systemctl --no-block reboot @@ -74,8 +71,6 @@ systemd: 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/firewall-cmd --permanent --remove-service=dhcpv6-client - ExecStart=/usr/bin/rm /etc/unbound/unbound_control.key ExecStart=/usr/bin/touch /var/lib/%N.stamp ExecStart=/usr/bin/systemctl --no-block reboot @@ -242,12 +237,6 @@ storage: 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: @@ -259,8 +248,6 @@ storage: 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: @@ -298,4 +285,4 @@ kernel_arguments: - lockdown=confidentiality - module.sig_enforce=1 - console=tty0 - - console=ttyS0,115200 + - console=ttyS0,115200 \ No newline at end of file