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.
🔔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.
OPNsense muss auf Bridge umgewandelt sein!
Wenn Ihr die Hardwares/Komponenten sowie PCEngine APU, Switch und 3 PCs habt, seit ihr sicher, dass ihr ersten Artikel realisiert habt, bevor Ihr loslegt.
📡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 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.
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)
⚙️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.
📥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.
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.
👨🏿💻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
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.
Nun aktivieren wir die Emerging Threats SYN-FIN Regeln und attackieren wir erneut.
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.
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:
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
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/
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