Files
ssh-jumphost/ansible/roles/jumphost_app/templates/jumphost-rdp-drives-cleanup.service.j2
2026-09-03 08:01:27 +02:00

37 lines
1.3 KiB
Django/Jinja

[Unit]
Description=Jumphost: beendete RDP-Laufwerksverzeichnisse aufraeumen
Documentation=file://{{ jumphost_home }}/scripts/cleanup_rdp_drives.py
After=jumphost-app.service
[Service]
Type=oneshot
# BEWUSST als root: /var/lib/jumphost/rdp-drives gehoert guacd (0750) und die
# darin von guacd angelegten Sitzungsverzeichnisse haben Modus 0700 guacd:guacd.
# Weder der App-Benutzer "{{ jumphost_app_user }}" noch guacd selbst koennen
# sie zuverlaessig wieder entfernen (guacd kennt das Sitzungsende nicht) --
# ausfuehrliche Begruendung im Kopfkommentar des Skripts.
User=root
Group=root
Environment=JUMPHOST_DATA_DIR={{ jumphost_data_dir }}
ExecStart={{ jumphost_venv }}/bin/python {{ jumphost_home }}/scripts/cleanup_rdp_drives.py
# Hardening: der Dienst braucht ausschliesslich Lesezugriff auf die
# Sitzungsdatenbank und Schreibzugriff auf rdp-drives -- sonst nichts.
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
RestrictNamespaces=true
# Kein Netzwerk noetig (reiner Datei-/SQLite-Zugriff).
PrivateNetwork=true
RestrictAddressFamilies=AF_UNIX
RestrictSUIDSGID=true
LockPersonality=true
ReadWritePaths={{ jumphost_data_dir }}/rdp-drives
ReadOnlyPaths={{ jumphost_data_dir }}
UMask=0077