Beschränken Sie die Berechtigungen eines systemd-Dienstes auf ein Minimum

408
steiny

Ich schreibe eine systemd-Servicedatei für fai-monitor (8) . Dieser Dämon überwacht einen einzelnen Port, empfängt TCP-Verbindungen und schreibt eine einzige Protokolldatei mit interessanten Informationen.

Um die Angriffsfläche des Systems zu verringern, sollte der Dienst mit den geringstmöglichen Privilegien ausgeführt werden. Nach den Ratschlägen zu Optionen zum Härten von Systemd-Serviceeinheiten kam ich zu dieser Servicedatei:

[Unit] Description=FAI Monitor Daemon  [Service] Type=simple ExecStart=/usr/sbin/fai-monitor -l /run/fai-monitor/fai-monitor.log DynamicUser=true RuntimeDirectory=fai-monitor RuntimeDirectoryMode=755  MemoryDenyWriteExecute=true NoNewPrivileges=true PrivateTmp=true PrivateUsers=true ProtectHome=true  ProtectSystem=strict PrivateDevices=true ProtectKernelTunables=true ProtectControlGroups=true  RestrictAddressFamilies=AF_INET AF_INET6 RestrictRealtime=true  TasksMax=16 MemoryHigh=10M  SystemCallFilter=~@mount @debug @privileged 

Während dies ziemlich restriktiv zu sein scheint, ist die Servicedatei relativ ausführlich.

Gibt es andere Möglichkeiten, einen Dienst auf die geringstmöglichen Berechtigungen zu beschränken? RestrictEverything=trueInteressant wäre vor allem etwas mit nachfolgendem Whitelisting der erlaubten Ressourcen.

1

0 Antworten auf die Frage