En vous promenant sur Beamreactor, nous stockons votre IP 48h pour des raisons de sécurité.

Lecteur Markdown

bans_sync Documentation › BANS_SYNC_DOCUMENTATION_FR

Bans Sync Documentation Fr

Fonctionnalité : Bans Sync #

Récupère le flux de bans agrégés depuis devarea et alimente la table locale banned_ips. Permet aux sites de la flotte BeamReactor de partager leurs bans de sécurité sans accès direct à la base de données de devarea.

Le flux distant est obfusqué (codec matriciel à rotations dérivées d'un cipher per-site) — un scanner qui tomberait sur l'URL ne voit qu'un RSS apparemment normal.

Installation et Configuration

Par FTP : Déposer le répertoire bans_sync/ dans /plugins/.

Par package manager : Sélectionner bans_sync dans la liste des plugins disponibles.

Pré-requis côté devarea : Une entrée pour ce site dans la table fleet_peers (gérée par le plugin fleet_peers côté devarea), avec un cipher identique à $cfg[23] de ce site.

Chemins :

  • Plugin principal : /plugins/bans_sync/bans_sync.php (panneau admin)
  • Configuration : /plugins/bans_sync/conf/bans_sync.conf.inc.php
  • Bibliothèque sync : /plugins/bans_sync/lib/sync.lib.php
  • Handler cron : /plugins/bans_sync/handlers/bans_sync.cron.mod.php

Paramètres de configuration (bans_sync.conf.inc.php) :

| Variable | Valeur par défaut | Description |

|---|---|---|

| $basedatadisplay | 'yes' | Affichage dans l'interface de gestion |

| $basedisplevel | BASE_LEVEL_ADMIN | Niveau minimum pour consulter |

| $ftype | 10 | Catégorie Sécurité |

| BANS_SYNC_SERVER | https://devarea.beamreactor.com | Source du flux |

Authentification :

  • $site_id = $cfg[1]
  • $auth_token = hash('sha256', $cfg[23] . $site_id)

Tâche planifiée recommandée (à insérer dans system_scheduler) :

| Champ | Valeur |

|---|---|

| crontime | /30 * |

| task_name | bans_sync_pull |

| task_class | plugins/bans_sync/handlers/bans_sync.cron.mod.php |

| enabled | 1 |

Utilisation

Processus de synchronisation #

1. Calcul du tokenhash('sha256', $cfg[23] . $cfg[1]).

2. Récupération de la dernière synchro — depuis system_config.bans_sync.last_sync, ou par défaut il y a 7 jours.

3. Requête HTTP — appel cURL vers le flux distant avec site_id, token, since.

4. DécodageBansFeedCodec::decode() inverse les rotations matricielles avec le cipher local et valide chaque ban via HMAC. Les items de bruit injectés par le serveur échouent à la validation et sont ignorés.

5. Déduplication — pour chaque ban :

- Si l'offender (ou le cidr_range pour un ban CIDR) existe déjà : refresh du tstamp si l'import est plus récent, sinon skip.

- Sinon : insertion.

6. Mise à jour de last_sync — pour ne récupérer que le delta à la prochaine synchro.

Endpoint distant consulté #

text
BANS_SYNC_SERVER/index.php?obj=bans.log.rss&site_id=X&token=Y&since=Z

Déclenchement manuel #

Le panneau admin propose un bouton « Synchroniser maintenant » qui appelle bans_sync_pull() directement. Utile pour tester la configuration ou rattraper après une coupure.

Hooks et Points d'entrée

text
?obj=bans_sync.php                                            — Panneau admin
plugins/bans_sync/handlers/bans_sync.cron.mod.php             — Handler cron (déclenché par cronJob.mod.php)

Dépendances

  • Beamreactor\Database\SQL
  • Beamreactor\Network\BansFeedCodec — codec partagé (côté devarea pour encoder)
  • Extension PHP cURL — requise pour la récupération du flux
  • Table banned_ips — déjà présente côté flotte (utilisée par banna)
  • Table system_config — pour stocker bans_sync.last_sync
  • Table system_scheduler — pour la tâche cron
  • $cfg[1] (site_id) et $cfg[23] (cipher partagé avec devarea) — authentification
  • Entrée correspondante dans la table fleet_peers côté devarea
de en fr