Site icon bintorosoft.com

systemd Service Sandboxing: ProtectSystem, PrivateTmp, NoNewPrivileges

Turtle with glasses and a surprised look on her face is looking at a laptop on white background.

Systemd bietet weitreichende Möglichkeiten, Dienste innerhalb von Linux-Systemen zu isolieren und abzusichern. Sandboxing-Optionen wie ProtectSystem, PrivateTmp und NoNewPrivileges reduzieren die Angriffsfläche und verhindern, dass kompromittierte Services das System weiter gefährden. In diesem Tutorial lernen Sie, wie diese Optionen eingesetzt werden, um Serverdienste sicher zu betreiben.

Grundlagen der systemd Service Sandboxing

Systemd ermöglicht es, für jeden Dienst individuelle Sicherheitsrichtlinien zu definieren. Dabei werden Prozesse eingeschränkt, Dateisystembereiche geschützt und Privilegien kontrolliert. Wichtige Parameter sind:

ProtectSystem im Detail

Mit ProtectSystem kann ein Dienst auf bestimmte Teile des Dateisystems beschränkt werden:

Beispielkonfiguration

[Service]
ExecStart=/usr/bin/myapp
ProtectSystem=full

Damit kann der Dienst nur noch auf /etc und temporäre Bereiche schreiben. Änderungen an Systembinaries werden verhindert, was die Integrität des Systems erhöht.

PrivateTmp zur Isolation temporärer Dateien

Mit PrivateTmp=yes erhält jeder Dienst ein eigenes, isoliertes /tmp- und /var/tmp-Verzeichnis. Prozesse können so keine temporären Dateien anderer Dienste sehen oder manipulieren.

Beispiel

[Service]
ExecStart=/usr/bin/myapp
PrivateTmp=yes

Dies ist besonders sinnvoll für Webserver oder Dienste, die temporäre Dateien für Session-Daten nutzen. Ein Zugriff auf das System-/tmp wird damit unterbunden.

NoNewPrivileges: Schutz vor Privilege Escalation

Die Option NoNewPrivileges=yes verhindert, dass ein Dienst zusätzliche Rechte erlangt. Selbst wenn ein Angreifer einen Prozess übernimmt, kann kein SUID-Binary oder Kernel-Exploit zusätzliche Privilegien erzeugen.

Beispiel

[Service]
ExecStart=/usr/bin/myapp
NoNewPrivileges=yes

Kombiniert mit anderen Sicherheitsoptionen reduziert dies das Risiko einer Privilege Escalation erheblich.

Weitere Security-Optionen von systemd

Für maximale Absicherung können mehrere Optionen kombiniert werden:

Kombinationsbeispiel

[Service]
ExecStart=/usr/bin/myapp
ProtectSystem=strict
PrivateTmp=yes
NoNewPrivileges=yes
ProtectHome=yes
ReadOnlyPaths=/opt
CapabilityBoundingSet=CAP_NET_BIND_SERVICE

Testing und Troubleshooting

Nach Anpassung der Unit-Dateien ist es wichtig, Dienste zu reloaden und den Status zu prüfen:

sudo systemctl daemon-reexec
sudo systemctl restart myapp
sudo systemctl status myapp

Audit-Logs und journalctl zeigen Verstöße gegen gesetzte Beschränkungen an.

Best Practices für produktive Umgebungen

Fazit

Systemd-Sandboxing mit ProtectSystem, PrivateTmp und NoNewPrivileges bietet einfache, aber effektive Mittel, Dienste zu isolieren und Systeme abzusichern. Durch die Kombination mehrerer Optionen können Administratoren eine solide Baseline für sicheren Serverbetrieb schaffen und gleichzeitig die Wartbarkeit und Automatisierbarkeit erhalten.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version