AI-Bot-Blocker
Übersicht
Der AI-Bot-Blocker schützt über GateControl exponierte Services vor unerwünschten AI-Crawlern. Er erkennt und blockiert Zugriffe von bekannten AI-Firmen (OpenAI, Google, AWS, DeepSeek, GitHub Copilot, Microsoft Azure) anhand ihrer IP-Adressbereiche — direkt auf Reverse-Proxy-Ebene, bevor der Request das Backend erreicht.
Funktionsweise
Der Bot-Blocker basiert auf dem caddy-defender Plugin für Caddy. Er wird als erster Handler in die Caddy-Route-Chain eingefügt — noch vor Request-Tracing, Rate-Limiting, Authentifizierung und Compression. Dadurch werden Bots sofort abgewiesen, ohne andere Handler zu belasten.
Erkannte IP-Bereiche
| Anbieter | Beschreibung |
|---|---|
| OpenAI | GPTBot, ChatGPT-User und andere OpenAI-Dienste |
| AWS | Amazon Web Services (häufig von AI-Crawlern genutzt) |
| Google Cloud | Google-Extended, Gemini und andere Google-AI-Dienste |
| GitHub Copilot | GitHub Copilot Anfragen |
| DeepSeek | DeepSeek AI-Crawler |
| Azure | Microsoft Azure Public Cloud |
Konfiguration
Bot-Blocker aktivieren
- Route öffnen (Edit-Modal → Security-Tab)
- AI Bot Blocker Toggle aktivieren
- Modus wählen
- Route speichern
Verfügbare Modi
| Modus | Verhalten | Anwendungsfall |
|---|---|---|
| Block (403) | Gibt HTTP 403 Forbidden zurück | Standard — klar und eindeutig |
| Tarpit | Antwortet extrem langsam (tröpfchenweise) | Verschwendet Crawler-Ressourcen |
| Drop | Trennt die TCP-Verbindung sofort | Aggressivste Option, kein Response |
| Garbage | Sendet zufällige Daten als Response | Vergiftet Training-Daten des Crawlers |
| Redirect (308) | Leitet zu einer anderen URL weiter | Z.B. auf eine "Zugang verweigert"-Seite |
| Custom | Eigene Nachricht mit wählbarem Status-Code | Z.B. 451 "Unavailable For Legal Reasons" |
Modusspezifische Einstellungen
Redirect-Modus
Redirect URL (Pflichtfeld): Die Ziel-URL für die Weiterleitung (muss mit http:// oder https:// beginnen)
Custom-Modus
- Antwortnachricht: Der Text der an den Bot gesendet wird (max. 500 Zeichen)
- Statuscode: HTTP-Statuscode der Antwort (100-599, Standard: 403)
Bot-Counter
Ein Hintergrund-Task zählt alle 60 Sekunden die geblockten Requests pro Route. In der Routen-Liste wird ein oranges Badge angezeigt (z.B. 🤖 42).
Hinweis: Der Counter zählt alle HTTP 403-Responses auf der Route, nicht nur die vom Bot-Blocker.
Handler-Position
1. defender (Bot-Blocker) ← blockiert Bots sofort
2. trace (Request-Tracing)
3. headers (Custom Headers)
4. rate_limit
5. mirror (Request Mirroring)
6. encode (Komprimierung)
7. reverse_proxy (Backend)
Einschränkungen
- Nur HTTP-Routen: L4/TCP-Routen unterstützen kein Bot-Blocking
- IP-basiert: Blockierung basiert auf IP-Adressen, nicht auf User-Agent-Strings
- Keine benutzerdefinierten IP-Ranges: Es werden die vom Plugin gepflegten Standard-Ranges verwendet
- Keine Whitelist: Einzelne IPs können nicht vom Blocking ausgenommen werden