Die Open Source Firewall Distribution OPNsense bietet vielfältige Möglichkeiten um das Netzwerk abzusichern. Zu diesen Funktionen gehört standardmäßig auch ein Intrusion Detection System. Es basiert auf der Software Suricata und ist bereits vorinstalliert. Sie können diese Funktion bequem im Webinterface der OPNsense Firewall aktivieren und administrieren. Dieser Artikel zeigt anhand von OPNsense 24.7, wie sie ein Intrusion Detection System aktivieren und einrichten.
Die Software Suricata, auf dieser das OPNsense Intrusion Detection System basiert, bietet verschiedene Betriebsarten:
Die Konfiguration von IDS und IPS läuft wie bei OPNsense üblich gänzlich im Webinterface ab.
Das Intrusion Detection System ist mit wenigen Konfigurationsschritten aktiviert. Dies erfolgt im Menü Services → Intrusion Detection → Administration und dessen Tabs.
In diesem Reiter könnnen Sie die Regeln herunterladen und den Status der heruntergeladenen und aktivierten Regeln betrachten.
Dieser Reiter listet alle heruntergeladenen Regeln im Detail auf. Es gibt Filtermöglichkeiten zur Suche und Sie können einzelne Regeln deaktivieren.
In diesem Reiter können Sie selber eigene Regeln definieren.
Dieser Reiter listet alle Alerts des IDS/IPS auf.
In diesem Reiter können Sie Cronjobs für eine periodische Aktualisierung der Regeln erstellen. Dies ist ein äußerst wichtiger Schritt, denn die Regeln müssen möglichst aktuell sein um einen Schutz vor Angriffen zu bieten.
Sie können den Modus von einer reinen Angriffserkennung und Alarmierung (IDS) auf eine Angriffsverhinderung (IPS) umstellen. Ein Tipp hierbei ist, zuerst den IDS Modus zu aktivieren und die Logs zu beobachten. Es treten oftmals auch False-positives auf.
Dieser Abschnitt zeigt noch einige interessante Konfigurationsordner und Dateien zu Informationszwecken auf. Die Konfiguration erfolgt aber gänzlich im Webinterface.
Den Suricata Konfigurationsordner finden Sie bei OPNsense unter /usr/local/etc/suricata.
root@lesv4:/usr/local/etc/suricata # ls -la total 181 drwxr-xr-x 4 root wheel 17 Aug 28 09:16 . drwxr-xr-x 44 root wheel 133 Aug 28 08:45 .. -rw-r--r-- 1 root wheel 3882 Aug 28 09:23 classification.config -rw-r--r-- 1 root wheel 3327 Jul 22 22:54 classification.config.sample -rw-r--r-- 1 root wheel 88 Aug 28 09:23 custom.yaml -rw-r----- 1 root wheel 193 Aug 28 12:00 installed_rules.yaml drwxr-x--- 2 root wheel 8 Aug 28 09:23 opnsense.rules -rw-r--r-- 1 root wheel 1376 Aug 28 09:23 reference.config -rw-r--r-- 1 root wheel 1375 Jul 22 22:54 reference.config.sample -rw-r--r-- 1 root wheel 0 Aug 28 09:23 rule-policies.config -rw-r--r-- 1 root wheel 230 Aug 28 09:23 rule-updater.config drwxr-x--- 2 root wheel 10 Aug 28 12:00 rules -rw-r--r-- 1 root wheel 195 Aug 28 09:23 rules.config -rw-r--r-- 1 root wheel 82357 Aug 28 09:23 suricata.yaml -rw-r--r-- 1 root wheel 85797 Jul 22 22:54 suricata.yaml.sample -rw-r--r-- 1 root wheel 1643 Jul 22 22:54 threshold.config -rw-r--r-- 1 root wheel 1643 Jul 22 22:54 threshold.config.sample
root@OPNsense:/usr/local/etc/suricata/opnsense.rules #
root@lesv4:/usr/local/etc/suricata # cd opnsense.rules/
root@lesv4:/usr/local/etc/suricata/opnsense.rules # ls -la total 4984 drwxr-x--- 2 root wheel 8 Aug 28 09:23 . drwxr-xr-x 4 root wheel 17 Aug 28 09:16 .. -rw-r----- 1 root wheel 97 Aug 28 12:00 OPNsense.rules -rw-r----- 1 root wheel 758 Aug 28 12:00 abuse.ch.feodotracker.rules -rw-r----- 1 root wheel 1880145 Aug 28 12:00 abuse.ch.sslblacklist.rules -rw-r----- 1 root wheel 14271 Aug 28 12:00 abuse.ch.sslipblacklist.rules -rw-r----- 1 root wheel 17863053 Aug 28 12:00 abuse.ch.threatfox.rules -rw-r----- 1 root wheel 26582872 Aug 28 12:00 abuse.ch.urlhaus.rules
Nachfolgend beispielhaft der Anfang einer Blockliste. Sie finden diese Dateien unter /usr/local/etc/suricata/opnsense.rules.
root@lesv4:/usr/local/etc/suricata/opnsense.rules # head abuse.ch.urlhaus.rules ################################################################ # abuse.ch URLhaus IDS ruleset (Suricata only) # # Last updated: 2024-08-28 11:53:05 (UTC) # # # # Terms Of Use: https://urlhaus.abuse.ch/api/ # # For questions please contact urlhaus [at] abuse.ch # ################################################################ # # url alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"URLhaus Known malware download URL detected (3132684)"; flow:established,from_client; http.method; content:"GET"; http.uri; content:"/bin.sh"; depth:7; endswith; nocase; http.host; content:"115.52.23.231"; depth:13; isdataat:!1,relative; metadata:created_at 2024_08_28; reference:url, urlhaus.abuse.ch/url/3132684/; classtype:trojan-activity;sid:83995784; rev:1;)
|
Autor: Thomas Niedermeier Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates. |