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

MySQL repository: GPG Keys expired

In den letzten Tagen habe ich bei einer CentOS 7 Maschine beobachtet, das yum cron nicht sauber ausgeführt wird. Das ganze spiegelte sich natürlich auch im Qualys wieder, so das ich mir den folgenden Fehler mal ansehen musste:

Auf der MySQL Seite gibt es dazu auch einen passenden Case.

Das ganze lässt sich mit einem vorübergehenden Workaround relativ schnell beheben und die aktuellste Version installieren. In der Datei /etc/yum.repos.d/mysql-community.repo einfach die Zeile gpgcheck=1 auf gpgcheck=0 ändern, damit werden Pakete aus dem Repo erstmal nicht mit dem GPG Schlüssel validiert, nach einem yum update sollte der Schlüssel jedoch wieder aktiviert werden und für die neuere Installation der Key importiert werden: rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

Link für cPanel Autofix: https://support.cpanel.net/hc/en-us/articles/4419382481815?input_string=gpg+keys+problem+with+mysql+5.7

Ü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

Qualys und Centos 8 / Centos 8 Stream

Aktuell habe ich mehrer Probleme mit dem Qualys Vulnerability Scanner und Centos 8 / Centos 8 Stream festgestellt. Zuerst viel mir das Problem auf, das Centos 8 Server keinerlei Schwachstellen über den Cloud Agenten zurückmeldeten. Zwar wurden „Informational“ und ein Remote detektiertes openSSH Finding (QID 38773) angezeigt, aber keinerlei Vulnerabilitäten der Kategorie 1-5. Auch Qualys konnte hierzu bisher (Stand: 26.01.2022) keine guten Erklärungen liefern.

Getestet habe ich (mit Agent und Authenticated Scan via Appliance):

  • Centos 8.4.2105 -> Unpatched
  • Centos 8.5.2111 -> Unpatched
  • Centos 8 Stream -> Unpatched

Alle Systeme zeigen auch keine Fixed Findings an, was darauf schließen lässt, das Qualys Centos 8 nicht richtig unterstützt. Erstaunlicherweise habe ich das gleiche Bild in einem Kundenprojekt gefunden, wo man sich fälschlicherweise auf das Qualys Ergebnis verlassen hat.

Centos 8 Stream ohne Sicherheitsupdates

Ü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

Lego mit dem Raspberry steuern

Über eine neue Zusatzplatine ist es möglich, mit seinen Raspberry Pi die Motoren und Sensoren von Lego zu steuern. Die Raspberry-Pi-Foundation hat dafür auch eine passende Python-Bibliothek und mehrere Demoprojekte veröffentlicht.

Mit dem Build Hat getauften Zusatzboard bekommt man die Kontrolle von bis zu vier Lego-Technic-Motoren oder Spike-Sensoren aus der Lego-Education-Reihe Die Platine kostet ca. 26 Euro in Deutschland und kann mit allen Raspberry-Pi-Varianten genutzt werden (sofern diese über eine GPIO-Leiste mit 40 Steckern verfügen). Über einen entsprechenden Adapter ist es sogar möglich, den Build Hat mit dem kleinen Desktop-Rechner Raspberry Pi 400 zu verbinden. Auf dem Hat wird der RP2040-Chip verbaut, der von der Foundation selbst entwickelt wird. Der 40-nm-Chip wird etwa auf dem Raspberry PI Pico verwendet, kann aber auch in Einzelteilen bestellt werden.

Als kleine Einstiegshilfe hat die Raspberry-Pi-Foundation sogar vier Anleitungen für Demoprojekt veröffentlicht. Die Bibliothek unterstützt übrigens neben Lego-Technic-Geräten auch das Mindstorms Robot Inventor Kit und weitere Lego-Produkte, die auf einen LPF2-Anschluss setzen.

In der Einstiegshilfe könnt ihr z.B. sehen, wie ihr einen Gamecontroller aus Lego-Bauteilen herstellt, ein ferngesteuertes Fahrzeug oder einen Plotter baut oder ein Robotergesicht aus Lego-Steinen zusammensetzt

Ü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

Raspberry Pi headless setup

Meine heimliche Liebe zu Einplatinenrechner ist kein Geheimnis. Ist erst ein Ansatz zur Automatisierung gefunden, wird dieser direkt durch ein „Raspberry Projekt“ umgesetzt. Zugegeben, in den letzten Wochen schwärme ich auch für Arduino, welcher tolle Möglichkeiten eröffnet – Aber Raspberry dominiert dennoch unseren Haushalt durch Webcams, Ambilight, Speedmessungen am DSL Anschluss, 3D Drucker und vieles mehr. Aktuell arbeite ich gerade an einem Thermometer, welches von einem Arduino mit DHT22 über 433 MHz Messungen empfängt, statistisch am Pi aufwertet und dann an einem Webserver überträgt. Damit der Pi Zero auch ohne Monitor und Tastatur direkt gestartet werden kann, sind zunächst jedoch einige Änderungen notwendig.

Download des aktuellen Raspbian Image und Installation durch Etcher

Dieser Schritt sollte relativ selbstredend sein, daher werde ich auf die Installation nicht näher eingehen. Früher habe ich das Image aus der Console mit dd aufgespielt, heute mache ich dies über Etcher (hier kann man Etcher Downloaden)

Etcher

WiFi konfigurieren

Als nächstes muss vor dem ersten Start des Pi eine Datei erstellt werden. Diese muss auf der /boot Partition des Pi gespeichert werden.

Inhalt der Datei /boot/wpa_supplicant.conf

SSH aktivieren

Nachdem wir nun die WLAN Einstellungen am Raspberry gemacht haben, müssen wir noch eine leere Datei im /boot Verzeichnis erzeugen und nennen diese „ssh“. Dies bewirkt, das der SSH Dienst bei booten automatisch gestartet wird.

Fertig: Kennwort bitte ändern

Starten wir nun den PI, können wir uns mit Putty oder sonstigen SSH Client anmelden: ssh pi@raspberrypi Das Default Passwort für den Benutzer pi lautet „raspberry“ und sollte umgehend geändert werden. Eine solche Kombination ist ein sehr hohes Sicherheitsrisiko.

Raspberry Pi Zero Pin Belegung

Ü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

Defekte Plugins unter Shopware löschen

Gerade eben musste ich erneut ein Plugin unter Shopware löschen, welches jedoch scheinbar ein Problem mit der (Backend) deinstallation hatte. Abhilfe schaffte jedoch nur das manuelle löschen aus der Datenbank, nachdem diese Methode ebenfalls nicht funktionierte (WARNING! Method „Shopware_Plugins_Core_SwagLicense_Bootstrap::assertVersionGreaterThen“ not found failure in…).

Hierzu habe ich das Plugin mit Namen lokalisiert:

Anschließend habe ich das Plugin Verzeichnis unter /var/www/html/engine/Shopware/Plugins/ gesucht und gelöscht. Zur Bereinigung musste anschließend in der Datenbanktabelle s_core_plugins der entsprechende Eintrag ebenfalls gelöscht werden. Abschließend sollte das Theme natürlich noch kompiliert werden, damit die Änderungen übernommen sind. Andernfalls kommt es zu einem Fehler im Frontend.

Sicherlich ist dies nicht der beste Weg, um jedoch ein defektes Plugin zu löschen effizient. Backup nicht vergessen!

Ü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

WordPress und 2FA (Zwei-Faktor-Authentisierung)

Heute ist Samstag Abend und mir spinnt schon die ganze Tag das Thema 2FA durch den Kopf. Konkret muss ich den Google Authenticator bei einem Kunden auf dem Webserver installieren und könnte dies auch direkt bei meinem WordPress Blog durchführen.

Zunächst würde ich gerne das Thema 2FA etwas in Einklang bringen, Wikipedia beschreibt dies relativ einfach in ein paar kurzen Sätzen:

Die Zwei-Faktor-Authentisierung (2FA), häufig auch als Zwei-Faktor-Authentifizierung bezeichnet, bezeichnet den Identitätsnachweis eines Nutzers mittels der Kombination zweier unterschiedlicher und insbesondere unabhängiger Komponenten (Faktoren). Typische Beispiele sind Bankkarte plus PIN beim Geldautomaten, Fingerabdruck plus Zugangscode in Gebäuden, sowie Passphrase und TAN beim Online-Banking. Die Zwei-Faktor-Authentisierung ist ein Spezialfall der Multi-Faktor-Authentisierung.


Das Bundesamt für Sicherheit in der Informationstechnik empfiehlt für sicherheitskritische Anwendungsbereiche die Zwei-Faktor-Authentisierung in seinen IT-Grundschutz-Katalogen.

https://de.wikipedia.org/wiki/Zwei-Faktor-Authentisierung

Das Thema 2FA finden wir in unterschiedlichen Bereichen wieder. Mittlerweile unterstützen viele Anbieter das 2FA Verfahren (z.B. Paypal, AMAZON & Co), wobei die Auswahl des zweiten Faktors oft das Mobiltelefon (z.B. SMS) oder auch eine App sein kann. Bei der Auswahl der App empfehle ich Authy, welches viele nützliche Funktionen bietet. Neben Fingerprint Authentication sind auch Cloud Backups möglich.

2FA für WordPress

Um 2FA für WordPress zu aktivieren, ist zunächst ein Plugin notwendig. Um einen einzelnen Admin Account abzusichern, ist das Plugin Google Authenticator – WordPress Two Factor Authentication (2FA) von miniOrange eine gute Lösung. Das Plugin wird normal hinzugefügt und anschließend aktiviert.

Nach der Installation findet man links im Menü das Item miniOrange 2 Faktor, in welchem dann der Google Authenticator konfiguriert werden kann.

Die nächsten Schritte sind jetzt relativ einfach: Es wird ein QR Code erzeugt, der mit Authy gescannt wird (1) . Anschließend wird der erzeugte OTP rechts eingetragen, um das ganze zu verifizieren (2). Nun muss noch Enable 2FA prompt on the WP Login Page aktiviert werden. Es empfiehlt sich außerdem seinen Token zu testen, bevor man sich abmeldet und erneut anmeldet (Test Authentication Method).

Wenn alles funktioniert hat, kann man sich abmelden und erneut anmelden. Nun wird man nach einem Benutzernamen, Kennwort und dem OTP Token gefragt.
.

Fertig – Zwei-Faktor-Authentisierung

Ü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

E-Mail Benachrichtigung bei SSH Login

Wer gerne über einen SSH Login per E-Mail informiert werden möchte, kann dies über ein recht einfaches Script erledigen. Hierzu muss zunächst unter Centos mailx installiert werden, damit der mail command funktioniert. Ob der Mail command vorhanden ist, lässt sich einfach mit

ausfindig machen. Alternativ kann man sich auch einfach eine Testmail senden lassen:

Zur Installation unter Centos verwenden wir yum:

Anschließend muss die Datei /etc/bashrc so verändert werden, das der folgende Code direkt am Anfang ausgeführt wird:

Nach einem erfolgreichem SSH Login bekommt der Benutzer dann eine E-Mail: Login on web29.stefan-eggert.de Sa 20. Apr 10:13:31 CEST 2019 root pts/0 2019-04-20 10:13 (xxx)

Ü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

WPS und AVM Fritzbox Gäste WLAN

Am Wochenende habe ich eine sehr amüsante Geschichte erlebt. Eigentlich war diese schon so trivial, das ich diesen Artikel gar nicht schreiben wollte, aber vielleicht gibt es ja doch den ein oder anderen Leser der hier nutzen finden kann.

Mir wurde ein Fritzbox Gästewlan zur Verfügung gestellt. Leider stellte sich jedoch heraus, das im Gästenetz nur Port 80 und Port 443 erlaubt wurden. Aus dem Nutzungsvertrag des Betreibers konnte ich entnehmen, das man anscheinend P2P Dienste ausschliessen wollte. Mein Problem: Ich musste Port 440 erreichen, da mein Kunde SSL VPN auf genau diesen Port laufen hatte. Im übrigen ein guter Grund, VPN auf Port TCP 443 laufen zu lassen um dies dann auch aus z.B. Hotels oder anderen Hotspots erreichen zu können.

Zugriff auf WPS Taste

Wi-Fi Protected Setup (WPS) ist ein von der Wi-Fi Alliance entwickelter Standard zum einfachen Aufbau eines drahtlosen lokalen Netzwerkes mit Verschlüsselung, welcher seit 2007 zur Verfügung steht. Das Ziel von WPS ist es, das Hinzufügen von Geräten in ein bestehendes Netzwerk zu vereinfachen.

https://de.wikipedia.org/wiki/Wi-Fi_Protected_Setup

Falsch umgesetzt bringt WPS natürlich einige Gefahren mit sich, hierzu werde ich nochmal separat etwas zu schreiben. Im konkreten Fall hatte der Betreiber nämlich die „Push Button Configuration“ in seiner Fritzbox aktiviert. Durch physikalischen Zugriff auf die Box konnte ich mit der WPS Taste das Hauptnetz erreichen, was Datenverkehr ungefiltert zugelassen hat. Natürlich hätte ich mir auch einfach einen LAN Port abgreifen können, aber leider hatte ich meinen USB LAN Adapter nicht dabei. Auch der Irrglaube, das Kennwort der FritzBox nicht ändern zu müssen (die Weboberfläche lässt sich aus dem GästeWlan nämlich nicht erreichen) war fatal: Nachdem ich per WPS mit dem normalen WLAN verbunden wurde, konnte ich natürlich auch die Weboberfläche erreichen und das aufgedruckte Kennwort der FritzBox verwenden.


Zusammengefasst

WPS gehört deaktiviert und das aufgedruckte Kennwort muss geändert werden. Außerdem sollte man hinterfragen, ob man die Geräte zugänglich machen muss. Moderne AccessPoints können sich gegen externe Brute-Force-Angriffe durch „wash“ und „reaver“ relativ gut schützen, jedoch handelte es sich bei meinem Beispiel einfach nur um einen einfachen Konfigurationsfehler, der am Ende schwere Folgen hätte haben können da ich physikalischen Zugriff auf das Gerät hatte (ohne erst meinen Koffer mit der WIFI PINEAPPLE auspacken zu müssen).

Das Vorgehen wurde natürlich mit dem Betreiber vorab abgestimmt.

Ü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