DoS-Demo mit Suricata auf OPNsense: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 10: Zeile 10:
 
* In OPNsense: System → Settings → Networking → Hardware offloading deaktivieren (Checksum, TSO, LRO)
 
* In OPNsense: System → Settings → Networking → Hardware offloading deaktivieren (Checksum, TSO, LRO)
  
== Ausgangstest ohne IPS ==
+
== Test ohne IPS ==
 
* Erreichbarkeit prüfen:
 
* Erreichbarkeit prüfen:
 
<pre>
 
<pre>
Zeile 16: Zeile 16:
 
</pre>
 
</pre>
  
* Angriff starten (nur kurz laufen lassen!):
+
* Angriff starten (kurz laufen lassen):
 
<pre>
 
<pre>
 
sudo hping3 -S --flood -V -p 80 web.it214.xinmen.de
 
sudo hping3 -S --flood -V -p 80 web.it214.xinmen.de
Zeile 23: Zeile 23:
 
* Erwartung: Webserver nicht mehr erreichbar
 
* Erwartung: Webserver nicht mehr erreichbar
  
== Suricata als IPS aktivieren ==
+
== Suricata IPS aktivieren ==
* Menü: Services → Intrusion Detection → Administration
+
* Services → Intrusion Detection → Administration
 
** Enable IDS → Haken setzen
 
** Enable IDS → Haken setzen
 
** IPS mode → Haken setzen
 
** IPS mode → Haken setzen
** Interfaces → WAN auswählen
+
** Interface: WAN auswählen
 
** Save → Start
 
** Save → Start
  
* Menü: Services → Intrusion Detection → Download
+
* Services → Intrusion Detection → Download
** Rulesets auswählen:
+
** Folgende Rulesets aktivieren:
*** ET open Emerging Threats Open Rules → aktivieren
+
*** ET open/emerging-dos
*** ET open DoS rules → aktivieren
+
*** ET open/emerging-scan (optional, für Portscan-Demo)
*** ET open Scan rules → optional, für Portscan-Demo
+
*** ET open/emerging-bad_traffic (falls vorhanden, optional)
*** ET open Bad Traffic rules → optional
+
** Danach: Download & Update Rules ausführen
** Download & Update Rules ausführen
 
  
* Menü: Services → Intrusion Detection → Policies
+
* Services → Intrusion Detection → Policies
** Add new policy
+
** Neue Policy hinzufügen
 
*** Action: drop
 
*** Action: drop
*** Categories auswählen: dos.rules, scan.rules, bad-traffic.rules (nur wenn aktiviert)
+
*** Categories auswählen: emerging-dos, emerging-scan (falls aktiviert)
 
*** Enabled anhaken
 
*** Enabled anhaken
 
** Save und Apply
 
** Save und Apply
** Policy an oberste Position schieben
+
** Policy an oberste Position verschieben
  
== Test mit aktivem IPS ==
+
== Test mit IPS ==
* Normalen HTTP-Request prüfen:
+
* Normale Verbindung prüfen:
 
<pre>
 
<pre>
 
curl -I http://web.it214.xinmen.de/
 
curl -I http://web.it214.xinmen.de/
Zeile 58: Zeile 57:
  
 
* Erwartung: Suricata verwirft Flood-Pakete, Webserver bleibt erreichbar
 
* Erwartung: Suricata verwirft Flood-Pakete, Webserver bleibt erreichbar
* Kontrolle: Services → Intrusion Detection → Alerts → Einträge mit "drop" sichtbar
+
* Kontrolle: Services → Intrusion Detection → Alerts → Einträge mit "drop"
  
 
== Anpassungen ==
 
== Anpassungen ==
* Falls keine Drops sichtbar: prüfen ob IPS mode aktiv, Regeln aktuell, Policy an oberster Stelle
+
* Falls keine Drops sichtbar: prüfen ob Policy auf "drop" steht und ganz oben ist
* Für nachvollziehbare Demo gedrosselten Flood verwenden:
+
* Für nachvollziehbare Demo Angriff drosseln:
 
<pre>
 
<pre>
 
sudo hping3 -S -i u500 -V -p 80 web.it214.xinmen.de
 
sudo hping3 -S -i u500 -V -p 80 web.it214.xinmen.de
Zeile 68: Zeile 67:
  
 
== Fehlerbehebung ==
 
== Fehlerbehebung ==
* Keine Drops: IPS mode prüfen (Administration), Regeln unter Download aktualisieren
+
* Keine Drops: Administration prüfen (IPS mode aktiv), Rules unter Download aktuell
* OPNsense überlastet: Flood nur kurz laufen lassen, vCPU/RAM erhöhen
+
* OPNsense überlastet: Flood nur kurz fahren, vCPU/RAM erhöhen
* Legitime Verbindungen blockiert: im Tab Alerts die Rule-ID (SID) prüfen und gezielt deaktivieren oder in Policy auf alert setzen
+
* Legitime Verbindungen blockiert: im Tab Alerts die SID prüfen und gezielt deaktivieren oder Policy auf alert setzen

Version vom 27. August 2025, 17:40 Uhr

DoS-Demo mit Suricata auf OPNsense

Topologie

Angreifer → OPNsense (WAN mit Suricata IPS) → Webserver

Voraussetzungen

  • OPNsense mit WAN/LAN, NAT und funktionierendem Routing
  • Webserver hinter OPNsense (Port 80 offen)
  • Angreifer-Host mit hping3
  • In OPNsense: System → Settings → Networking → Hardware offloading deaktivieren (Checksum, TSO, LRO)

Test ohne IPS

  • Erreichbarkeit prüfen:
curl -I http://web.it214.xinmen.de/
  • Angriff starten (kurz laufen lassen):
sudo hping3 -S --flood -V -p 80 web.it214.xinmen.de
  • Erwartung: Webserver nicht mehr erreichbar

Suricata IPS aktivieren

  • Services → Intrusion Detection → Administration
    • Enable IDS → Haken setzen
    • IPS mode → Haken setzen
    • Interface: WAN auswählen
    • Save → Start
  • Services → Intrusion Detection → Download
    • Folgende Rulesets aktivieren:
      • ET open/emerging-dos
      • ET open/emerging-scan (optional, für Portscan-Demo)
      • ET open/emerging-bad_traffic (falls vorhanden, optional)
    • Danach: Download & Update Rules ausführen
  • Services → Intrusion Detection → Policies
    • Neue Policy hinzufügen
      • Action: drop
      • Categories auswählen: emerging-dos, emerging-scan (falls aktiviert)
      • Enabled anhaken
    • Save und Apply
    • Policy an oberste Position verschieben

Test mit IPS

  • Normale Verbindung prüfen:
curl -I http://web.it214.xinmen.de/
  • Angriff wiederholen:
sudo hping3 -S --flood -V -p 80 web.it214.xinmen.de
  • Erwartung: Suricata verwirft Flood-Pakete, Webserver bleibt erreichbar
  • Kontrolle: Services → Intrusion Detection → Alerts → Einträge mit "drop"

Anpassungen

  • Falls keine Drops sichtbar: prüfen ob Policy auf "drop" steht und ganz oben ist
  • Für nachvollziehbare Demo Angriff drosseln:
sudo hping3 -S -i u500 -V -p 80 web.it214.xinmen.de

Fehlerbehebung

  • Keine Drops: Administration prüfen (IPS mode aktiv), Rules unter Download aktuell
  • OPNsense überlastet: Flood nur kurz fahren, vCPU/RAM erhöhen
  • Legitime Verbindungen blockiert: im Tab Alerts die SID prüfen und gezielt deaktivieren oder Policy auf alert setzen