Press enter to see results or esc to cancel.

Suricata auf OPNsense Firewall Installieren

In letztem Artikel habe ich OPNsense als Bridge Firewall eingerichtet.(“OPNsense Bridge Firewall(Stealth) – 🛡Unsichtbarer Schutz“). Bevor Ihr diesen Artikel durchlest, müsst Sie zuerst auf vorherigen Artikel einen Blick werfen, sonst kommt Ihr nicht ganz daraus. In diesem Artikel installiere ich Suricata auf OPNsense Firewall, damit das Netzwerk voll sicher ist.

🐿Was ist Suricata IDS&IPS

Suricata ist eine ausgereifte, schnelle und robuste Open Source-Engine zur Erkennung von Netzwerkbedrohungen.

Suricata IDS&IPS Logo
Suricata IDS&IPS Logo

🔔Intrusion Detection System

Intrusion Detection System (IDS) ist ein System, das den Netzwerkverkehr auf verdächtige Aktivitäten überwacht und Warnungen ausgibt, wenn eine solche Aktivität entdeckt wird.

🚫Intrusion Prevention System

Intrusion Prevention System (IPS) ist eine Netzwerksicherheits- / Bedrohungsverhütungs-Technologie, die Netzwerkverkehrsflüsse untersucht, um Schwachstellenausbrüche zu erkennen und zu verhindern.

📡Gesamtes Netzwerk in VMware einbauen

In erstem Artikel konnte ich die Szenario mit Hardwares/Komponenten sowie PCEngine APU, Switches realisieren. Aber diesmal bin ich zu Hause und ich habe nur ein Computer :). Darum muss ich es mit Virtuellen Maschinen realisieren. Unten habe ich gezeichnet, welches physische Netzwerk wie ich im VMware Netzwerk definiert habe. Weil ich zu Hause bin, sind die IP-Adresse auch nicht gleich. Ich liste unten die neue IP-Subnetzen:

WAN (Vmnet0 – Bridge) -> 192.168.0.0/24

DMZ (Vmnet2) -> 192.168.0.0/24

LAN (Vmnet1) -> 192.168.1.0/24

VMware-Network-Diagramm-for-OPNsense
VMware Network-Diagramm for OPNsense Bridge Firewall

🔒VMware Custom Netzwerk

Im Virtual Network Editor habe ich die Netzwerkkarte “vmnet1 und vmnet2” als Custom erstellt. Die Unterschied zwischen Custom und Host-Only Netzwerk ist, dass im Host-Only Netzwerk es ein Virtuelles Switch gibt, mit dem alle Virtuellen Maschinen zueinander verbunden sind. Aus Sicherheitsgründen will ich ja das nicht. Ihr könnt mit folgendem Artikel mehr über VMware Netzwerktypen lernen.
VMware-custom-network
VMware Custom Network

Ihr müsst zuerst alle drei Netzwerkkarte auf OPNsense Firewall Virtuelle Maschine verbinden. Siehe unten Bild).

Ich habe drei Virtuelle Maschine erstellt.

  • Firewall OPNsense -> Vmnet0 (Bridge)
  • Ubuntu -> VMnet1 (Admin PC)
  • Kali Linux -> VMnet2 (Client. Weil ich auf mein Laptop Windows installiert habe, kann ich nicht bequem Angriff Szenario realisieren, darum diesmal werde ich von DMZ zu WAN attackieren)
  • Windows -> Physisches Laptop (Also in Bridged Netzwerk)
vmware-opnsense-firewall-netzwerkkarte
VMware OPNsense Firewall Netzwerkkarte

⚙️Suricata Installation auf OPNsense

WAN IP-Adresse Aktivieren

Zuerst müssen wir die IP-Adresse für WAN Netzwerkkarte aktivieren, damit wir mit aussen Welt kontaktieren können und die nötige Pakete installieren können. Ich aktiviere DHCP für WAN, damit ich von DHCP Server automatisch eine IP-Adresse bekomme. 

In OPNsense unter System > Firmware > Packages ist Suricata schon vorhanden. Sie müssen es nur installieren.

opnsense-suricata-package
OPNsense Suricata Package Install

📥Suricata Erweiterungen Installieren

Jetzt müssen wir unter Services > Intrusion Detection > Download alle Packages herunterladen. Sie benötigen nicht so viel Speicherplatz, darum empfehle ich alles zu installieren. Wenn Ihr aber nicht alles herunterladen wollt, müsst Ihr in meinem Fall alle “ET – Emerging Threats” herunterladen und alles als “Enable” markieren.
suricata-download-packages
Install Packages for Suricata Emerging Threat

Nachdem Ihr die Erweiterungen herunterladen und aktivieren, könnt Ihr die IP-Adresse von WAN wieder ausschalten. 

📈Logserver einrichten

Wenn Sie die Protokolle von Suricata auf Administrator Computer ansehen wollen, können  Sie den Log-Server anpassen.

opnsense-remote-logging-server
OPNsense Remote Logging-Server

👨🏿‍💻Attack Szenario - SYN Flood

Damit Ihr die Unterschiede zwischen Intrusion Detection System und Intrusion Prevention System versteht, führe ich ein Test-Szenario in Kali-Linux im DMZ-Netzwerk. Ihr müsst ganz gut auf Netzwerken aufpassen, sonst bekommt ihr immer unterschiedliche Fehlermeldungen. Weil es sich um Virtuellen Maschinen handelt, müssen wir die IP-Adresse manuell eingeben. In diesem ist die IP-Adresse von mein Kali -> 192.168.0.26/24.

📦Was ist Scapy?

Scapy ist ein leistungsfähiges interaktives Paketbearbeitungsprogramm. Scapy ist in der Lage, Pakete einer grossen Anzahl von Protokollen zu fälschen oder zu decodieren. Es kann auch die Pakete auf dem Draht senden, erfassen, Anforderungen und Antworten zuordnen und vieles mehr. Es kann die meisten klassischen Aufgaben wie Scannen, Tracerouting, Sondieren, Komponententests, Angriffe oder Netzwerkerkennung problemlos erledigen. Ich verwende für Test-Szenario das Scapy. Installation von Scapy ist sehr einfach. Sie müssen einfach Repository mit Git installieren und laufen lassen.

git clone https://github.com/secdev/scapy
cd scapy
./run_scapy

Nachdem Ihr Scapy installiert haben, geben Sie folgende Werte im Scapy Terminal. Die Befehle kommentiere ich daneben mit // Zeichen. Ihr müsst die Kommentare nicht abschreiben.

e=Ether(src=RandMAC(),dst=“30:ec:32:4b:a2:ad“) // Als Source Zufällige Mac-Adresse erstellen. "dst" ist Destination, in meinem Fall Mac Adresse von meinem Laptop. 
i=IP(src=RandIP(),dst=“192.168.1.2“) // Als Source IP Zufällige IP-Adresse. Destination ist IP von meinem Laptop.
t=TCP(sport=random.randint(45000,59385),dport=22,flags=[3]) // TCP Paket erstellen, "sport" ist unsere Source Port und es ist zufällige dynamische Ports. "dport" ist Destination Port und es ist SSH Port. Als TCP-Flag gebe ich 3 (SYN-ACK).
p=e/i/t // Pakete zusammenfassen
sendp([p]*100) //Pakete *Mal senden
Scapy SYN FLOOD Attack Suricata
Scapy SYN FLOOD Attack

Während Suricata SYN-FIN Regeln in Alert-Modus sind, werden die Bedrohung nicht geblockt, sondern nur in die Log-Datei geschrieben. Also der Opfer wird vollkommen beschädigt(Einfach überfordert), in diesem Fall mein Laptop. Die Logs werden unter Services > Intrusion Detection > Log File gespeichert.

suricata-alert-ack-info
suricata-alert-ack-info

Nun aktivieren wir die Emerging Threats SYN-FIN Regeln und attackieren wir erneut.

suricata-rules-drop-syn-fin
Active Emerging Threats SYN FIN Suricata

Nachdem wir die Regeln aktiviert haben, bekommen wir die Meldungen dass der Opfer unter Bedrohung ist, aber alle Pakete werden von Suricata geblockt.

Die Logs kann ich auch in meinem Administrator PC (vmnet1) per Syslog Protokoll erhalten. Ich starte auf meinem Admin-PC das Wireshark und analysiere die ankommende Syslog Pakete.

suricata-syslog-transfer
Suricata Remote Syslog Server

Ihr könnt also das Wireshark im Opfer-Pc aufmachen und die Pakete sniffen. Dort könnt Ihr auch die Unterschiede zwischen Alert und Drop sehen. So weit habe ich über die Installation von Suricata auf OPNsense Firewall erzählt. Wenn Ihr Frage habt, könnt Ihr gerne mir unten kommentieren. Übrigens in nächstem Artikel werde ich die Logs von Suricata mit Kibana + Elasticsearch + Logstash und Filebeat in Grafik-Modus darstellen lassen. Ein Beispiel Screenshot lege ich hier unten:

elasticsearch-kibana-logstash-filebeat
elasticsearch kibana-logstash filebeat
Rating: 5.0/5. From 7 votes.
Please wait...
Comments

3 Comments

michi

Hallo Aziz
Entschuldige die Störung. Bin soeben an der Konfiguration von Intrusion Detection. Bei mir werden die Packete nicht geblockt sonder nur mit allowed Markiert.
Bei den Settings ist diese Option IPS mode nicht aktiv und wenn ich sie aktiviere wird zwar geblockt aber mein (DMZ) Web-Mail Server ist nicht mehr in der Lage Update zu machen und ich kann auch nicht mehr mich auf meine nas die in der DMZ stehen mich Anmelden.

Was mache ich falsch oder was muss ich noch berücksichtigen.
Gruss Michi

Aziz Ozbek

Hoi Michi, entschuldige die späte Antwort. Bitte stell sicher, dass du die benötigte Erweiterungen von Suricata installiert hast: Services > Intrusion Detection > Download.
Grundsätzlich ist es empfohlen das IDS-Modus zu verwenden. Denn ein System-Administrator soll wissen, welche Anfragen gelblockt oder erlaubt sein soll und nimmt die benötigte Massnahme selber vor.
Es ist wichtig aus welchem Netzwerk du auf den NAS-Server (DMZ) anmelden willst. Dazu müssen die Firewall-Rules richtig konfiguriert sein:
https://azizozbek.ch/blog/2018/08/opnsense-stealth-bridge-firewall/

michi

Hallo Aziz
Danke für deine Rückmeldung.
Ich kriege das irgendwie nicht hin. Eventuell ist es möglich das du dir mal kurz die zeit nimmst und auf mein System schauen könntest. PS: nicht falsch verstehen ich möchte es mir nicht einfach machen.

Gruss Michi


Leave a Comment

Aziz Ozbek

WordPress Expert from Zürich

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close