Pi.Alert auf dem Raspberry als NAC

Guten Morgen zusammen 🙂

Gestern habe ich mich ein bisschen mit dem Thema NAC beschäftigt. Network Access Control (NAC; deutsch Netzwerkzugangskontrolle) ist eine Technik, die die Abwehr von Viren, Würmern und unautorisierten Zugriffen aus dem Netzwerk heraus unterstützt.

Eigentlich wollte ich schnelle Lösung finden, um neue Geräte in meinem Netzwerk erst freizugeben, ein direktes „Fencing“, also den Client in ein separates Quarantäne Netzwerk zu packen wollte ich nicht. Darum ist auch der Titel „Pi Alert als NAC“ so nicht ganz korrekt, jedoch erfüllt der Weg voll und ganz meine Zwecke. Neue Geräte, die durch Pi Alert identifiziert wurden, werden aus der Datenbank ausgelesen (per bash Script) und dann über iptables blockiert. Hierzu ist es natürlich zwingend erforderlich, das der Pi Alert gleichzeitig als Default Gateway im Netzwerk funktioniert. Das ganze kann natürlich abgeändert werden, theoretisch könnte über das Script auch eine API am Switch, dem DHCP selbst oder eventuell eine andere Firewall angesprochen werden (z.B. über SSH).

Das Script ist relativ simple aufgebaut:

Sobald die Geräte im Pi Alert nicht mehr als New markiert sind, werden diese durch das Flush gelöscht. Das ganze starte ich dann jede Minute per Cron.

Sicherlich ist dies keine „ultimative“ NAC Lösung und kann total einfach (durch ändern des GWs) umgangen werden. Mir selbst reicht es aber um mein heimisches Netzwerk etwas besser zu kontrollieren.

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit. Beruflich bin ich erreichbar unter www.stefan-eggert.de

Pi.Alert – Kostenlose Alternative zur Fingbox

In den letzten Wochen habe ich mich mit dem Thema Fing beschäftigt. Fing ist ein relativ einfaches Tool, welches das Netzwerk regelmäßig auf neue Device untersucht und diese anschließend analysiert. Hierzu wird u.a. ein ARP Request im LAN regelmäßig abgesetzt, die Mac Adressen (Hersteller) analysiert und anschließend in einer GUI angezeigt. Sofern man sich also dafür interessiert wer noch alles in seinem LAN/WLAN so rumspringt, ist dies eine tolle Sache. Neue Geräte werden dann sofort per Alarm dem Admin mitgeteilt, so das man einen direkten und schnellen Überblick hat, wer sich gerade (neues) in seinem Netzwerk befindet. Ebenfalls können Statistiken erstellt werden, wer, wann und wie lange im Netzwerk gewesen ist.

Übersicht aller Geräte im Netzwerk

Leider hat Fing auch einen großen Nachteil. Um das Netzwerk regelmäßig zu analysieren ist eine Fingbox erforderlich (um die 120 Euro), alternativ muss ein Rechner (Windows oder MacOS) regelmäßig laufen damit das Netzwerk alle paar Minuten gescannt wird. Ein spezielles Raspberry Image gibt es leider nicht.

Neues Gerät wurde erkannt

Zuerst hatte ich die Überlegung selbst etwas zu programmieren, was ähnlich aufgebaut ist. Prinzipiell benötige ich die vielen Features von Fing nicht, ich wollte einfach nur wissen welche Geräte in meinem Netzwerk sind oder sich gerade eben angemeldet haben.

Nach langer Suche bin ich dann fündig geworden und bin über Pi.Alert gestolpert. Die relativ unbekannte Applikation nutzt verschiedene Methoden, um das Netzwerk zu untersuchen, die Ergebnisse zu visualisieren oder per E-Mail an den Admin zu versenden. Hierzu werden verschiedene Methoden genutzt:

  1. ARP Scans
  2. DNS Anfragen aus Pi-hole
  3. DHCP Leases aus dnsmasq

Besonders interessant finde ich das schon während der Installation von Pi.Alert gefragt wird, ob der Ad-Blocker Pi-hole auf dem Gerät installiert ist oder installiert werden soll. Ich persönlich bin ein großer Fan, Werbung und Tracker über DNS zu filtern. Darum finde ich den Ansatz, die Source IP der DNS Anfragen zu analysieren, eine sehr gute Idee. Ich hatte Pi-hole übrigens schon vorher sowohl in einem VMWare Image als auch auf einem Raspberry Pi Zero am laufen.

Neues iPhone im Netzwerk gefunden

Fazit

Mit Pi.Alert habe ich mein Netzwerk gut im Griff. Die Applikation kann gemeinsam mit Pi-Hole betrieben werden und liefert so perfekte Ergebnisse. Noch besser wird das ganze natürlich wenn man die DHCP Leases aus Pi-Hole ausliest (sofern dieser auch DHCP macht), es ist jedoch auch möglich einen Reverse Lookup auf die IPs zu machen. Durch eine Benachrichtigung per Email (SMTP Server wird bei der Installation abgefragt) lassen sich zudem Downtimes etc. als Benachrichtigung einstellen. Wenn man auf Features wir „Port-Scans“ etc. verzichten kann, ist Pi.Alert eine schöne kostenlose Alternative zur Fingbox. Mit persönlich reicht es zu wissen, das ein neues Gerät im Netzwerk ist. Vielleicht passe ich mir das Script noch ein bisschen an (bsp. Qualys Scan über die API bei einem neuen Device).

Links

Pi Alert auf GitHub

Pi Hole als DNS / DHCP Server Image

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit. Beruflich bin ich erreichbar unter www.stefan-eggert.de