Ce dossier complètes le README.md et REST_API.md de l'application avec des guides d'intégration côté serveurs producteurs de rapports et serveurs consommateurs des blocklists publiées.
Les exemples sont conçus pour respecter le contrat actuellement implémenté :
- les observations remontent via
POST /api/v1/reportsavec une clé Bearer disposant dereports:create; - un rapport est historique ; la politique serveur crée par défaut un blocage automatique de 12 h, sans publier immédiatement les fichiers ;
- les listes Phase 19 sont récupérées via les routes publiques
/blocklists/{slug}.txt,/blocklists/{slug}/ipv4.txtet/blocklists/{slug}/ipv6.txt; - il n'existe actuellement aucune route
/api/v1/blocklistou/api/v1/blocklistspour piloter les blocages ; - l'agent de synchronisation décrit ici est donc un client externe qui consomme les exports HTTP déjà publiés.
Guides
01_REPORTING_API_FAIL2BAN.md— architecture d'envoi de rapports depuis Fail2ban.02_FAIL2BAN_SERVICES.md— exemples SSH, Apache/Nginx, SIP/Asterisk, Postfix/Exim et Dovecot.03_BLOCKLIST_SYNC_SERVICE.md— création d'un service de synchronisation Phase 19 avec ETag, validation et last-known-good.04_FIREWALL_NFTABLES.md— intégration nftables.05_FIREWALL_IPTABLES_UFW_SHOREWALL.md— iptables/ipset, UFW et Shorewall.06_WINDOWS_FIREWALL.md— Windows Server / Windows Defender Firewall.07_SECURITY_OPERATIONS.md— sécurité, reprise, tests, diagnostic et limites.
Fichiers prêts à adapter
reporter/blocklist-report.py: encode et envoie un rapport JSON à l'API.reporter/config.json.example: configuration du reporter.fail2ban/action.d/blocklist-report.conf: action Fail2ban auxiliaire.fail2ban/jail.d/blocklist-report.local.example: exemples de jails.sync/blocklist-sync.py: récupère les publications Phase 19 et met à jour nftables ou ipset.sync/config-nftables.json.exampleetsync/config-ipset.json.example.systemd/blocklist-sync.serviceetsystemd/blocklist-sync.timer.windows/Sync-Blocklist.ps1: synchronisation Windows Firewall.
Principe d'architecture
logs SSH / HTTP / SIP / SMTP / IMAP
│
▼
Fail2ban
┌────────┴────────┐
│ │
▼ ▼
banaction locale blocklist-report.py
iptables/nft/etc. │
▼
POST /api/v1/reports
│
▼
IP Blocklist Manager
│
génération / publication
│
▼
/blocklists/{slug}/...
│
┌───────────┴──────────┐
▼ ▼
blocklist-sync.py Sync-Blocklist.ps1
│ │
▼ ▼
nftables/ipset/UFW Windows Firewall
/Shorewall
Le reporter et le synchroniseur ont des rôles différents : le premier alimente l'observation, le second applique des publications déjà décidées et générées.