Früher galt eine Einbruchserkennung als zu kompliziert und zu teuer für Heimnetze. Heute lässt sich ein solches Alarmsystem mit einem RasPi und freier Software schnell und kostengünstig aufsetzen.
Ein System zur Erkennung von Einbrüchen (Intrusion Detection System, IDS) funktioniert wie ein Rauchmelder: Es bemerkt die Gefahr, gibt eine Warnung aus, verhindert aber keineswegs die Katastrophe. Während Rauchmelder in den eigenen vier Wänden bereits Pflicht sind, finden sich IP-Alarmanlagen in den wenigsten Heimnetzen.
Das IDS wirft einen tiefen Blick in die durchlaufenden IP-Pakete. Erscheinen die analysierten Inhalte verdächtig, schlägt das System Alarm. Ob ein Paket einen möglichen Angriff enthält, weiß das IDS aus einer mit bekannten Angriffsmustern gefüllten Datenbank. Damit ähnelt es einem Virenscanner: Es untersucht Daten und vergleicht sie mit bekannten Mustern.
In Rechenzentren gilt ein IDS heute als Standard: Eine flotte Appliance empfängt über eine Multi-Gigabit-Netzwerkkarte die Datenströme aller Server und berichtet ihre Entdeckungen dem Network Operations Team. Was nach einer kostspieligen Lösung klingt, lässt sich technisch genauso gut auf Heimnetze übertragen. Als Hardware fungiert dann kein lärmender Server, sondern ein Raspberry Pi oder ein vergleichbarer Minicomputer. Das kleine IDS holt sich von der Fritzbox eine Kopie der übertragenen Pakete und beginnt mit seiner Detektivarbeit.
Eine Warnung vorweg: Bei dem im Folgenden vorgestellten Aufbau handelt es sich eher um einen Lifehack als um ein unterstütztes Szenario. Die Fritzbox muss durch die zusätzliche Aufgabe etwas mehr Leistung aufbringen und erreicht dann je nach Modell möglicherweise nicht mehr die volle Bandbreite.
Ausstattung
Das IDS benötigt für seine Untersuchungen Rechenleistung. Daher sollten Sie mindestens einen Raspberry Pi 3B+ einsetzen, besser noch einen Vertreter der vierten RasPi-Generation. Wer es mit einem anderen Mini-PC versuchen möchte, benötigt mindestens 1 GByte Arbeitsspeicher und eine Zwei-Kern-CPU. Als Betriebssystem genügt ein aktuelles Pi OS oder Debian ohne grafische Oberfläche.
Nach der Installation des Pi OS benötigt der Raspberry keine lokale Konsole mehr. Die Konfiguration nehmen Sie über SSH vor, und mehrere Webseiten kümmern sich um die spätere Auswertung. Für die Auswahl der Software gilt: Sparsam mit Leistung und Flash umgehen. Eine 500 MByte große Log-Datei des IDS macht das System träge und beinahe untauglich. Für große Installationen mag Elasticsearch das richtige Backend sein, für das Heim-IDS tut es eine schlanke SQLite-Datenbank.
Suricata
Als Herzstück des RasPi-IDS dient Suricata [1], eine quelloffene Software zur Einbruchserkennung. Der Suricata-Prozess lauscht an einem Netzadapter und vergleicht die durchlaufenden IP-Pakete mit seiner Signaturdatenbank. Passt das untersuchte Paket zu einer Signatur, reagiert Suricata mit der hinterlegten Aktion, die zum Beispiel einen Alarm auslöst. Die Analyse hängt also von der Qualität der Signaturen ab.
Zuerst muss die Software ihren Weg auf den RasPi finden (Listing 1, erste Zeile). Im Repository findet sich eine aktuelle Version, die für das Heim-IDS ausreicht. Als Besonderheit konzentriert sich Suricata nicht auf den physischen Netzadapter eth0, sondern auf den virtuellen Adapter ids0 (Zeile 2). Der Update-Befehl (Zeile 4) holt sich die kostenfreien Signaturen, was je nach Geschwindigkeit der Internet-Anbindung einige Minuten dauert. Beispielsweise vergehen beim Laden und Testen von 43 000 Regeln auf einem Raspberry Pi 3B+ etwa drei Minuten.
Listing 1
Suricata installieren und updaten
# apt install suricata # sed -i -e 's/interface: eth0/interface: ids0/' /etc/suricata/suricata.yaml # ln -s /var/lib/suricata/rules/suricata.rules /etc/suricata/rules/ # suricata-update # systemctl stop suricata [... siehe Listing 2 ...] # suricata -c /etc/suricata/suricata.yaml -i ids0 -v # systemctl start suricata
Danach stoppen Sie Suricata erst einmal (Zeile 5). Der erste “heiße” Start das IDS muss noch warten, bis die Anweisungen aus Listing 2 die Schnittstelle ids0 zum Leben erweckt haben – dazu später mehr. Ist das erledigt, starten Sie Suricata manuell neu (Zeile 7 und 8). Es greift die Pakete vom Interface ids0 ab und prüft sie gegen die aktivierten Signaturen. Schlägt eine der Regeln zu, gibt es einen Eintrag in der Datei eve.json – dazu später mehr. Falls Fehlermeldungen den Systemstart begleiten, lohnt sich der Einsatz der Verbose-Option -v.
Sie sollten etwas Geduld mitbringen, denn auf einem RasPi 3B+ dauert es bis zu zwei Minuten, bis Suricata die Signaturen geladen hat und einsatzbereit ist. Das Protokoll der Anwendung findet sich als Datei unter /var/log/suricata/.
Workflow
Die meisten Heim-Router verfügen nicht über einen Mirror-Port, der Paketkopien erstellt und über einen anderen LAN-Anschluss an einen Analyseserver sendet. Daher muss das RasPi-IDS die Daten von der Fritzbox einfordern (Abbildung 1). Dazu genügen Wget und etwas Bash-Gefummel. Die gesammelten Pakete soll Wget aber nicht zwischenspeichern (das würde die SD-Karte relativ schnell töten), sondern dem IDS-Prozess zuspielen.






