2021-11-02 22:32:22 -04:00
|
|
|
variant: fcos
|
|
|
|
version: 1.4.0
|
|
|
|
passwd:
|
|
|
|
users:
|
|
|
|
- name: tomster
|
2022-12-01 14:47:50 -05:00
|
|
|
ssh_authorized_keys:
|
2022-09-04 16:10:20 -04:00
|
|
|
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDbVNnQVs6SVW1GvQQ7FE6afs08LMtTNmDIPtoT3+Aqa7I3HOZRgWpqh3kIz3OTOCs2zl5JHCJDaANvadjGFcdtSI+zy7bozpj5TJWGDnGkH3Rp2SBBRK6twjjrN9nbTJ2ihlkXEOA2e3SDFXEkwu6t0fLZelBUk3FWnbK/xPmsRUuEF90oxpXpZIPeFbE4nNK3HarNPL+XzA2xzSqrwNk9ICCJ9MS3OcnPpWIQR3LKLEgyPFKwy4K6WzQyNvr5uFAcV9Zrq9TM93HSOUdtFFXcDeAEu76cQorsgAyU7XbAPqSza780qF/kHhQ+Hb4q1Wmyk62nAu7dT86lujpzIWXOdFJZyb3WWjP21qe7bk8A1S5Q9lfto/bo0Rs2wHbBRtoxMrb8DTC3EtErjN/IXMZrqMZpj3hNiNxP3PYKXLWb6AbuWjQO5d4Tu4vv4QWKGyJwvkI55V0sI9a2lLODAK+x9z4K7cbGLFHqdEFCLkq7sDU3zd9q68//M/LQO3AO9sMpd8jHDg0xdgdfh5dP6grUDypz1h/HtXCT+w3Ka2geitqoTMv6y0WO1vT+c97mvbjf24rwoLiPe7qVPnxKTRPNRH1vhmOLeZsQva2ATXBCR/J+Xn4JzSWOt17N/s5ldvfD+d6FrYzDNw664efaXMIWCbVJtlKvas0I9iM2VYRM7Q==
|
2021-11-13 21:33:56 -05:00
|
|
|
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDcmfm4RKkVC02QrF6ajGVVlbO3+AiVVyfoO4jbUjNbBNarVNgOHNC2lyxo3DJG33uKg74/e6fwj2mr2qW7Bq/yefmMqZrwY6ZyBDOOnkmsaMjX3Q5dJVRvHaYDShseJEBVtALVZFPyYQhdCdCEI/pO1Oeh+bDgLFinWoKAx6Fau8ArjbCsU4WfmgTUQae8AkE5e+uj+2T7Nq195CgfWEnAcKTKEYTr+6Y5a8L/w6ugto41bXvbwWhgogMT7epkcsfSF14M5hi0kBTawmzSi6HsqnAs4PWadaN0IMtfZJ/ZdpNw2QjdDKReGc3AcvEUQU9840RgVmXLp0JT5kdHJZabYcpPaDRwTw3A/oNIEZCzOKve8j4aFrf003etUn7Vq5wchyqyRrk2KRnK61v8BOtF7REs5jw/hQ1PdbsGewhxmGQy3gJ670BS1apQDvrZVHUqIsl3SGcykBBQvLu0F5erZ3ENPAk0wb++ygBtqsoF0wV9rv+L/VEh7233/TUQbH6K2ggZg5SvQnjUA4JqnBcSPf8kMlEGCU+8yeGSF086vL3gpVF6VpvUa34Sh+RbLGtNPVcoTSa2yLwSHdU0NmA9Lj/0M3+ty+uK4pBU86zIIAmyB9NBN/TcpeR7PVi3J991EbVLZgwzAK7S/LAmE6vWLG1IoQbDDN7QCB9XWiFiaQ==
|
2021-11-02 22:32:22 -04:00
|
|
|
groups:
|
|
|
|
- wheel
|
|
|
|
- sudo
|
|
|
|
systemd:
|
|
|
|
units:
|
|
|
|
- name: postinst.service
|
|
|
|
enabled: true
|
|
|
|
contents: |
|
|
|
|
[Unit]
|
|
|
|
Description=Initial System Setup
|
|
|
|
# We run after `systemd-machine-id-commit.service` to ensure that
|
|
|
|
# `ConditionFirstBoot=true` services won't rerun on the next boot.
|
|
|
|
After=systemd-machine-id-commit.service
|
|
|
|
After=network-online.target
|
|
|
|
# We run before `zincati.service` to avoid conflicting rpm-ostree
|
|
|
|
# transactions.
|
|
|
|
Before=zincati.service
|
|
|
|
ConditionPathExists=!/var/lib/%N.stamp
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
Type=oneshot
|
|
|
|
RemainAfterExit=yes
|
2023-01-24 01:07:16 -05:00
|
|
|
ExecStart=/usr/bin/sed -i 's/#DNSSEC=no/DNSSEC=yes/g' /etc/systemd/resolved.conf
|
|
|
|
ExecStart=/usr/bin/systemctl restart systemd-resolved
|
|
|
|
ExecStart=/usr/bin/rpm-ostree install firewalld qemu-guest-agent tuned unbound
|
2021-11-02 22:32:22 -04:00
|
|
|
ExecStart=/bin/touch /var/lib/%N.stamp
|
|
|
|
ExecStart=/usr/bin/sed 's/nullok//g' /etc/pam.d/system-auth
|
2022-12-01 14:47:50 -05:00
|
|
|
ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/modprobe.d/30_security-misc.conf -o /etc/modprobe.d/30_security-misc.conf
|
2022-09-12 18:34:28 -04:00
|
|
|
ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_security-misc.conf -o /etc/sysctl.d/30_security-misc.conf
|
2022-12-01 14:47:50 -05:00
|
|
|
ExecStart=/usr/bin/sed -i 's/kernel.yama.ptrace_scope=2/kernel.yama.ptrace_scope=3/g' /etc/sysctl.d/30_security-misc.conf
|
2022-09-12 18:34:28 -04:00
|
|
|
ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_silent-kernel-printk.conf -o /etc/sysctl.d/30_silent-kernel-printk.conf
|
2023-02-04 05:26:13 -05:00
|
|
|
ExecStart=/usr/bin/curl https://raw.githubusercontent.com/Kicksecure/security-misc/master/etc/sysctl.d/30_security-misc_kexec-disable.conf -o /etc/sysctl.d/30_security-misc_kexec-disable.conf
|
2022-09-05 08:18:33 -04:00
|
|
|
ExecStart=/usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf -o /etc/chrony.conf
|
2022-12-01 14:47:50 -05:00
|
|
|
ExecStart=/usr/bin/mkdir -p /etc/systemd/system/NetworkManager.service.d
|
|
|
|
ExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/NetworkManager.service.d/99-brace.conf -o /etc/systemd/system/NetworkManager.service.d/99-brace.conf
|
|
|
|
ExecStart=/usr/bin/mkdir -p /etc/systemd/system/irqbalance.service.d
|
|
|
|
ExecStart=/usr/bin/curl https://gitlab.com/divested/brace/-/raw/master/brace/usr/lib/systemd/system/irqbalance.service.d/99-brace.conf -o /etc/systemd/system/irqbalance.service.d/99-brace.conf
|
|
|
|
ExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d
|
2022-12-14 01:41:07 -05:00
|
|
|
ExecStart=/usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/systemd/system/sshd.service.d/limits.conf -o /etc/systemd/system/sshd.service.d/limits.conf
|
2023-01-24 01:07:16 -05:00
|
|
|
ExecStart=/bin/systemctl disable systemd-resolved
|
2021-11-02 22:32:22 -04:00
|
|
|
ExecStart=/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/docker run --detach --privileged --name watchtower --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime:ro containrrr/watchtower --schedule "0 5 0 * * 1"
|
|
|
|
ExecStart=/bin/touch /var/lib/%N.stamp
|
|
|
|
|
2022-04-11 19:11:38 -04:00
|
|
|
[Install]
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
- name: setsebool.service
|
|
|
|
enabled: true
|
|
|
|
contents: |
|
|
|
|
[Service]
|
2022-12-01 14:47:50 -05:00
|
|
|
Type=oneshot
|
2022-04-11 19:11:38 -04:00
|
|
|
ExecStart=/usr/sbin/setsebool container_use_cephfs off
|
|
|
|
ExecStart=/usr/sbin/setsebool virt_use_nfs off
|
|
|
|
ExecStart=/usr/sbin/setsebool virt_use_samba off
|
|
|
|
RemainAfterExit=yes
|
2021-11-02 22:32:22 -04:00
|
|
|
[Install]
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
- name: docker.service
|
|
|
|
enabled: true
|
|
|
|
- name: fstrim.timer
|
|
|
|
enabled: true
|
|
|
|
- name: systemd-oomd.service
|
|
|
|
enabled: true
|
|
|
|
- name: rpm-ostree-countme.timer
|
|
|
|
enabled: false
|
|
|
|
mask: true
|
2022-12-26 10:17:18 -05:00
|
|
|
- name: sshd.service
|
|
|
|
enabled: false
|
|
|
|
- name: sshd.socket
|
|
|
|
enabled: true
|
2021-11-02 22:32:22 -04:00
|
|
|
storage:
|
|
|
|
files:
|
2022-09-12 17:58:29 -04:00
|
|
|
- path: /etc/ssh/sshd_config.d/10-custom.conf
|
2022-04-11 19:46:00 -04:00
|
|
|
contents:
|
|
|
|
inline: |
|
2022-12-01 14:47:50 -05:00
|
|
|
X11Forwarding no
|
2022-04-11 19:46:00 -04:00
|
|
|
GSSAPIAuthentication no
|
2021-11-02 22:32:22 -04:00
|
|
|
- path: /etc/zincati/config.d/51-rollout-wariness.toml
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
[identity]
|
|
|
|
rollout_wariness = 1
|
|
|
|
- path: /etc/zincati/config.d/55-updates-strategy.toml
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
[updates]
|
|
|
|
strategy = "periodic"
|
|
|
|
[updates.periodic]
|
|
|
|
time_zone = "localtime"
|
|
|
|
[[updates.periodic.window]]
|
|
|
|
days = [ "Sun" ]
|
|
|
|
start_time = "0:00"
|
|
|
|
length_minutes = 60
|
|
|
|
- path: /etc/tuned/active_profile
|
|
|
|
overwrite: true
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
virtual-guest
|
|
|
|
- path: /etc/tuned/profile_mode
|
|
|
|
overwrite: true
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
manual
|
|
|
|
- path: /etc/systemd/zram-generator.conf
|
|
|
|
overwrite: true
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
# This config file enables a /dev/zram0 device with the default settings
|
|
|
|
[zram0]
|
|
|
|
zram-fraction = 1
|
|
|
|
max-zram-size = 8192
|
|
|
|
- path: /etc/security/limits.d/30-disable-coredump.conf
|
|
|
|
overwrite: true
|
2022-12-01 14:47:50 -05:00
|
|
|
contents:
|
|
|
|
inline: |
|
2021-11-02 22:32:22 -04:00
|
|
|
* hard core 0
|
2022-09-12 17:58:29 -04:00
|
|
|
- path: /etc/ssh/ssh_config.d/10-custom.conf
|
2021-11-02 22:32:22 -04:00
|
|
|
overwrite: true
|
2022-12-01 14:47:50 -05:00
|
|
|
contents:
|
2021-11-02 22:32:22 -04:00
|
|
|
inline: |
|
2022-09-12 17:58:29 -04:00
|
|
|
GSSAPIAuthentication no
|
2023-01-18 06:53:12 -05:00
|
|
|
VerifyHostKeyDNS yes
|
2023-03-15 01:38:02 -04:00
|
|
|
- path: /etc/systemd/system/gvisor-updater.service
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
[Unit]
|
|
|
|
Description=gVisor Update
|
|
|
|
Require=network-online.target
|
|
|
|
Before=docker.service
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
WorkingDirectory=/var/roothome
|
|
|
|
Type=oneshot
|
2023-03-15 02:10:09 -04:00
|
|
|
ExecStart=/usr/bin/sleep 5
|
2023-03-15 01:38:02 -04:00
|
|
|
ExecStart=/usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc
|
|
|
|
ExecStart=/usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc.sha512
|
|
|
|
ExecStart=/usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1
|
|
|
|
ExecStart=/usr/bin/curl -O https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/containerd-shim-runsc-v1.sha512
|
|
|
|
ExecStart=/usr/bin/sha512sum -c runsc.sha512 -c containerd-shim-runsc-v1.sha512
|
2023-03-15 03:28:08 -04:00
|
|
|
ExecStart=/usr/bin/rm -f runsc.sha512 containerd-shim-runsc-v1.sha512
|
2023-03-15 01:38:02 -04:00
|
|
|
ExecStart=/usr/bin/chmod a+rx runsc containerd-shim-runsc-v1
|
|
|
|
ExecStart=/usr/bin/mv runsc containerd-shim-runsc-v1 /var/usrlocal/bin
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
WantedBy=multi-user.target
|
2023-01-24 01:07:16 -05:00
|
|
|
- path: /etc/unbound/unbound.conf
|
|
|
|
overwrite: true
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
server:
|
2023-01-24 07:50:03 -05:00
|
|
|
chroot: ""
|
|
|
|
|
|
|
|
auto-trust-anchor-file: "/var/lib/unbound/root.key"
|
|
|
|
trust-anchor-signaling: yes
|
|
|
|
root-key-sentinel: yes
|
|
|
|
|
2023-01-24 01:07:16 -05:00
|
|
|
tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt
|
2023-01-24 07:50:03 -05:00
|
|
|
tls-ciphers: "PROFILE=SYSTEM"
|
|
|
|
|
|
|
|
hide-http-user-agent: yes
|
|
|
|
hide-identity: yes
|
|
|
|
hide-trustanchor: yes
|
|
|
|
hide-version: yes
|
2023-01-24 01:07:16 -05:00
|
|
|
|
2023-01-24 07:50:03 -05:00
|
|
|
deny-any: yes
|
2023-01-24 01:07:16 -05:00
|
|
|
harden-algo-downgrade: yes
|
|
|
|
harden-large-queries: yes
|
|
|
|
harden-referral-path: yes
|
|
|
|
harden-short-bufsize: yes
|
2023-01-24 07:50:03 -05:00
|
|
|
ignore-cd-flag: yes
|
|
|
|
max-udp-size: 3072
|
|
|
|
module-config: "validator iterator"
|
2023-01-24 01:07:16 -05:00
|
|
|
qname-minimisation-strict: yes
|
|
|
|
unwanted-reply-threshold: 10000000
|
|
|
|
use-caps-for-id: yes
|
|
|
|
|
|
|
|
outgoing-port-permit: 1024-65535
|
|
|
|
|
|
|
|
prefetch: yes
|
|
|
|
prefetch-key: yes
|
|
|
|
|
|
|
|
forward-zone:
|
|
|
|
name: "."
|
|
|
|
forward-tls-upstream: yes
|
|
|
|
forward-addr: 8.8.8.8#dns.google
|
|
|
|
forward-addr: 8.8.4.4#dns.google
|
|
|
|
forward-addr: 2001:4860:4860::8888#dns.google
|
|
|
|
forward-addr: 2001:4860:4860::8844#dns.google
|
|
|
|
- path: /etc/systemd/system/unbound.service.d/override.conf
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
[Unit]
|
|
|
|
MemoryDenyWriteExecute=true
|
|
|
|
PrivateDevices=true
|
|
|
|
PrivateTmp=true
|
|
|
|
ProtectHome=true
|
|
|
|
ProtectClock=true
|
|
|
|
ProtectControlGroups=true
|
|
|
|
ProtectKernelLogs=true
|
|
|
|
ProtectKernelModules=true
|
|
|
|
# This breaks using socket options like 'so-rcvbuf'. Explicitly disable for visibility.
|
|
|
|
ProtectKernelTunables=true
|
|
|
|
ProtectProc=invisible
|
|
|
|
RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
|
|
|
|
RestrictRealtime=true
|
|
|
|
SystemCallArchitectures=native
|
|
|
|
SystemCallFilter=~@clock @cpu-emulation @debug @keyring @module mount @obsolete @resources
|
|
|
|
RestrictNamespaces=yes
|
|
|
|
LockPersonality=yes
|
2023-03-15 01:38:02 -04:00
|
|
|
- path: /etc/docker/daemon.json
|
|
|
|
contents:
|
|
|
|
inline: |
|
|
|
|
{
|
|
|
|
"default-runtime": "runsc-ptrace",
|
|
|
|
"runtimes": {
|
|
|
|
"runsc-ptrace": {
|
|
|
|
"path": "/var/usrlocal/bin/runsc",
|
|
|
|
"runtimeArgs": [
|
2023-03-15 19:03:29 -04:00
|
|
|
"--platform=ptrace",
|
|
|
|
"--network=host"
|
2023-03-15 01:38:02 -04:00
|
|
|
]
|
|
|
|
},
|
|
|
|
"runsc-kvm": {
|
|
|
|
"path": "/var/usrlocal/bin/runsc",
|
|
|
|
"runtimeArgs": [
|
2023-03-15 19:03:29 -04:00
|
|
|
"--platform=kvm",
|
|
|
|
"--network=host"
|
2023-03-15 01:38:02 -04:00
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-11-02 22:32:22 -04:00
|
|
|
links:
|
|
|
|
- path: /etc/localtime
|
|
|
|
target: ../usr/share/zoneinfo/America/New_York
|
2023-01-24 02:33:44 -05:00
|
|
|
- path: /etc/systemd/system/multi-user.target.wants/unbound.service
|
|
|
|
target: /usr/lib/systemd/system/unbound.service
|
2021-11-02 22:32:22 -04:00
|
|
|
- path: /etc/systemd/system/multi-user.target.wants/tuned.service
|
|
|
|
target: /usr/lib/systemd/system/tuned.service
|
|
|
|
- path: /etc/systemd/system/kdump.service.target
|
|
|
|
target: /dev/null
|
|
|
|
kernel_arguments:
|
|
|
|
should_exist:
|
2022-09-04 22:51:57 -04:00
|
|
|
- spectre_v2=on
|
|
|
|
- spec_store_bypass_disable=on
|
|
|
|
- l1tf=full,force
|
|
|
|
- mds=full,nosmt
|
2022-12-01 14:47:50 -05:00
|
|
|
- tsx=off
|
2022-09-04 22:51:57 -04:00
|
|
|
- tsx_async_abort=full,nosmt
|
2021-11-02 22:32:22 -04:00
|
|
|
- kvm.nx_huge_pages=force
|
2022-09-04 22:51:57 -04:00
|
|
|
- nosmt=force
|
2022-09-12 18:34:28 -04:00
|
|
|
- l1d_flush=on
|
|
|
|
- mmio_stale_data=full,nosmt
|
|
|
|
- random.trust_bootloader=off
|
|
|
|
- random.trust_cpu=off
|
2022-12-01 14:47:50 -05:00
|
|
|
- intel_iommu=on
|
2022-09-12 18:34:28 -04:00
|
|
|
- amd_iommu=on
|
|
|
|
- iommu.passthrough=0 iommu.strict=1
|
|
|
|
- slab_nomerge
|
|
|
|
- init_on_alloc=1
|
|
|
|
- init_on_free=1
|
|
|
|
- pti=on
|
|
|
|
- vsyscall=none
|
|
|
|
- page_alloc.shuffle=1
|
|
|
|
- randomize_kstack_offset=on
|
|
|
|
- extra_latent_entropy
|
|
|
|
- debugfs=off
|