diff options
Diffstat (limited to 'etc.bash')
| -rwxr-xr-x | etc.bash | 67 |
1 files changed, 67 insertions, 0 deletions
@@ -35,3 +35,70 @@ sudo systemctl enable --now fstrim.timer # linux-hardened sudo cp -v ./etc/mkinitcpio.d/linux-hardened.preset /etc/mkinitcpio.d sudo mkinitcpio -P + +# harden systemd services +echo "==> Creating drop-in override directories..." +sudo mkdir -p /etc/systemd/system/sshd.service.d +sudo mkdir -p /etc/systemd/system/fail2ban.service.d +sudo mkdir -p /etc/systemd/system/cups.service.d + +echo "==> Applying sshd.service hardening..." +sudo bash -c "cat << 'EOF' > /etc/systemd/system/sshd.service.d/override.conf +[Service] +NoNewPrivileges=yes +ProtectSystem=strict +ProtectHome=read-only +ReadWritePaths=/var/empty /run/sshd +PrivateTmp=yes +ProtectKernelTunables=yes +ProtectKernelModules=yes +ProtectControlGroups=yes +PrivateDevices=yes +RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX +RestrictRealtime=yes +LockPersonality=yes +EOF +" + +echo "==> Applying fail2ban.service hardening..." +sudo bash -c "cat << 'EOF' > /etc/systemd/system/fail2ban.service.d/override.conf +[Service] +NoNewPrivileges=yes +ProtectSystem=full +PrivateTmp=yes +ProtectKernelTunables=yes +ProtectKernelModules=yes +ProtectControlGroups=yes +PrivateDevices=yes +RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX +RestrictRealtime=yes +EOF +" + +echo "==> Applying cups.service hardening..." +sudo bash -c "cat << 'EOF' > /etc/systemd/system/cups.service.d/override.conf +[Service] +NoNewPrivileges=yes +ProtectSystem=strict +ProtectHome=yes +ReadWritePaths=/var/spool/cups /var/cache/cups /var/run/cups /etc/cups +PrivateTmp=yes +ProtectKernelTunables=yes +ProtectKernelModules=yes +ProtectControlGroups=yes +RestrictNamespaces=yes +MemoryDenyWriteExecute=yes +EOF +" + +sudo systemctl daemon-reload + +echo "==> Restarting services..." +for svc in sshd fail2ban cups; do + if systemctl is-active --quiet "$svc"; then + echo " Restarting active service: $svc" + sudo systemctl restart "$svc" + else + echo " Skipping restart for inactive service: $svc" + fi +done |
