summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xetc.bash67
1 files changed, 67 insertions, 0 deletions
diff --git a/etc.bash b/etc.bash
index 80a9310..34a2894 100755
--- a/etc.bash
+++ b/etc.bash
@@ -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