Compare commits

..

24 Commits

Author SHA1 Message Date
Tommy
5e7b96e582 Remove unnecessary config
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-12 09:16:14 -07:00
Tommy
e93575a87f Add docker-auto-update
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-12 02:55:44 -07:00
Tommy
bffb50dd7a Make Notes smaller
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-12 02:38:28 -07:00
Tommy
48b5df3957 Switch back to Docker
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-12 02:37:49 -07:00
Tommy
90b5b42aa9 Download gvisor at first boot
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-10 14:39:31 -07:00
Tommy
c193aecd1e Fix /etc/ld.so.preload handling
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-08 03:31:06 -07:00
Tommy
494371382f Reorganize postinst.service
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-08 03:11:52 -07:00
Tommy
7b3f274d3a Reschedule gvisor and podman update schedule
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-07 23:07:27 -07:00
Tommy
768715d076 Cleanup & enable podman-auto-update
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-06 02:19:12 -07:00
Tommy
f79017fd3e Fix chrony.conf
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-05 04:10:22 -07:00
Tommy
0c69141cac Add containers.conf and reallow systemd-resolved
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-05 03:57:34 -07:00
Tommy
65f05d7e76 Update README.md
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-05 03:11:21 -07:00
Tommy
6b592afe0f Repo cleanup
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-05 03:06:25 -07:00
Tommy
fa060e74d8 Full removal of systemd-resolved
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-04 17:04:52 -07:00
Tommy
8f064a9c08 Hard code DNS resolver IP for Metropolis Nexus
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 13:56:07 -07:00
Tommy
94be1579c6 Syntax fix
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 13:11:49 -07:00
Tommy
2da19bf47e Make stamp before editting ld.so.preload
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 06:04:40 -07:00
Tommy
a9871c9452 Daily updates
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 05:57:57 -07:00
Tommy
cc7b76262e Simplify removal
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 05:27:59 -07:00
Tommy
5369e16d8c Update module blacklist URL
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 04:44:14 -07:00
Tommy
1bab888069 Update butane spec
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 04:37:48 -07:00
Tommy
931620b545 Repo cleanup
- Splited configs with and without unbound
- Removed unnecessary karg file
- Removed environment variable to make nano the default editor
- Removed gvisor KVM runtime
- No longer block dhcpv6-client: DHCP6 can be done securely in a Proxmox environment

Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 04:18:35 -07:00
Tommy
44f68f326e Daily Updates
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 03:19:52 -07:00
Tommy
c25323a8b6 coreos-cni-networking-check no longer exists
Signed-off-by: Tommy <contact@tommytran.io>
2025-06-02 03:05:10 -07:00
12 changed files with 139 additions and 382 deletions

View File

@@ -1,9 +1,8 @@
# Fedora-CoreOS-Ignition # Fedora-CoreOS-Ignition
Ignition configurations for Fedora CoreOS<br /> Ignition configurations for Fedora CoreOS<br />
# Notes ## Notes
1. These are the configs I personally use on my systems. You **MUST** edit the files before you use them. At the very least, you should add your SSH keys or password hash.<br /> These configurations are tailored for Metropolis.nexus environment:
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. - Firewalling is handled by Proxmox (not the individual VMs)
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. - DNSSEC validation is done by either OPNsense or a central VM dedicated to running the DNS resolver
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. - The `docker-auto-update@.timer` in `/etc/systemd/system` can be enabled to have automatic updates for your containers created by Docker Compose.
5. The docker-compose-updater.service in `/etc/systemd/system` can be enabled to have automatic updates for your containers created by Docker Compose.

View File

@@ -1,39 +0,0 @@
{
"default-runtime": "runsc-systrap",
"runtimes": {
"runsc-kvm": {
"path": "/usr/local/bin/runsc",
"runtimeArgs": [
"--platform=kvm",
"--network=host"
]
},
"runsc-systrap": {
"path": "/usr/local/bin/runsc",
"runtimeArgs": [
"--platform=systrap",
"--network=host"
]
},
"runsc-kvm --host-uds=open": {
"path": "/usr/local/bin/runsc",
"runtimeArgs": [
"--platform=kvm",
"--network=host",
"--host-uds=open"
]
},
"runsc-systrap --host-uds=open": {
"path": "/usr/local/bin/runsc",
"runtimeArgs": [
"--platform=systrap",
"--network=host",
"--host-uds=open"
]
}
},
"default-address-pools": [
{ "base": "242.242.0.0/16", "size": 24 }
],
"dns" : [ "242.242.0.1" ]
}

View File

@@ -1 +0,0 @@
virtual-guest

View File

@@ -1 +0,0 @@
manual

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,2 +0,0 @@
[identity]
rollout_wariness = 0

View File

@@ -1,10 +0,0 @@
[updates]
strategy = "periodic"
[updates.periodic]
time_zone = "localtime"
[[updates.periodic.window]]
days = [ "Tue", "Fri" ]
start_time = "2:00"
length_minutes = 60

17
kargs
View File

@@ -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

File diff suppressed because one or more lines are too long

321
x86.yml
View File

@@ -1,4 +1,4 @@
# Copyright (C) 2021-2024 Thien Tran # Copyright (C) 2021-2025 Thien Tran
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may not # 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 # use this file except in compliance with the License. You may obtain a copy of
@@ -13,7 +13,8 @@
# the License. # the License.
variant: fcos variant: fcos
version: 1.5.0 version: 1.6.0
passwd: passwd:
users: users:
- name: tomster - name: tomster
@@ -22,7 +23,7 @@ passwd:
groups: groups:
- wheel - wheel
- sudo - sudo
- name: unpriv
systemd: systemd:
units: units:
- name: postinst.service - name: postinst.service
@@ -34,8 +35,6 @@ systemd:
# `ConditionFirstBoot=true` services won't rerun on the next boot. # `ConditionFirstBoot=true` services won't rerun on the next boot.
After=systemd-machine-id-commit.service After=systemd-machine-id-commit.service
After=network-online.target After=network-online.target
# We run before `zincati.service` to avoid conflicting rpm-ostree
# transactions.
Before=zincati.service Before=zincati.service
ConditionPathExists=!/var/lib/%N.stamp ConditionPathExists=!/var/lib/%N.stamp
@@ -46,259 +45,205 @@ systemd:
ExecStart=/usr/sbin/setsebool -P container_use_cephfs off 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_nfs off
ExecStart=/usr/sbin/setsebool -P virt_use_samba 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/systemctl start gvisor-auto-update.service
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 containerd docker-cli 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/sed -i 's/\s+nullok//g' /etc/pam.d/system-auth
ExecStart=/usr/bin/echo 'EDITOR=nano' >> /etc/bashrc ExecStart=/usr/bin/systemctl disable --now systemd-resolved
ExecStart=/usr/bin/echo 'VISUAL=nano' >> /etc/bashrc ExecStart=/usr/bin/rm /etc/resolv.conf
ExecStart=/usr/bin/systemctl disable systemd-resolved
ExecStart=/usr/bin/touch /var/lib/%N.stamp ExecStart=/usr/bin/touch /var/lib/%N.stamp
ExecStart=/usr/bin/systemctl --no-block reboot ExecStart=/usr/bin/systemctl --no-block reboot
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- name: postinst2.service - name: postinst2.service
enabled: true enabled: true
contents: | contents: |
[Unit] [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 ConditionPathExists=/var/lib/postinst.stamp
[Service] [Service]
Type=oneshot Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStart=/usr/bin/echo 'libhardened_malloc.so' > /etc/ld.so.preload ExecStart=/usr/bin/echo 'libhardened_malloc.so' > /etc/ld.so.preload
ExecStart=/usr/bin/systemctl enable --now firewalld ExecStart=/usr/bin/systemctl disable postinst
ExecStart=/usr/bin/firewall-cmd --lockdown-on ExecStart=/usr/bin/rm /etc/systemd/system/postinst.service
ExecStart=/usr/bin/firewall-cmd --permanent --remove-service=mds ExecStart=/usr/bin/rm /var/lib/postinst.stamp
ExecStart=/usr/bin/firewall-cmd --permanent --remove-service=dhcpv6-client ExecStart=/usr/bin/systemctl disable postinst2
ExecStart=/usr/bin/rm /etc/unbound/unbound_control.key ExecStart=/usr/bin/rm /etc/systemd/system/postinst2.service
ExecStart=/usr/bin/touch /var/lib/%N.stamp
ExecStart=/usr/bin/systemctl --no-block reboot ExecStart=/usr/bin/systemctl --no-block reboot
[Install] [Install]
WantedBy=multi-user.target 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] - name: debug-shell.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 enabled: false
contents: | mask: true
[Unit] - name: podman-auto-update.timer
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 enabled: true
- name: rpm-ostree-countme.timer - name: rpm-ostree-countme.timer
enabled: false enabled: false
mask: true mask: true
- name: sshd.service - name: irqbalance.service
enabled: false enabled: false
- name: sshd.socket mask: true
enabled: true
- name: kdump.service - name: kdump.service
enabled: false enabled: false
mask: true mask: true
- name: debug-shell.service
enabled: false
mask: true
- name: coreos-cni-networking-check.service
enabled: false
mask: true
storage: storage:
files: 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
- path: /etc/chrony.conf - path: /etc/chrony.conf
contents: contents:
source: https://raw.githubusercontent.com/GrapheneOS/infrastructure/refs/heads/main/etc/chrony.conf source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/chrony.conf
overwrite: true 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 - path: /etc/sysconfig/chronyd
overwrite: true overwrite: true
contents: contents:
source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/sysconfig/chronyd source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/sysconfig/chronyd
- path: /etc/unbound/unbound.conf
- path: /etc/containers/containers.conf
contents: contents:
source: https://raw.githubusercontent.com/TommyTran732/Fedora-CoreOS-Ignition/main/etc/unbound/unbound.conf source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/containers/containers.conf
- path: /etc/systemd/system/unbound.service.d/override.conf - path: /etc/docker/daemon.json
contents: contents:
source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/systemd/system/unbound.service.d/override.conf source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/docker/daemon.json
- path: /etc/issue - path: /etc/issue
overwrite: true overwrite: true
contents: contents:
source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/issue
- path: /etc/issue.net - path: /etc/issue.net
overwrite: true overwrite: true
contents: contents:
source: https://raw.githubusercontent.com/TommyTran732/Linux-Setup-Scripts/main/etc/issue 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/docker-auto-update@.service
contents:
source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/refs/heads/main/etc/systemd/system/docker-auto-update%40.service
- path: /etc/systemd/system/docker-auto-update@.timer
contents:
source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/refs/heads/main/etc/systemd/system/docker-auto-update%40.timer
- path: /etc/systemd/system/gvisor-auto-update.service
contents:
source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/system/gvisor-auto-update.service
- path: /etc/systemd/system/gvisor-auto-update.timer
contents:
source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/system/gvisor-auto-update.timer
# 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/system/podman-auto-update.timer.d/override.conf
contents:
source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/main/etc/systemd/system/podman-auto-update.timer.d/override.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
- path: /etc/yum.repos.d/docker-ce.repo
contents:
source: https://raw.githubusercontent.com/Metropolis-nexus/Common-Files/refs/heads/main/etc/yum.repos.d/docker-ce.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: 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 - path: /etc/systemd/system/multi-user.target.wants/tuned.service
target: /usr/lib/systemd/system/tuned.service target: /usr/lib/systemd/system/tuned.service
- path: /etc/systemd/system/timers.target.wants/gvisor-auto-update.timer
target: /etc/systemd/system/gvisor-auto-update.timer
kernel_arguments: kernel_arguments:
should_exist: should_exist:
# CPU vulnerabilities
- mitigations=auto,nosmt - mitigations=auto,nosmt
- nosmt=force
- spectre_v2=on - spectre_v2=on
- spectre_bhi=on - spectre_bhi=on
- spec_store_bypass_disable=on - spec_store_bypass_disable=on
- tsx=off - tsx=off
- kvm.nx_huge_pages=force
- nosmt=force
- l1d_flush=on - l1d_flush=on
- l1tf=full,force - l1tf=full,force
- kvm-intel.vmentry_l1d_flush=always - kvm-intel.vmentry_l1d_flush=always
- spec_rstack_overflow=safe-ret - spec_rstack_overflow=safe-ret
- gather_data_sampling=force - gather_data_sampling=force
- reg_file_data_sampling=on - reg_file_data_sampling=on
- random.trust_bootloader=off - kvm.nx_huge_pages=force
- random.trust_cpu=off
- intel_iommu=on # DMA protection
- amd_iommu=force_isolation - amd_iommu=force_isolation
- efi=disable_early_pci_dma - intel_iommu=on
- iommu=force - iommu=force
- iommu.passthrough=0
- iommu.strict=1 - iommu.strict=1
- iommu.passthrough=0
- efi=disable_early_pci_dma
# Memory protection
- slab_nomerge - slab_nomerge
- init_on_alloc=1 - init_on_alloc=1
- init_on_free=1 - init_on_free=1
- pti=on
- vsyscall=none
- ia32_emulation=0
- page_alloc.shuffle=1 - page_alloc.shuffle=1
- pti=on
- randomize_kstack_offset=on - randomize_kstack_offset=on
- debugfs=off
# ASR
- lockdown=confidentiality - lockdown=confidentiality
- module.sig_enforce=1 - 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=tty0
- console=ttyS0,115200 - console=ttyS0,115200