Eigene Suricata-Regeln auf der OPNsense

Mitglied: lcer00
Hallo zusammen,

die letzten 3 Tage habe ich damit verbracht, auf meinen OPNsense Firewalls eigene Regeln für die Einbruchserkennung (IDS/IPS) einzurichten. Dabei sollten Regeln zentral für alle OPNsense zur Verfügung gestellt werden. Aufgrund einiger Fallstricke in den von mir per Suchmaschine gefunden Anleitungen dazu hier ein kurzes Tutorial.


back-to-topBehandeltes Setup, Voraussetzungen
Verwendet wurden 3 Firewalls mit OPNsense 20.1.1-amd64 . OPSense verwendet dabei Suricata 4.1.6. Auf den Firewalls ist bereits der Dienst Einbruchserkennung bereits aktiviert. Eine Anleitung hierzu findet sich unter https://docs.opnsense.org/manual/ips.html

Die Regeln sollen auf einem Webserver im LAN unter der url
zur Verfügung gestellt werden. Bei mir war das ein IIS auf einem Windows 2012R2. Grundsätzlich kann man aber auch jeden anderen Webserver nutzen.

Ich habe einen Regelsatz für das Zulassen von Downloads aus den ESET-Repositories erstellt. Ohne diese Zusatzregeln bricht bei uns suricata den Download von ausführbaren Binärdateien bei der Installation oder Autoupdate von ESET Programmkomponenten (nicht bei den Virenaktualisierungen) ab. Ich bleibe mal bei diesem Beispiel.

Was ich hier nicht behandle ist der Syntax der Regeln selbst. Dazu findet man aber im Suricata-User-Guide und mit der Suchmaschine seiner Wahl jede Menge Infos.

back-to-topssh Root Zugriff auf die OPNSense aktivieren
Auf der OPNsense muss als root per console bzw. ssh zugegriffen werden. Siehe auch https://docs.opnsense.org/manual/settingsmenu.html

Zunächst wir das Menü System: Einstellungen: Verwaltung aufgerufen werden. Unter "Secure Shell" finden sich die entsprechenden Parameter. Entsprechend dem allgemein üblichen Vorgehen sollte hier der Root-Zugang nicht direkt aktiviert werden. Besser ist es, den SSH Zugang auf eine Benutzergruppe zu beschränken und dann mittels sudo -i auf root zu wechseln. Quick & dirty geht aber auch. Korrekt würde quick&dirty so aussehen:
  • Haken bei Aktiviere Secure Shell setzen
  • Anmeldegruppe auf wheel, admin setzen
  • Haken bei Erlaube Anmeldung mit dem root-Benutzer
  • nochmal darüber nachdenken, ob man das wirklich so machen will, besser ist es eine separate SSH-Benutzergruppe anzulegen und den Wechsel auf root zu erlauben (weiter unter im Menü System: Einstellungen: Verwaltung: Authentifizierung: Sudo). Das ist aber nicht Thema dieser Anleitung.
  • Haken bei Anmeldung mit Passwort erlauben
  • auch nochmal nachdenken, ob das sein soll. Besser ist es, den authorisierenden Schlüssel für den SSH-Benutzer zu konfigurieren.
  • Port auf 22 lassen
  • Schnittstelle passen auswählen

back-to-topSpeicherort der Konfigurationsdateien
Die allgemeinen Konfigurationsdateien von Suricata befinden sich hier:
Allerdings muss man hier nichts anpassen. Interessant ist aber die Datei classification.config
Hier findet man die Bezeichner für die möglichen Klassifikationen (classtype), die der Regel später eine bestimmte Priorität zuweisen.

Wichtiger ist das folgende Verzeichnis:
Hier sind die Verweise auf Regelsätze in XML-Dateien gespeichert. Alle XML-Dateien werden von suricata geladen und die darin referenzierten Regelsätze werden geladen. Hier erzeugt man eine neue Datei mit der Endung .xml
back-to-topBearbeiten der Regelsatz-XML-Datei
Mittels
startet man dann auch den beliebten Editor vi. Dessen Bedienung hier zu besprechen, würde etwas den Rahmen sprengen. Man tut aber gut daran, sich mit dessen Basics zu befassen, denn im Notfall muss man sich mittels serieller Console auf seine OPNsense verbinden und die Konfiguration mit diesem tollen Editor bearbeiten können. Macht man alles richtig beim Konfigurieren ist das aber nicht nötig. :) face-smile Alternativ kann man aber auf der OPNsense auch ee verwenden.
Der Syntax der Regelset-Verweis-Dateien ist variabel. Entsprechend XML gibt es da verschiedene Möglichkeiten. Man kann sich die verschiedenen installierten Dateien gerne ansehen.

In meinem Fall kommt in die Datei custom.xml folgender Inhalt:

In die Sektion <files></files> können beliebig viele Dateien referenziert werden. Angegeben wird der Dateiname. Dieser ist relativ zu Location.

Das Verzeichnis sieht bei mir dann so aus:

Das wars schon. Folgende Nacharbeiten sollten erfolgen:
  • Regel über die WebUI Dienste: Einbruchserkennung: Verwaltung: Herunterladen aktualisiseren (Herunterladen und aktualisieren).
  • root-SSH Zugang wieder deaktivieren

Die Regelsätze müssten (noch deaktiviert) in der WebUI auftauchen. Bezeichnet werden sie dort als
Das entsprich dem Location-prefix und der file-description aus dem XML-File. So bleibt alles schön übersichtlich.
back-to-topDateien auf dem Webserver
Das ist relativ simpel. Auf dem Webserver legt man die entsprechenden Dateien an und befüllt sie mit suricata Regeln. Bei mir sieht die Datei eset.rules wie folgt aus:

Wichtig: siehe auch https://doc.emergingthreats.net/bin/view/Main/SidAllocation Die Regeln müssen eine für die suricata-Instanz eindeutige sid haben. Werden sid mehrfach vergeben, werden alle folgenden Regeln nicht geladen und auch nicht angewendet. Viele suricata-Beispiele verwenden recht simple sids. Die sollte man ändern. Bei nicht geladenen Regeln sollte man das Log überprüfen.

Den Zugriff auf die Regeldateien überprüft man am besten über den Browser.
+++++ Hinweis IIS
Hier waren noch weitere Konfigurationsschritte notwendig, da *.rules Dateien per Default nicht als Text ausgeliefert werden. Für das Verzeichnis auf dem Webserver musste man:
  • Anforderungsfilterung/Dateinamenerweiterung: .rules bestehenden Eintrag löschen
  • und einen Neuen mit .rules = True erstellen
  • MIME-Typ: .rules auf text/html stellen

Nicht getestet habe ich, ob man auch andere Dateiendungen verwenden kann. Ich vermute schon, aber ich wollte beim suricata-Syntax bleiben.

back-to-topSicherheitshinweis
Wenn ein Angreifer zugriff auf referenzierten *.rules Dateien bekommt, kann man suricata sehr einfach kompromitieren, da die Regeln ja automatisch geladen werden. Also muss der Webserver genau so abgesichert werden, wie der Zugang zur OPNsense.

back-to-topAktivieren der Regeln
In der WebUI der OPNsense können die Regeln jetzt aktiviert werden (anhaken und ausgewählte aktivieren). Überprüfen kann man das unter dem Reiter Regeln. Dort sollte die Regel über die Suche auffindbar sein. Bei jeder Regelaktualisierung werden die Regeln dann vom Webserver geladen.

back-to-topSuricata-Logs auf der OPNsense
Fehler beim Laden der Regelsätze findet man in der WebUI im allgemeinen Log der OPNsense unter System: Protokolldateien: Allgemein
Fehler beim Verarbeiten der Regeln findet man in der WebUI unter Dienste: Einbruchserkennung: Protokolldatei

back-to-topHilfreiche Links

Content-Key: 571034

Url: https://administrator.de/contentid/571034

Ausgedruckt am: 29.07.2021 um 21:07 Uhr

Heiß diskutierte Beiträge
general
Telekom hat größere StörunganteNopeVor 13 StundenAllgemeinInformationsdienste29 Kommentare

Moin, es scheint als hätte die Telekom gerade eine größere Störung. Bei vielen Kunden mit Telekom-Internetanschluss funktionieren Office 365 und auch IMAP-Mails nicht. Wartezeit in ...

question
Windows 365SarekHLVor 1 TagFrageWindows 1112 Kommentare

Hallo zusammen, nun ist es also soweit - Microsoft stellt mit "Windows 365" die Weichen in Richtung Windows as a Service: Wenn Microsoft da schreibt ...

question
Geplanter Server für Home LABraxxis990Vor 1 TagFrageServer-Hardware15 Kommentare

Guten Tag , Ich möchte gern meine aktuelle Hardware Tauschen. Im Einsatz ist ein kleiner Lenovo M93p ( Glaube ). Dort läuft ESXI mit 3 ...

question
VPN - Zwei Fritzboxen miteinander verbindenmeooosVor 1 TagFrageInternet14 Kommentare

Hi Leute, ich hab ein Problem und komme einfach nicht weiter. Jetzt hoffe ich, dass Ihr mir weiter helfen könnt. Also ich habe zwei Standorte ...

question
Massive Probleme mit Windows Suche, Taskbar, Windows Standard Apps auf jedem Windows 10-PC im Firmennetzwerkrznr666Vor 10 StundenFrageWindows 1025 Kommentare

Hallo liebe Community, die PCs in unserem Unternehmen weisen folgende Probleme auf. Die Fehler treten nach einiger Zeit auf JEDEM Windows 10-PC auf, der genaue ...

question
Anfragen an internen- und externen DNS Server gelöst BPeterVor 1 TagFrageWindows Server17 Kommentare

Hallo, im Homeoffice soll eine DNS Anfrage für Softphone über einen externen DNS Server laufen und nicht über den internen DNS Server. Dies soll aber ...

question
Absicherung Exchange ServerLKleemannVor 10 StundenFrageExchange Server6 Kommentare

Hallo zusammen, wir sind bei uns in der Firma nun endlich vom Exchange POP3 Connector weggekommen und empfangen nun unsere E-Mail direkt über MX-Einträge. Nun ...

question
CMS für Lebenslauf einer Maschine gelöst rrobbyyVor 1 TagFrageCMS10 Kommentare

Hallo zusammen, im Zuge einer Masterarbeit loten wir gerade ein paar Möglichkeiten aus, wie man die (alle) technischen Daten einer Anlage (Kran-Anlagen) strukturiert und nachvollziehbar ...