Inhalt:
Wifi-Shepherd installieren und einrichten in sieben Schritten
Wifi-Shepherd-IPS vom Image installieren und einrichten
Getestete Hardware
Was ist Wifi-Shepherd-IPS?
In diesem Beitrag haben wir bereits den Wifi-Shepherd als kleines Werkzeug auf der Basis eines Raspberry Pi Zero W vorgestellt. Das Gerät kann nun auch als Intrusion Protection System (IPS) arbeiten. Der Modus kann manuell aber auch automatisch betrieben werden. Dabei wird Ihr WLAN-Netzwerk in regelmäßigen Abständen gescannt und nach neuen Geräten gesucht. Das IPS wird sofort aktiv, wenn Sie den automatischen Modus gewählt haben und sendet „Deauthentication Frames“ an den „Eindringling“. Damit wird eine Kommunikation erschwert und im besten Fall unmöglich gemacht.
Was hat sich gegenüber dem Vorgänger verändert?
Die im Raspberry Pi Zero W standardmäßig verfügbare WLAN-Schnittstelle (wlan0) übernimmt die Kommunikation mit dem Nutzer und ermöglicht eine Verbindung zum Webserver. Hier werden weiterhin die aktiven Komponenten in Ihrem WLAN-Netzwerk dargestellt. Ein zusätzlicher USB-WLAN-Adapter (wlan1) arbeitet im Monitor-Mode und erzwingt die Abmeldung des „Eindringlings“.
Hierzu wird zwingt ein USB-Adapter benötigt, der sowohl in den entsprechenden Frequenzbereichen (2,4 GHz und 5 Ghz) arbeitet, als auch über die notwendigen Eigenschaften verfügt. In unserem Beispiel wird ein AWUS036AC von ALFA-Networks verwendet, der über den Chipsatz RTL8812AU verfügt.
Als Betriebssystem nutzen wir Raspberry Pi OS, das als Nachfolger des ehemaligen „Raspbian“ ab Mai 2020 verfügbar ist.
In diesem Beitrag wird erläutert, wie Sie Wifi-Shepherd-IPS installieren und verwenden. Dabei werden wir uns teilweise auf die vorangegangenen Artikel beziehen und die Unterschiede hervorheben.
Wifi-Shepherd installieren und einrichten in sieben Schritten
Schritt 1 – Betriebssystem herunterladen und einrichten
Als Grundlage wird das neue Raspberry Pi OS (32-bit) Lite benötigt, das Sie auf der Produkt-Webseite heruntergeladen können. Gehen Sie dazu analog zum Wifi-Shepherd vor. Platzieren Sie danach die Dateien ssh und wpa_supplicant.conf im Wurzelverzeichnis der Boot-Partition, wie hier beschrieben.
Schritt 2 – Raspberry Pi OS anpassen und Software installieren
Verbinden Sie sich nun mit dem Wifi-Shepherd per ssh und nehmen Sie die Konfiguration mithilfe von raspi-config wie hier beschrieben vor.
Achtung:
Mit Stand 12.06.2020 wird ein neuer Kernel angeboten und installiert. Leider gibt es danach bei der Installation des WLAN-Treibers (siehe Schritt 3) Probleme:
Um die Pakete zurückzuhalten, führen Sie folgendes Kommando aus:
sudo apt-mark hold raspberrypi-kernel rpi-eeprom rpi-eeprom-images
Jetzt können Sie ein Update durchführen:
sudo apt update && sudo apt upgrade
Die benötigten Softwarepakete für den Wifi-Shepherd-IPS installieren Sie mit folgendem Kommando:
sudo apt install nmap python3 python3-pip apache2 ssmtp mailutils git screen aircrack-ng bc raspberrypi-kernel-headers dkms
Schritt 3 – Treiber für WLAN-USB-Adapter (wlan1) installieren
Das installierte Betriebssystem erkennt den verwendeten USB-WLAN-Adapter (wlan1) nicht automatisch. Daher installieren wir die notwendigen Treiber aus Github.
cd /home/pi/
git clone -b v5.6.4.2 https://github.com/aircrack-ng/rtl8812au.git
cd rtl*
Nun muss noch die Konfigurationsdatei so angepasst werden, dass sie zu unserer Plattform passt. Führen Sie dazu folgende Befehle aus:
sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/g' Makefile
Jetzt kann es losgehen. Das folgende Kommando richtet den Treiber auf dem Raspberry Pi ein. Hierzu benötigt unserer Zero W eine Menge Zeit. Zeit sich einen Kaffee zu gönnen 🙂 …
sudo make dkms_install
Nach einem Neustart sollte der zusätzliche USB-Adapter als Schnittstelle wlan1 sichtbar sein:
Abschließend konfigurieren wir die Schnittstelle so, dass für den Adapter nicht automatisch eine IP-Adresse aus dem lokalen Netzwerk bereitgestellt wird. Dazu fügen Sie folgende Zeile in die Konfigurationsdatei ein:
sudo nano /etc/dhcpcd.conf
denyinterfaces wlan1
Schritt 4 – Wifi-Shepherd Software und Abhängigkeiten installieren
Das Wifi-Shepherd Repository liegt auf Github vor. Nutzen Sie die folgenden Kommandos und installieren Sie auch die abhängige Software:
cd /home/pi
git clone https://github.com/eaglefn/wifi-shepherd-ips.git
cd wifi-shepherd-ips
git clone https://github.com/maaaaz/nmaptocsv.git
chmod +x *.sh
Schritt 5 – Zusätzliche Komponenten installieren
Das IPS benötigt die Software mdk4 für die Deauthentication bzw. csvkit, um die gefundenen WLAN-Geräte in der Konsole darzustellen.
Wir beginnen mit mdk4. Auf dieser Webseite finden Sie eine gute Anleitung, um die Software von der Quelle zu installieren:
sudo apt-get install pkg-config libnl-3-dev libnl-genl-3-dev libpcap-dev
cd /home/pi
git clone https://github.com/aircrack-ng/mdk4
cd mdk4
make
sudo make install
Die in Python3 geschriebene Sammlung von Tools zur Darstellung von csv-Dateien kann mit folgendem Befehl eingerichtet werden:
sudo pip3 install csvkit
Schritt 6 – Wifi-Shepherd Skript anpassen und Maildienst konfigurieren
Öffnen Sie dazu das Skript wifi-shepherd.conf und nehmen Sie dazu die notwendigen Einstellungen am Kopf des Skriptes vor. Wichtig sind vor allem folgende Parameter:
# Make your settings here!
Wifi_Shepherd_Hostname="raspberrypi.lan"
Wifi_Network="192.168.1.0/24"
EmailReceiver="your@email.com"
Wifi_Essid="Your_SSID"
IPS_Mode=true # set true or false
Der Hostname wird benötigt, um den Wifi-Shepherd selbst bei den Netzwerkscans auszuschließen. Er wird für Ihr System mit folgendem Befehl ermittelt:
hostname -A
Außerdem sind der Netzwerkbereich Ihres WLAN-Netzes und der gewünschte Empfänger der E-Mails anzugeben.
Um E-Mail versenden zu können, müssen Sie über einen entsprechenden Account verfügen. Hier hatten wir bereits die Installation anhand eines Freemail-Kontos bei GMX erläutert.
Setzten Sie die Option IPS_Mode auf false, wenn der Wifi-Shepherd nicht im IPS-Modus laufen soll. In diesem Fall werden keine Angriffe auf neue Geräte durchgeführt, sondern nur entsprechende Informationen als E-Mail versendet.
Schritt 7 – Zeitbasierende Ausführung (Crontab) einrichten
Damit der Wifi-Shepherd kontinuierliche Scans ausführen kann, muss eine entsprechende Anweisung im Cron-Daemon hinterlegt werden. Nutzen Sie das Kommando crontab -e, um die folgenden Zeilen einzufügen. Außerdem werden Einstellungen für Bluetooth nach einem Neustart vorgenommen und zweimal am Tag geprüft, welche Kanäle in Ihrem WLAN genutzt werden.
# Bluetooth available after reboot 180 seconds
@reboot sudo bt-adapter --set Discoverable 1
#Wifi-Shepherd is running all 10 minutes
*/10 * * * * /home/pi/wifi-shepherd-ips/wifi-shepherd.sh
#checks channel configuration in your Wifi-Network at 8:30 am and 8:30 pm
30 8,20 * * * /home/pi/wifi-shepherd-ips/find-channels.sh
# Auto-IPS starts every hour
#0 */1 * * * /home/pi/wifi-shepherd-ips/auto-ips.sh
Entfernen Sie die Raute (#) in der letzten Zeile, wenn das IPS automatisch arbeiten und zu jeder vollen Stunde ein „Angriff“ auf erkannte „Eindringlinge“ durchführen soll. Dies sollte nicht mit dem IPS_Mode verwechselt werden, den wir bereits in Schritt 6 in der wifi-shepherd.conf eingestellt haben.
In diesen Beitrag haben wir gezeigt, wie Sie weitere Veränderungen und Verbesserungen vornehmen können. Diese können selbstverständlich auch in der IPS-Version des Wifi-Shepherd realisiert werden.
Wifi-Shepherd-IPS vom Image installieren und einrichten
Wer Zeit sparen möchte, der kann das Wifi-Shepherd-IPS auch über das bereitgestellte Image installieren. Hier sind alle notwendigen Softwarepakete und Treiber bereits vorhanden. Außerdem sind die Einstellungen für Bluetooth vorgenommen und die Herstellerdatenbank für nmap ist auf dem neusten Stand.
Sobald Sie das Image heruntergeladen und entpackt haben, kann es mit Ihrem favorisiertem Tool auf eine Speicherkarte geschrieben werden. Nachfolgend sind folgende Änderungen/Anpassungen vorzunehmen:
- Eine Verbindung mit ssh oder über Bluetooth zum Raspberry Pi Zero W herstellen: (Nutzername: pi, Passwort: raspberry)
- Mittels sudo raspi-config das Passwort ändern und die lokalen Einstellungen für Sprache und Zeitzone vornehmen. Ggf. die Kapazität der Speicherkarte erweitern.
- Die notwendigen Einstellungen in der wifi-shepherd.conf vornehmen.
- Einen E-Mail Provider einrichten, um die Nachrichten des Wifi-Shepherd empfangen zu können.
- Mittels crontab -e die zeitbasierten Abläufe konfigurieren bzw. freischalten.
- Wer die IPS-Funktion nutzen möchte, der sollte vor dem ersten Angriff mit der Option 3 die Kanäle bestimmen, die in Ihrem Netzwerk aktiv sind.
Getestete Hardware
Der WIfi-Shepherd wurde im vorliegenden Image mit folgenden WLAN-USB-Adaptern getestet:
- AWUS036AC von ALFA-Networks (2,4 und 5GHz)
- TL-WN722N von TP-Link (2,4 Ghz)
Das folgende Video gibt einen kurzen Eindruck über die Funktionsweise:
Servus!
Gute Anleitung, aber a bisserl veraltet…
Anstatt “sudo ./dkms-install.sh” muss es “sudo make dkms_install” heissen.
Ansonsten:
Danke für das schöne Tutorial.
Grüße
Hacklzwerg