mirror of
https://github.com/TommyTran732/Fedora-CoreOS-Ignition.git
synced 2025-10-14 18:28:51 +02:00
Compare commits
24 Commits
9471469cca
...
main
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5e7b96e582 | ||
![]() |
e93575a87f | ||
![]() |
bffb50dd7a | ||
![]() |
48b5df3957 | ||
![]() |
90b5b42aa9 | ||
![]() |
c193aecd1e | ||
![]() |
494371382f | ||
![]() |
7b3f274d3a | ||
![]() |
768715d076 | ||
![]() |
f79017fd3e | ||
![]() |
0c69141cac | ||
![]() |
65f05d7e76 | ||
![]() |
6b592afe0f | ||
![]() |
fa060e74d8 | ||
![]() |
8f064a9c08 | ||
![]() |
94be1579c6 | ||
![]() |
2da19bf47e | ||
![]() |
a9871c9452 | ||
![]() |
cc7b76262e | ||
![]() |
5369e16d8c | ||
![]() |
1bab888069 | ||
![]() |
931620b545 | ||
![]() |
44f68f326e | ||
![]() |
c25323a8b6 |
11
README.md
11
README.md
@@ -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.
|
|
@@ -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" ]
|
|
||||||
}
|
|
@@ -1 +0,0 @@
|
|||||||
virtual-guest
|
|
@@ -1 +0,0 @@
|
|||||||
manual
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -1,2 +0,0 @@
|
|||||||
[identity]
|
|
||||||
rollout_wariness = 0
|
|
@@ -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
17
kargs
@@ -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
|
|
319
x86.yml
319
x86.yml
@@ -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
|
Reference in New Issue
Block a user