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 Rules

Aktionen

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 Rules

Hinweis: 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 blockiert

3. 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 absolvieren

4. 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 umgehen

  • Wenn false: WAF wird weiterhin angewendet

challenge-Flag:

  • Wenn true: Challenge für diese Anfrage umgehen, einschließlich Under Attack Mode

  • Wenn 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 weiterhin
Bedingung: IP in payment_webhook_ips
Aktion: Skip
Flags: challenge=true
→ Zahlungs-Webhooks umgehen Under Attack Mode, WAF gilt weiterhin
Bedingung: IP in trusted_api_clients
Aktion: Skip
Flags: waf=true, challenge=true
→ API-Clients umgehen sowohl WAF als auch Under Attack Mode

Unterschied 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 /admin

Der 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-Modus

2. 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 Challenge

Warum 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ändig

Anwendungsfä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 Rules

Beispiel 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 blockiert

Beispiel 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 weiterhin

IP-Listen verwenden

Anstatt IPs in jeder Regel fest zu codieren, erstelle wiederverwendbare IP-Listen in deinen Kontoeinstellungen:

  1. Erstelle eine IP-Liste namens "office_ips" mit deinen Office-IP-Bereichen

  2. 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-Regel

Last updated

Was this helpful?