harden exim
authorIan Kelling <ian@iankelling.org>
Sat, 19 Feb 2022 05:55:03 +0000 (00:55 -0500)
committerIan Kelling <ian@iankelling.org>
Sat, 19 Feb 2022 05:55:03 +0000 (00:55 -0500)
mail-setup

index 13f99478e6a7ffb2d85d59a79984522a7dbac57a..28e02ce089f63edc39362f7123610f77bc3ad578 100755 (executable)
@@ -3,9 +3,6 @@
 # Copyright (C) 2019 Ian Kelling
 # SPDX-License-Identifier: AGPL-3.0-or-later
 
-# todo: sandbox / harden exim:
-#  restrict its filesystem access from within systemd
-
 #  todo: harden dovecot. need to do some research. one way is for it to only listen on a wireguard vpn interface, so only clients that are on the vpn can access it.
 #  todo: consider hardening cups listening on 0.0.0.0
 #  todo: stop/disable local apache, and rpc.mountd, and kdeconnect when not in use.
@@ -2355,6 +2352,19 @@ case $HOSTNAME in
 [Service]
 # see 56.2 Root privilege in exim spec
 AmbientCapabilities=CAP_NET_BIND_SERVICE
+# https://www.redhat.com/sysadmin/mastering-systemd
+# things that seem good and reasonabl.e
+PrivateTmp=yes
+ProtectHome=yes
+# note, in t10 systemd, if one of these is an sshfs mountpoint,
+# this whole setting doesnt work. tried it with a newer systemd 250 though
+# an nspawn, and it worked there.
+InaccessiblePaths=d m media mnt nocow o p q
+NoNewPrivileges=yes
+ProtectSystem=yes
+
+# when we get newer systemd
+#ProtectDevices=yes
 EOF
     i /etc/exim4/conf.d/main/000_local-noroot <<'EOF'
 # see 56.2 Root privilege in exim spec