Files
provisioning-server/provisioning-server.service
adminandClaude Opus 5.5 16d2de6c3a ISO-Bau ohne sudo, Unit wieder voll gehaertet
build_customer_iso.sh braucht seit der Squashfs-Schicht kein root mehr:
sudo-Aufruf und sudoers-Datei entfallen, NoNewPrivileges,
CapabilityBoundingSet/AmbientCapabilities und RestrictSUIDSGID wieder an
(Ausnahmen aus ADR-0027 zurueckgenommen).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 16:19:43 +02:00

53 lines
1.6 KiB
Desktop File

[Unit]
Description=Provisioning Activation Server
After=network.target
[Service]
Type=simple
User=provisioning-server
Group=provisioning-server
WorkingDirectory=/opt/provisioning-server
EnvironmentFile=/etc/tuxflotte/provisioning-server.env
ExecStart=/opt/provisioning-server/.venv/bin/uvicorn app:app --host 0.0.0.0 --port 8080
Restart=always
RestartSec=3
# Gleiche Haertung wie kundenplattform.service (ADR-0011). Bis 03.10.2026
# fehlten hier NoNewPrivileges, CapabilityBoundingSet/AmbientCapabilities und
# RestrictSUIDSGID, weil der Kunden-ISO-Bau per scoped sudo zu root
# eskalierte (ADR-0027). Seit build_customer_iso.sh die Kundendaten als
# eigene Squashfs-Schicht anlegt, braucht er keinerlei Privilegien mehr.
NoNewPrivileges=true
CapabilityBoundingSet=
AmbientCapabilities=
RestrictSUIDSGID=yes
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/provisioning-server
# Arbeitsverzeichnis von build_customer_iso.sh (Kindprozess, erbt diese
# Abschottung) auf anodes Datenplatte (03.10.2026, Befund B5) - '-': Unit
# startet auch auf Systemen ohne dieses Verzeichnis.
ReadWritePaths=-/srv/tuxflotte/build-tmp
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
RestrictNamespaces=yes
LockPersonality=yes
MemoryDenyWriteExecute=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
ProtectKernelLogs=yes
ProtectControlGroups=yes
ProtectClock=yes
ProtectHostname=yes
ProtectProc=invisible
ProcSubset=pid
PrivateDevices=yes
RemoveIPC=yes
RestrictRealtime=yes
SystemCallFilter=@system-service
SystemCallArchitectures=native
UMask=0077
[Install]
WantedBy=multi-user.target