ExecStartPre=@bindir@/dnsdist --check-config
# Note: when editing the ExecStart command, keep --supervised and --disable-syslog
ExecStart=@bindir@/dnsdist --supervised --disable-syslog
-
Type=notify
Restart=on-failure
RestartSec=2
TimeoutStopSec=5
StartLimitInterval=0
-PrivateTmp=true
-PrivateDevices=true
+
+# Tuning
+LimitNOFILE=16384
+TasksMax=8192
+
+# Sandboxing
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID
+LockPersonality=true
NoNewPrivileges=true
-ProtectSystem=full
+PrivateDevices=true
+PrivateTmp=true
+ProtectControlGroups=true
ProtectHome=true
+ProtectKernelModules=true
+ProtectKernelTunables=true
+ProtectSystem=full
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
-LimitNOFILE=16384
-TasksMax=8192
+RestrictNamespaces=true
+RestrictRealtime=true
[Install]
WantedBy=multi-user.target
After=network-online.target mysqld.service postgresql.service slapd.service mariadb.service
[Service]
-Type=notify
ExecStart=@sbindir@/pdns_server --guardian=no --daemon=no --disable-syslog --log-timestamp=no --write-pid=no
+Type=notify
Restart=on-failure
RestartSec=1
StartLimitInterval=0
-PrivateTmp=true
-PrivateDevices=true
+
+# Sandboxing
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_CHOWN CAP_SYS_CHROOT
-NoNewPrivileges=true
+LockPersonality=true
+ProtectControlGroups=true
+ProtectHome=true
+ProtectKernelModules=true
+ProtectKernelTunables=true
# ProtectSystem=full will disallow write access to /etc and /usr, possibly
# not being able to write slaved-zones into sqlite3 or zonefiles.
ProtectSystem=full
-ProtectHome=true
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
+RestrictNamespaces=true
+RestrictRealtime=true
[Install]
WantedBy=multi-user.target
After=network-online.target
[Service]
-Type=notify
ExecStart=@sbindir@/pdns_recursor --daemon=no --write-pid=no --disable-syslog --log-timestamp=no
+Type=notify
Restart=on-failure
StartLimitInterval=0
-PrivateTmp=true
-PrivateDevices=true
+
+# Tuning
+LimitNOFILE=16384
+
+# Sandboxing
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_CHOWN CAP_SYS_CHROOT
+LockPersonality=true
NoNewPrivileges=true
-ProtectSystem=full
+PrivateDevices=true
+PrivateTmp=true
+ProtectControlGroups=true
ProtectHome=true
+ProtectKernelModules=true
+ProtectKernelTunables=true
+ProtectSystem=full
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
-LimitNOFILE=4200
+RestrictNamespaces=true
+RestrictRealtime=true
[Install]
WantedBy=multi-user.target