Access Rules
Access Rules sind deine erste Verteidigungslinie gegen unerwünschten Traffic. Sie bilden die Sicherheitsebene von smoxy, werden vor allen anderen Regeln und vor der Web Application Firewall (WAF) ausgewertet und geben dir präzise Kontrolle darüber, wer auf deine Seite zugreifen kann und wie.
Was sind Access Rules?
Mit Access Rules kannst du den Zugriff auf deine Seite basierend auf Anfrageeigenschaften wie IP-Adressen, geografischem Standort, User Agents, Headern und mehr kontrollieren. Sie sind speziell für Sicherheitsentscheidungen konzipiert und werden vor jeder anderen Verarbeitung ausgeführt.
Wichtige Eigenschaften:
Werden zuerst in der Regelsequenz ausgeführt (vor Rewrite, Page und Conditional Rules)
Laufen vor der WAF-Verarbeitung
Fokus auf Sicherheitsaktionen: Allow, Block, Challenge oder Skip für bestimmte Schutzfunktionen
Werden in Positionsreihenfolge ausgewertet (1, 2, 3...)
Alle passenden Regeln werden angewendet - mehrere Regeln können dieselbe Anfrage beeinflussen
Optionaler Stop-Modus - stoppt die weitere Auswertung bei Bedarf
Wie Access Rules funktionieren
Access Rules werden in aufsteigender Positionsreihenfolge (1 → 2 → 3...) für jede eingehende Anfrage ausgewertet. Wenn die Bedingungen einer Regel zutreffen, wird ihre Aktion angewendet und die Auswertung fährt fort zur nächsten Regel (es sei denn, der Stop-Modus ist aktiviert).
Positionsbasierte Auswertung
Anfrage kommt an
↓
Access Rule (Position 1) → Treffer? → Aktion anwenden → WEITER
↓
Access Rule (Position 2) → Treffer? → Aktion anwenden → WEITER
↓
Access Rule (Position 3) → Treffer + Stop-Modus? → Aktion anwenden → STOP
↓ (kein Treffer oder kein Stop)
Access Rule (Position 4) → Treffer? → Aktion anwenden → WEITER
↓
Weiter zu Rewrite Rules...Wichtig: Alle Access Rules werden ausgewertet, es sei denn, eine passende Regel hat den Stop-Modus aktiviert. Dies ermöglicht dir, mehrschichtige Sicherheitsrichtlinien zu erstellen, bei denen mehrere Regeln auf dieselbe Anfrage angewendet werden können.
Stop-Modus
Die Stop-Modus-Option steuert, ob die Auswertung nach einem Regeltreffer fortgesetzt wird.
Wie der Stop-Modus funktioniert
Wenn der Stop-Modus deaktiviert ist (Standard):
Die Aktion der Regel wird angewendet
Die Auswertung fährt mit der nächsten Access Rule fort
Mehrere Regeln können dieselbe Anfrage beeinflussen
Wenn der Stop-Modus aktiviert ist:
Die Aktion der Regel wird angewendet
Alle nachfolgenden Access Rules werden übersprungen
Die Verarbeitung fährt mit den Rewrite Rules fort
Wann du den Stop-Modus verwenden solltest
Verwende den Stop-Modus, wenn:
Eine Regel endgültig sein soll und keine weiteren Access Rules angewendet werden sollen
Du widersprüchliche Aktionen anderer Regeln verhindern möchtest
Vertrauenswürdiger Traffic alle verbleibenden Sicherheitsprüfungen überspringen soll
Beispiel:
Position 1: WENN (IP in office_range) DANN Allow + Stop-Modus
Position 2: WENN (Country = "XX") DANN Block [wird für Office-IPs nicht ausgewertet]
Position 3: WENN (URI = /admin) DANN Challenge [wird für Office-IPs nicht ausgewertet]
→ Office-IPs erhalten Allow und überspringen alle anderen Access RulesAktionen
Access Rules unterstützen vier Sicherheitsaktionen:
1. Allow
Lässt die Anfrage durch und umgeht dabei alle Sicherheitsschutzmaßnahmen, einschließlich Under Attack Mode und alle zukünftigen Sicherheitsmaßnahmen, die hinzugefügt werden könnten.
Wann verwenden:
Vertrauenswürdiger Traffic, der niemals von einer Sicherheitsfunktion blockiert werden soll
Anfragen, die alle aktuellen und zukünftigen Sicherheitsmaßnahmen umgehen müssen
Interne Tools oder Monitoring-Dienste, die garantierten Zugang benötigen
Office-IPs, die vollen, uneingeschränkten Zugang benötigen
Beispiel:
Bedingung: IP in [203.0.113.0/24] (vertrauenswürdiges internes Netzwerk)
Aktion: Allow
Stop-Modus: Aktiviert
→ Interner Traffic umgeht alle Sicherheit und überspringt verbleibende Access RulesHinweis: Allow umgeht automatisch alle Sicherheitsmaßnahmen, einschließlich aller neuen, die in Zukunft hinzugefügt werden. Dies ist die permissivste Aktion.
2. Block
Blockiert die Anfrage sofort und gibt eine Fehlerantwort zurück.
Wann verwenden:
Bekannte bösartige IPs blockieren
Anfragen aus bestimmten Ländern blockieren
Verdächtige User Agents oder Bots blockieren
Zugang zu sensiblen Bereichen verhindern
Beispiel:
Bedingung: Country = "XX"
Aktion: Block
→ Alle Anfragen aus diesem Land werden blockiert3. Challenge
Stellt eine Proof-of-Work-Challenge, die der Client lösen muss, bevor er fortfahren kann. Dies wird automatisch vom Browser des Clients gehandhabt - der Benutzer muss kein CAPTCHA oder ein visuelles Rätsel lösen.
Wann verwenden:
Schutz gegen automatisierte Bots
Rechenkosten für verdächtigen Traffic hinzufügen, ohne vollständig zu blockieren
Login-Seiten oder Formulare vor Brute-Force-Angriffen schützen
Ungewöhnliche Traffic-Muster herausfordern
Beispiel:
Bedingung: User Agent enthält "bot" ODER "crawler"
Aktion: Challenge
→ Verdächtige Bots müssen eine rechnerische Challenge absolvieren4. Skip
Umgeht bestimmte Sicherheitsfunktionen für vertrauenswürdigen Traffic, während andere Sicherheitsmaßnahmen aktiv bleiben. Diese Aktion hat zwei optionale Flags, die kombiniert werden können.
Skip-Flags
waf-Flag:
Wenn
true: Web Application Firewall für diese Anfrage umgehenWenn
false: WAF wird weiterhin angewendet
challenge-Flag:
Wenn
true: Challenge für diese Anfrage umgehen, einschließlich Under Attack ModeWenn
false: Challenge und Under Attack Mode werden weiterhin angewendet
Wann verwenden:
WAF für Tools umgehen, die False Positives auslösen
Under Attack Mode für vertrauenswürdigen Traffic umgehen, während WAF aktiv bleibt
Feingranulare Kontrolle darüber, welche Sicherheitsfunktionen deaktiviert werden sollen
API-Clients oder Webhooks, die bestimmte Schutzmaßnahmen umgehen müssen
Beispiele:
Bedingung: User Agent = "Monitoring-Tool/1.0"
Aktion: Skip
Flags: waf=true
→ Monitoring-Tool umgeht nur WAF, Challenge/Under Attack gilt weiterhinBedingung: IP in payment_webhook_ips
Aktion: Skip
Flags: challenge=true
→ Zahlungs-Webhooks umgehen Under Attack Mode, WAF gilt weiterhinBedingung: IP in trusted_api_clients
Aktion: Skip
Flags: waf=true, challenge=true
→ API-Clients umgehen sowohl WAF als auch Under Attack ModeUnterschied zu Allow: Skip ermöglicht dir zu wählen, welche spezifischen Sicherheitsfunktionen umgangen werden sollen. Allow umgeht alles automatisch, einschließlich aller zukünftigen Sicherheitsfunktionen. Verwende Skip, wenn du granulare Kontrolle benötigst, verwende Allow, wenn du eine vollständige Umgehung benötigst.
Bedingungen & Ausdrücke
Access Rules verwenden einen umfangreichen Bedingungs-Builder, mit dem du Anfragen basierend auf verschiedenen Eigenschaften abgleichen kannst, darunter:
IP-Adressen und IP-Bereiche
Geografischer Standort (Land, Stadt, EU-Status)
HTTP-Header (User Agent, Referer, benutzerdefinierte Header)
Anfrageeigenschaften (URI, Methode, Host)
Cookies und Query-Parameter
Du kannst mehrere Bedingungen mit AND/OR-Logik kombinieren, um ausgefeilte Abgleichsregeln zu erstellen:
(IP in office_range ODER IP in partner_ips) UND URI beginnt mit /adminDer Bedingungs-Builder ist dasselbe System, das von Conditional Rules verwendet wird, und bietet dir leistungsstarke und flexible Abgleichsmöglichkeiten für deine Sicherheitsrichtlinien.
Best-Practice-Workflow
Der empfohlene Ansatz für Access Rules ist:
1. Definiere ALLOW-Regeln zuerst (Positionen 1-3)
Beginne damit, vollständig vertrauenswürdigen Traffic auf die Whitelist zu setzen, der alle Sicherheit umgehen soll, einschließlich zukünftiger Funktionen. Verwende den Stop-Modus, um weitere Auswertung zu verhindern.
Position 1: WENN (IP in office_range) DANN Allow + Stop-Modus
Position 2: WENN (IP in trusted_partners) DANN Allow + Stop-Modus
Position 3: WENN (User Agent = "internal-api-client") DANN Allow + Stop-Modus2. Definiere SKIP-Regeln für teilweise Umgehung (Positionen 4-6)
Füge als Nächstes Regeln für Traffic hinzu, der bestimmte Sicherheitsfunktionen umgehen soll, aber weiterhin anderen unterliegt.
Position 4: WENN (IP in monitoring_tools) DANN Skip (waf=true)
Position 5: WENN (User Agent = "payment-webhook") DANN Skip (challenge=true)
Position 6: WENN (IP in api_clients) DANN Skip (waf=true, challenge=true)3. Definiere BLOCK/CHALLENGE-Regeln zuletzt (Positionen 7+)
Nach dem Whitelisting von vertrauenswürdigem Traffic füge deine restriktiven Regeln hinzu. Diese haben höhere Positionsnummern.
Position 7: WENN (Country in ["XX", "YY"]) DANN Block
Position 8: WENN (User Agent enthält "malicious-bot") DANN Block
Position 9: WENN (URI beginnt mit "/admin") DANN ChallengeWarum der Stop-Modus wichtig ist
Ohne Stop-Modus werden alle Regeln ausgewertet. Mit Stop-Modus bei deinen Allow-Regeln überspringt vertrauenswürdiger Traffic die verbleibenden Sicherheitsprüfungen:
❌ Ohne Stop-Modus:
Position 1: Allow IP = office (kein Stop)
Position 2: Challenge URI = /admin
→ Office beim Zugriff auf /admin wird trotzdem gechallengt!✅ Mit Stop-Modus:
Position 1: Allow IP = office + Stop-Modus
Position 2: Challenge URI = /admin
→ Office überspringt die Challenge-Regel vollständigAnwendungsfälle & Beispiele
Beispiel 1: Vollzugriff für Office-IPs
Szenario: Dein Team benötigt vollen Zugang ohne jegliche Sicherheitsprüfungen, einschließlich während des Under Attack Mode.
Position: 1
Bedingung: IP in [203.0.113.0/24, 198.51.100.50]
Aktion: Allow
Stop-Modus: Aktiviert
Ergebnis: Office-Traffic umgeht ALLE Sicherheit und überspringt verbleibende Access RulesBeispiel 2: Bösartige Länder mit Ausnahmen blockieren
Szenario: Traffic aus Ländern mit hoher Bot-Aktivität blockieren, außer deine legitimen Benutzer.
Position: 1
Bedingung: IP = "203.0.113.45" (dein VPN-Exit)
Aktion: Allow
Stop-Modus: Aktiviert
Position: 2
Bedingung: Country in ["XX", "YY", "ZZ"]
Aktion: Block
Ergebnis: Dein VPN wird erlaubt und stoppt die Auswertung, andere aus diesen Ländern werden blockiertBeispiel 3: Under Attack Mode für Webhooks umgehen
Szenario: Die Webhooks deines Zahlungsanbieters müssen deine Seite auch während des Under Attack Mode erreichen können, sollten aber trotzdem von der WAF geprüft werden.
Position: 1
Bedingung: IP in payment_provider_ips
Aktion: Skip
Flags: challenge=true
Stop-Modus: Aktiviert
Ergebnis: Zahlungs-Webhooks umgehen Under Attack Mode, aber WAF gilt weiterhinIP-Listen verwenden
Anstatt IPs in jeder Regel fest zu codieren, erstelle wiederverwendbare IP-Listen in deinen Kontoeinstellungen:
Erstelle eine IP-Liste namens "office_ips" mit deinen Office-IP-Bereichen
Referenziere sie in deinen Access-Rule-Bedingungen
Vorteil: Aktualisiere die IP-Liste einmal, und alle Regeln, die sie verwenden, werden automatisch auf allen deinen Seiten aktualisiert.
Eindeutigkeit
Jede Seite kann nur eine Access Rule pro eindeutigem Ausdruck haben. Wenn du versuchst, ein Duplikat zu erstellen, siehst du: "Die Regel für diesen Ausdruck existiert bereits."
Dies verhindert widersprüchliche Regeln und hält deine Konfiguration sauber.
Häufige Fehler
❌ Stop-Modus bei Allow-Regeln vergessen
Position 1: Allow IP = office (kein Stop)
Position 2: Block Country = "US"
→ Office in US wird erlaubt, aber dann auch blockiert!✅ Stop-Modus für vertrauenswürdigen Traffic aktivieren
Position 1: Allow IP = office + Stop-Modus
Position 2: Block Country = "US"
→ Office wird erlaubt und überspringt alle anderen Regeln❌ Allow verwenden, wenn Skip ausreicht
Aktion: Allow
→ Umgeht ALLE Sicherheit, einschließlich zukünftiger Funktionen✅ Skip für granulare Kontrolle verwenden
Aktion: Skip (waf=true)
→ Umgeht nur WAF, andere Schutzmaßnahmen bleiben aktiv❌ Challenge-Flag während Under Attack Mode vergessen
Aktion: Skip (waf=true)
→ Under Attack Mode challengt die Anfrage trotzdem!✅ Challenge-Flag bei Bedarf hinzufügen
Aktion: Skip (waf=true, challenge=true)
→ Umgeht sowohl WAF als auch Under Attack Mode❌ Zu breite Bedingungen
Bedingung: URI enthält "admin"
→ Betrifft /administrator, /admin, /admin-panel, /user-admin-settings✅ Spezifische Bedingungen
Bedingung: URI beginnt mit "/admin/"
→ Betrifft nur den tatsächlichen Admin-Bereich❌ Widersprüchliche Aktionen ohne Stop-Modus
Position 1: Allow IP = partner (kein Stop)
Position 2: Block URI = /internal
→ Partner beim Zugriff auf /internal wird erlaubt, dann blockiert!✅ Stop-Modus verwenden, um Konflikte zu vermeiden
Position 1: Allow IP = partner + Stop-Modus
Position 2: Block URI = /internal
→ Partner überspringt die Block-RegelLast updated
Was this helpful?