Wifi-Shepherd als Intrusion Protection System einrichten

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:

  1. Eine Verbindung mit ssh oder über Bluetooth zum Raspberry Pi Zero W herstellen: (Nutzername: pi, Passwort: raspberry)
  2. Mittels sudo raspi-config das Passwort ändern und die lokalen Einstellungen für Sprache und Zeitzone vornehmen. Ggf. die Kapazität der Speicherkarte erweitern.
  3. Die notwendigen Einstellungen in der wifi-shepherd.conf vornehmen.
  4. Einen E-Mail Provider einrichten, um die Nachrichten des Wifi-Shepherd empfangen zu können.
  5. Mittels crontab -e die zeitbasierten Abläufe konfigurieren bzw. freischalten.
  6. 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:

Wifi-Shepherd mit Intrusion Prevention

1 Gedanke zu „Wifi-Shepherd als Intrusion Protection System einrichten“

  1. 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

    Antworten

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Diese Seite verwendet Cookies, um die Nutzerfreundlichkeit zu verbessern. Mit der weiteren Verwendung stimmst du dem zu.

Datenschutzerklärung