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

Lecteur Markdown

bans_sync Documentation › BANS_SYNC_DOCUMENTATION_DE

Bans Sync Documentation De

Funktion: Bans Sync #

Ruft den aggregierten Bans-Feed von devarea ab und befüllt die lokale Tabelle banned_ips. Ermöglicht es BeamReactor-Flotten-Sites, ihre Sicherheits-Bans zu teilen, ohne direkten Zugriff auf die Datenbank von devarea zu haben.

Der entfernte Feed ist verschleiert (Matrix-Codec mit Rotationen, die von einem pro-Site-Cipher abgeleitet sind) — ein Scanner, der über die URL stolpert, sieht nur, was wie ein normaler RSS aussieht.

Installation und Konfiguration

Per FTP: Das Verzeichnis bans_sync/ in /plugins/ ablegen.

Per Package Manager: bans_sync aus der Liste der verfügbaren Plugins auswählen.

Voraussetzung devarea-seitig: Ein Eintrag für diese Site in der Tabelle fleet_peers (verwaltet vom Plugin fleet_peers auf devarea), mit einem Cipher, der $cfg[23] dieser Site entspricht.

Pfade:

  • Haupt-Plugin: /plugins/bans_sync/bans_sync.php (Admin-Panel)
  • Konfiguration: /plugins/bans_sync/conf/bans_sync.conf.inc.php
  • Sync-Bibliothek: /plugins/bans_sync/lib/sync.lib.php
  • Cron-Handler: /plugins/bans_sync/handlers/bans_sync.cron.mod.php

Konfigurationsparameter (bans_sync.conf.inc.php):

| Variable | Standardwert | Beschreibung |

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

| $basedatadisplay | 'yes' | Anzeige im Verwaltungs-Interface |

| $basedisplevel | BASE_LEVEL_ADMIN | Mindestlevel für die Anzeige |

| $ftype | 10 | Sicherheitskategorie |

| BANS_SYNC_SERVER | https://devarea.beamreactor.com | Feed-Quelle |

Authentifizierung:

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

Empfohlene geplante Aufgabe (in system_scheduler einfügen):

| Feld | Wert |

|---|---|

| crontime | /30 * |

| task_name | bans_sync_pull |

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

| enabled | 1 |

Verwendung

Synchronisations-Prozess #

1. Token-Berechnunghash('sha256', $cfg[23] . $cfg[1]).

2. Abruf der letzten Synchronisation — aus system_config.bans_sync.last_sync, standardmäßig vor 7 Tagen.

3. HTTP-Anfrage — cURL-Aufruf an den entfernten Feed mit site_id, token, since.

4. DekodierungBansFeedCodec::decode() kehrt die Matrix-Rotationen mit dem lokalen Cipher um und validiert jeden Ban über HMAC. Vom Server injizierte Rausch-Items scheitern an der Validierung und werden verworfen.

5. Deduplizierung — für jeden Ban:

- Existiert der Offender (oder cidr_range für einen CIDR-Ban) bereits: tstamp aktualisieren, wenn der Import neuer ist, sonst überspringen.

- Andernfalls: einfügen.

6. last_sync-Aktualisierung — damit beim nächsten Sync nur das Delta abgerufen wird.

Konsultierter entfernter Endpunkt #

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

Manuelle Auslösung #

Das Admin-Panel bietet eine Schaltfläche „Jetzt synchronisieren", die bans_sync_pull() direkt aufruft. Nützlich zum Testen der Konfiguration oder zum Aufholen nach einem Ausfall.

Hooks und Einstiegspunkte

text
?obj=bans_sync.php                                            — Admin-Panel
plugins/bans_sync/handlers/bans_sync.cron.mod.php             — Cron-Handler (ausgelöst durch cronJob.mod.php)

Abhängigkeiten

  • Beamreactor\Database\SQL
  • Beamreactor\Network\BansFeedCodec — gemeinsamer Codec (server-seitig auf devarea zum Kodieren)
  • PHP-cURL-Erweiterung — erforderlich zum Abrufen des Feeds
  • Tabelle banned_ips — bereits flottenseitig vorhanden (von banna verwendet)
  • Tabelle system_config — zur Speicherung von bans_sync.last_sync
  • Tabelle system_scheduler — für die Cron-Aufgabe
  • $cfg[1] (site_id) und $cfg[23] (mit devarea geteilter Cipher) — Authentifizierung
  • Passender Eintrag in der Tabelle fleet_peers auf devarea
de en fr