1
0
mirror of https://github.com/tommytran732/Fedora-CoreOS-Ignition synced 2024-11-09 11:41:34 -05:00

Enable DNSSEC and DOT

Signed-off-by: Tommy <contact@tommytran.io>
This commit is contained in:
Tommy 2023-01-24 01:07:16 -05:00
parent 31d030ef1a
commit 3148545adf
No known key found for this signature in database
GPG Key ID: 060B29EB996BD9F2
8 changed files with 158 additions and 371 deletions

File diff suppressed because one or more lines are too long

View File

@ -28,7 +28,9 @@ systemd:
[Service] [Service]
Type=oneshot Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStart=/usr/bin/rpm-ostree install docker-compose fail2ban firewalld tuned qemu-guest-agent 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 docker-compose firewalld qemu-guest-agent tuned unbound
ExecStart=/bin/touch /var/lib/%N.stamp ExecStart=/bin/touch /var/lib/%N.stamp
ExecStart=/usr/bin/sed 's/nullok//g' /etc/pam.d/system-auth ExecStart=/usr/bin/sed 's/nullok//g' /etc/pam.d/system-auth
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 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
@ -42,8 +44,27 @@ systemd:
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/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 ExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d
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 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
ExecStart=/bin/systemctl disable systemd-resolved
ExecStart=/bin/systemctl --no-block reboot 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=/bin/systemctl enable --now unbound
ExecStart=/bin/touch /var/lib/%N.stamp
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- name: setsebool.service - name: setsebool.service
@ -93,18 +114,6 @@ storage:
days = [ "Sun" ] days = [ "Sun" ]
start_time = "0:00" start_time = "0:00"
length_minutes = 60 length_minutes = 60
- path: /etc/fail2ban/jail.local
contents:
inline: |
[DEFAULT]
# Maximum 3 failures:
maxentry = 3
# Ban hosts for one hour:
bantime = 3600
# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport
[sshd]
enabled = true
- path: /etc/tuned/active_profile - path: /etc/tuned/active_profile
overwrite: true overwrite: true
contents: contents:
@ -154,6 +163,70 @@ storage:
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
- path: /etc/unbound/unbound.conf
contents:
inline: |
server:
trust-anchor-file: dnssec-root.key
tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt
aggressive-nsec: yes
harden-algo-downgrade: yes
harden-below-nxdomain: yes
harden-dnssec-stripped: yes
harden-glue: yes
harden-large-queries: yes
harden-referral-path: yes
harden-short-bufsize: yes
qname-minimisation: yes
qname-minimisation-strict: yes
hide-identity: yes
hide-version: yes
unwanted-reply-threshold: 10000000
use-caps-for-id: yes
minimal-responses: yes
val-clean-additional: yes
rrset-roundrobin: yes
ignore-cd-flag: yes
do-not-query-localhost: yes
outgoing-port-permit: 1024-65535
so-reuseport: yes
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]
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_SYS_RESOURCE CAP_NET_RAW
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
ProtectSystem=strict
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
links: links:
- path: /etc/localtime - path: /etc/localtime
target: ../usr/share/zoneinfo/America/New_York target: ../usr/share/zoneinfo/America/New_York

File diff suppressed because one or more lines are too long

View File

@ -28,7 +28,9 @@ systemd:
[Service] [Service]
Type=oneshot Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStart=/usr/bin/rpm-ostree install firewalld tuned qemu-guest-agent 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
ExecStart=/bin/touch /var/lib/%N.stamp ExecStart=/bin/touch /var/lib/%N.stamp
ExecStart=/usr/bin/sed 's/nullok//g' /etc/pam.d/system-auth ExecStart=/usr/bin/sed 's/nullok//g' /etc/pam.d/system-auth
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 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
@ -42,6 +44,7 @@ systemd:
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/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 ExecStart=/usr/bin/mkdir -p /etc/systemd/system/sshd.service.d
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 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
ExecStart=/bin/systemctl disable systemd-resolved
ExecStart=/bin/systemctl --no-block reboot ExecStart=/bin/systemctl --no-block reboot
[Install] [Install]
@ -59,6 +62,7 @@ systemd:
[Service] [Service]
Type=oneshot Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStart=/bin/systemctl enable --now unbound
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=/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 ExecStart=/bin/touch /var/lib/%N.stamp
@ -140,6 +144,71 @@ storage:
inline: | inline: |
GSSAPIAuthentication no GSSAPIAuthentication no
VerifyHostKeyDNS yes VerifyHostKeyDNS yes
- path: /etc/unbound/unbound.conf
overwrite: true
contents:
inline: |
server:
trust-anchor-file: dnssec-root.key
tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt
aggressive-nsec: yes
harden-algo-downgrade: yes
harden-below-nxdomain: yes
harden-dnssec-stripped: yes
harden-glue: yes
harden-large-queries: yes
harden-referral-path: yes
harden-short-bufsize: yes
qname-minimisation: yes
qname-minimisation-strict: yes
hide-identity: yes
hide-version: yes
unwanted-reply-threshold: 10000000
use-caps-for-id: yes
minimal-responses: yes
val-clean-additional: yes
rrset-roundrobin: yes
ignore-cd-flag: yes
do-not-query-localhost: yes
outgoing-port-permit: 1024-65535
so-reuseport: yes
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]
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_SYS_RESOURCE CAP_NET_RAW
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
ProtectSystem=strict
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
links: links:
- path: /etc/localtime - path: /etc/localtime
target: ../usr/share/zoneinfo/America/New_York target: ../usr/share/zoneinfo/America/New_York

File diff suppressed because one or more lines are too long

View File

@ -1,177 +0,0 @@
variant: fcos
version: 1.4.0
passwd:
users:
- name: tomster
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDbVNnQVs6SVW1GvQQ7FE6afs08LMtTNmDIPtoT3+Aqa7I3HOZRgWpqh3kIz3OTOCs2zl5JHCJDaANvadjGFcdtSI+zy7bozpj5TJWGDnGkH3Rp2SBBRK6twjjrN9nbTJ2ihlkXEOA2e3SDFXEkwu6t0fLZelBUk3FWnbK/xPmsRUuEF90oxpXpZIPeFbE4nNK3HarNPL+XzA2xzSqrwNk9ICCJ9MS3OcnPpWIQR3LKLEgyPFKwy4K6WzQyNvr5uFAcV9Zrq9TM93HSOUdtFFXcDeAEu76cQorsgAyU7XbAPqSza780qF/kHhQ+Hb4q1Wmyk62nAu7dT86lujpzIWXOdFJZyb3WWjP21qe7bk8A1S5Q9lfto/bo0Rs2wHbBRtoxMrb8DTC3EtErjN/IXMZrqMZpj3hNiNxP3PYKXLWb6AbuWjQO5d4Tu4vv4QWKGyJwvkI55V0sI9a2lLODAK+x9z4K7cbGLFHqdEFCLkq7sDU3zd9q68//M/LQO3AO9sMpd8jHDg0xdgdfh5dP6grUDypz1h/HtXCT+w3Ka2geitqoTMv6y0WO1vT+c97mvbjf24rwoLiPe7qVPnxKTRPNRH1vhmOLeZsQva2ATXBCR/J+Xn4JzSWOt17N/s5ldvfD+d6FrYzDNw664efaXMIWCbVJtlKvas0I9iM2VYRM7Q==
- 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==
groups:
- wheel
- sudo
systemd:
units:
- name: postinst.service
enabled: true
contents: |
[Unit]
Description=Initial System Setup
# We run after `systemd-machine-id-commit.service` to ensure that
# `ConditionFirstBoot=true` services won't rerun on the next boot.
After=systemd-machine-id-commit.service
After=network-online.target
# We run before `zincati.service` to avoid conflicting rpm-ostree
# transactions.
Before=zincati.service
ConditionPathExists=!/var/lib/%N.stamp
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/rpm-ostree install firewalld tuned qemu-guest-agent
ExecStart=/bin/touch /var/lib/%N.stamp
ExecStart=/usr/bin/sed 's/nullok//g' /etc/pam.d/system-auth
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
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
ExecStart=/usr/bin/sed -i 's/kernel.yama.ptrace_scope=2/kernel.yama.ptrace_scope=3/g' /etc/sysctl.d/30_security-misc.conf
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
ExecStart=/usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf -o /etc/chrony.conf
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
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
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/echo "export GITLAB_HOME=/srv/gitlab" >> /etc/bashrc
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=/usr/bin/docker run --detach --hostname your_domain --publish 443:443 --publish 80:80 --publish 7022:22 --name gitlab --restart unless-stopped --volume /srv/gitlab/config:/etc/gitlab:Z --volume /srv/gitlab/logs:/var/log/gitlab:Z --volume /srv/gitlab/data:/var/opt/gitlab:Z gitlab/gitlab-ee:latest
ExecStart=/bin/touch /var/lib/%N.stamp
[Install]
WantedBy=multi-user.target
- name: setsebool.service
enabled: true
contents: |
[Service]
Type=oneshot
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
[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
- name: sshd.service
enabled: false
- name: sshd.socket
enabled: true
storage:
files:
- path: /etc/ssh/sshd_config.d/10-custom.conf
contents:
inline: |
X11Forwarding no
GSSAPIAuthentication no
- 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
contents:
inline: |
* hard core 0
- path: /etc/ssh/ssh_config.d/10-custom.conf
overwrite: true
contents:
inline: |
GSSAPIAuthentication no
VerifyHostKeyDNS yes
links:
- path: /etc/localtime
target: ../usr/share/zoneinfo/America/New_York
- 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:
- spectre_v2=on
- spec_store_bypass_disable=on
- l1tf=full,force
- mds=full,nosmt
- tsx=off
- tsx_async_abort=full,nosmt
- kvm.nx_huge_pages=force
- nosmt=force
- l1d_flush=on
- mmio_stale_data=full,nosmt
- random.trust_bootloader=off
- random.trust_cpu=off
- intel_iommu=on
- 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

File diff suppressed because one or more lines are too long

View File

@ -1,176 +0,0 @@
variant: fcos
version: 1.4.0
passwd:
users:
- name: tomster
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDbVNnQVs6SVW1GvQQ7FE6afs08LMtTNmDIPtoT3+Aqa7I3HOZRgWpqh3kIz3OTOCs2zl5JHCJDaANvadjGFcdtSI+zy7bozpj5TJWGDnGkH3Rp2SBBRK6twjjrN9nbTJ2ihlkXEOA2e3SDFXEkwu6t0fLZelBUk3FWnbK/xPmsRUuEF90oxpXpZIPeFbE4nNK3HarNPL+XzA2xzSqrwNk9ICCJ9MS3OcnPpWIQR3LKLEgyPFKwy4K6WzQyNvr5uFAcV9Zrq9TM93HSOUdtFFXcDeAEu76cQorsgAyU7XbAPqSza780qF/kHhQ+Hb4q1Wmyk62nAu7dT86lujpzIWXOdFJZyb3WWjP21qe7bk8A1S5Q9lfto/bo0Rs2wHbBRtoxMrb8DTC3EtErjN/IXMZrqMZpj3hNiNxP3PYKXLWb6AbuWjQO5d4Tu4vv4QWKGyJwvkI55V0sI9a2lLODAK+x9z4K7cbGLFHqdEFCLkq7sDU3zd9q68//M/LQO3AO9sMpd8jHDg0xdgdfh5dP6grUDypz1h/HtXCT+w3Ka2geitqoTMv6y0WO1vT+c97mvbjf24rwoLiPe7qVPnxKTRPNRH1vhmOLeZsQva2ATXBCR/J+Xn4JzSWOt17N/s5ldvfD+d6FrYzDNw664efaXMIWCbVJtlKvas0I9iM2VYRM7Q==
- 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==
groups:
- wheel
- sudo
systemd:
units:
- name: postinst.service
enabled: true
contents: |
[Unit]
Description=Initial System Setup
# We run after `systemd-machine-id-commit.service` to ensure that
# `ConditionFirstBoot=true` services won't rerun on the next boot.
After=systemd-machine-id-commit.service
After=network-online.target
# We run before `zincati.service` to avoid conflicting rpm-ostree
# transactions.
Before=zincati.service
ConditionPathExists=!/var/lib/%N.stamp
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/rpm-ostree install firewalld tuned qemu-guest-agent
ExecStart=/bin/touch /var/lib/%N.stamp
ExecStart=/usr/bin/sed 's/nullok//g' /etc/pam.d/system-auth
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
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
ExecStart=/usr/bin/sed -i 's/kernel.yama.ptrace_scope=2/kernel.yama.ptrace_scope=3/g' /etc/sysctl.d/30_security-misc.conf
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
ExecStart=/usr/bin/curl https://raw.githubusercontent.com/GrapheneOS/infrastructure/main/chrony.conf -o /etc/chrony.conf
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
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
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=/usr/bin/docker run --name onlyoffice --restart unless-stopped -i -t -d -p 80:80 -p 443:443 -e LETS_ENCRYPT_DOMAIN=your_domain -e LETS_ENCRYPT_MAIL=your_mail -e JWT_ENABLED=true -e JWT_SECRET=your_secret_here -v /srv/onlyoffice/DocumentServer/logs:/var/log/onlyoffice:Z -v /srv/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data:Z -v /srv/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice:Z -v /srv/onlyoffice/DocumentServer/rabbitmq:/var/lib/rabbitmq:Z -v /srv/onlyoffice/DocumentServer/redis:/var/lib/redis:Z -v /srv/onlyoffice/DocumentServer/db:/var/lib/postgresql:Z onlyoffice/documentserver
ExecStart=/bin/touch /var/lib/%N.stamp
[Install]
WantedBy=multi-user.target
- name: setsebool.service
enabled: true
contents: |
[Service]
Type=oneshot
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
[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
- name: sshd.service
enabled: false
- name: sshd.socket
enabled: true
storage:
files:
- path: /etc/ssh/sshd_config.d/10-custom.conf
contents:
inline: |
X11Forwarding no
GSSAPIAuthentication no
- 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
contents:
inline: |
* hard core 0
- path: /etc/ssh/ssh_config.d/10-custom.conf
overwrite: true
contents:
inline: |
GSSAPIAuthentication no
VerifyHostKeyDNS yes
links:
- path: /etc/localtime
target: ../usr/share/zoneinfo/America/New_York
- 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:
- spectre_v2=on
- spec_store_bypass_disable=on
- l1tf=full,force
- mds=full,nosmt
- tsx=off
- tsx_async_abort=full,nosmt
- kvm.nx_huge_pages=force
- nosmt=force
- l1d_flush=on
- mmio_stale_data=full,nosmt
- random.trust_bootloader=off
- random.trust_cpu=off
- intel_iommu=on
- 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