Files
Fail2banMqttActionBanishment/generic/emitter/fail2ban-emitter-master-client.service
T
2026-07-20 11:12:37 +02:00

33 lines
1.2 KiB
Desktop File

[Unit]
Description=Fail2banActionBanishment - émetteur : relais vers le master (master_client, SYNC_BAN)
After=network.target mosquitto.service
Requires=mosquitto.service
[Service]
Type=simple
User=__EMITTER_USER__
Group=__EMITTER_GROUP__
WorkingDirectory=__EMITTER_DIR__
EnvironmentFile=__ENV_FILE__
Environment=DJANGO_SETTINGS_MODULE=config.settings.production
Environment=PYTHONUNBUFFERED=1
ExecStart=__EMITTER_DIR__/.venv/bin/python manage.py master_client
Restart=on-failure
RestartSec=5
# Pas de NoNewPrivileges=true ici, contrairement aux autres services de
# l'émetteur : ce process a structurellement besoin d'escalader via sudo
# (execute_sync_ban -> `sudo fail2ban-client set master-sync banip <ip>`,
# cf. master_client.py). NoNewPrivileges bloque tout mécanisme de gain de
# privilège au niveau execve, y compris le setuid de sudo lui-même — sudo
# échoue alors avec "the 'no new privileges' flag is set", quels que soient
# les droits sudoers. Repéré seulement en conditions réelles (le premier
# vrai SYNC_BAN reçu d'un autre noeud) : les tests précédents mockaient
# subprocess.run, donc n'exerçaient jamais cette interaction avec systemd.
ProtectSystem=strict
PrivateTmp=true
ReadWritePaths=__EMITTER_DIR__
[Install]
WantedBy=multi-user.target