Systemd Verbieten von Forking, Einschränkung der Dateierstellung für Dienste

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
  • Ressourcenlimits können verwendet werden, um bestimmte Sicherheitslimits auf ausgeführte Dienste anzuwenden.
  • In erster Linie sind Ressourcengrenzen für die Ressourcenkontrolle (wie der Name schon sagt ...) und nicht so sehr für die Zugriffskontrolle nützlich.
  • Zwei davon können jedoch nützlich sein, um bestimmte Betriebssystemfunktionen zu deaktivieren:
  • RLIMIT_NPROC und RLIMIT_FSIZE können verwendet werden, um das Forking zu deaktivieren und das Schreiben von Dateien mit einer Größe > 0 zu deaktivieren:
...
[Service]
ExecStart=...
LimitNPROC=1
LimitFSIZE=0
...
  • Beachten Sie, dass dies nur funktioniert, wennb der fragliche Dienst Privilegien aufgibt und unter einer eigenen (Nicht-Root-) Benutzer-ID läuft oder die CAP_SYS_RESOURCE-Fähigkeit aufgibt, zum Beispiel über CapabilityBoundingSet=, wie oben beschrieben.
  • Ohne dies könnte ein Prozess einfach das Ressourcenlimit wieder erhöhen und somit jegliche Wirkung zunichte machen.
  • Vorbehalt: LimitFSIZE= ist ziemlich brutal. Wenn der Dienst versucht, eine Datei mit einer Größe > 0 zu schreiben, wird er sofort mit dem SIGXFSZ beendet, der den Prozess beendet, wenn er nicht gefangen wird. Außerdem ist das Erstellen von Dateien mit der Größe 0 weiterhin erlaubt, auch wenn diese Option verwendet wird.