mirror of
https://github.com/deunix-educ/Fail2banMqttActionBanishment.git
synced 2026-08-24 03:11:58 +02:00
First commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# ACL du broker master — %u est le CN du certificat client (cf.
|
||||
# use_identity_as_username dans mosquitto-master.conf). Chaque noeud ne peut
|
||||
# publier que sous son propre topic de ban, et ne lire que ses propres
|
||||
# commandes plus le canal de diffusion générale.
|
||||
#
|
||||
# Déployé par install.sh (install-master) vers /etc/mosquitto/master-acl.conf
|
||||
|
||||
pattern write fail2ban/%u/ban
|
||||
# heartbeat (Phase 3, supervision) : chaque noeud publie périodiquement
|
||||
# pour prouver qu'il est vivant, indépendamment de toute activité de ban.
|
||||
# ack (Phase 2.b) : accusé de réception publié après exécution réelle d'une
|
||||
# commande reçue du master (ex. SYNC_BAN), succès ou échec.
|
||||
pattern write fail2ban/%u/heartbeat
|
||||
pattern write fail2ban/%u/ack
|
||||
pattern read fail2ban/%u/action
|
||||
|
||||
# Topic fixe (identique pour tous les noeuds) : "topic", pas "pattern" —
|
||||
# "pattern" est réservé aux entrées substituées par client (%u/%c) et
|
||||
# mosquitto avertit (pattern ignoré) si on l'utilise sans placeholder.
|
||||
topic read fail2ban/broadcast/action
|
||||
|
||||
# Identité dédiée à l'ingestion/décision côté master
|
||||
# (banevents.master_listen) : lecture de fail2ban/+/ban (TOUS les noeuds),
|
||||
# et écriture sur le canal de diffusion (pour publier un SYNC_BAN) — deux
|
||||
# droits plus larges que ceux d'un noeud pris individuellement (pattern
|
||||
# ci-dessus, limité à fail2ban/%u/ban). "user <nom>" scope les règles
|
||||
# suivantes à cette seule identité de certificat — généré via
|
||||
# scripts/generate-node-cert.sh master-internal.
|
||||
user master-internal
|
||||
topic read fail2ban/+/ban
|
||||
topic read fail2ban/+/heartbeat
|
||||
topic read fail2ban/+/ack
|
||||
topic write fail2ban/broadcast/action
|
||||
# Roster périodique (Phase 3) : liste des noeuds connus + compteurs
|
||||
# jail/pays globaux, republié localement par chaque noeud (NodeRegistry +
|
||||
# cache Redis, voir banevents/stats.py) — sans ça la sidebar d'un noeud
|
||||
# client n'aurait jamais que ses propres données.
|
||||
topic write fail2ban/broadcast/roster
|
||||
Reference in New Issue
Block a user