Wifi-Shepherd – Teil 2 – Anpassen und erweitern

Im vorangegangenen Artikel haben wir gezeigt, wie Sie den Wifi-Shepherd installieren und einrichten. In diesem zweiten Teil werden wir einige optionale Veränderungen bzw. Verbesserungen vornehmen.

WPA-Passwort von Klartext in eine Passphrase umwandeln
Wifi-Shepherd in ein anderes Netzwerk umziehen
Die Ethernet Mac-Adressen in Nmap aktualisieren
Bluetooth aktivieren und Verbindung mit SSH herstellen

WPA-Passwort von Klartext in eine Passphrase umwandeln

Um den Wifi-Shepherd in unserem WLAN-Netzwerk nutzen zu können, hatten wir in Teil 1 im ersten Schritt die Datei wpa-supplicant.conf erzeugt und das Passwort in Klartext eingegeben. Diese Vorgehensweise ist relativ unsicher, da diese Einstellungen nun auch in der Konfiguration des Wifi-Shepherd als Datei /etc/wpa_supplicant/wpa_supplicant.conf vorliegen.

Mit Hilfe des kleinen Programms wpa-passphrase sind Sie aber in der Lage, das Klartext-Passwort in eine kryptische Passphrase umzuwandeln. Nutzen Sie dazu folgenden Befehl:

wpa_passphrase "SSID" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf > /dev/null

Tragen Sie hier für „SSID“ den Namen Ihres WLAN-Netzwerkes ein. Jetzt müssen Sie noch das Passwort über die Konsole eingeben und danach mit ENTER bestätigen. Die Passphrase wird direkt in die Konfigurationsdatei geschrieben, die Sie mit folgendem Befehl einsehen bzw. bearbeiten können:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Nachdem Sie nochmals geprüft haben, ob das Klartext Passwort richtig ist, können Sie die bereits auskommentierte Zeile löschen und die Datei speichern.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

# reading passphrase from stdin
network={
        ssid="SSID"
        #psk="GutenMorgenDeutschland"
        psk=5e5d56a78391af6ee1dc05e979cc8320701133d0ba61ff4ca82a7aca4b20f65e
}

Wifi-Shepherd in ein anderes Netzwerk umziehen

Wenn Sie Ihren Wifi-Shepherd in einem anderen Netzwerk nutzen möchten, dann müssen Sie nur zwei Dateien anpassen und eine löschen.

Am einfachsten geht es, wenn noch eine ssh-Verbindung zum Wifi-Shepherd (im „alten WLAN“) besteht und Sie die Konfiguration dort ändern können. Öffnen Sie zuerst die Datei wifi-shepherd.sh im Verzeichnis /home/pi/wifi-shepherd und tragen dort den IP-Adressbereich des neuen Netzwerkes ein. Evtl. muss hier auch der Hostname angepasst werden.

Danach gehen Sie wie oben beschrieben vor und erstellen eine Passphrase für das neue Netzwerk und übernehmen diese Einstellungen in die Datei wpa_supplicant.conf

Abschließend löschen Sie die Datei mac_known.txt aus dem Verzeichnis /home/pi/wifi-shepherd.

cd /home/pi/wifi-shepherd
rm mac_known.txt

Nun können Sie den Wifi-Shepherd entfernen und in das neue WLAN überführen. Wenn Sie nicht warten wollen bis das Skript gemäß den Einstellungen in crontab automatisch startet, können Sie es jederzeit in der Konsole ausführen:

/home/pi/wifi-shepherd/wifi-shepherd.sh

Haben Sie dagegen keine Möglichkeit diese Änderung in einem bestehenden WLAN-Netzwerk vorzunehmen, so müssen Sie die Dateien wpa_supplicant.conf und ssh im boot-Verzeichnis der SD-Karte neu anlegen. Gehen Sie dazu wie im ersten Teil beschrieben vor.

Ist dann die Verbindung mit SSH hergestellt, so muss hier auch die Datei mac_known.txt gelöscht und die Konfiguration in wifi-shepherd.sh den neuen Bedingungen angepasst werden.

Die Ethernet Mac-Adressen in Nmap aktualisieren

Dem einen oder anderen ist es vielleicht bei seinen Tests schon aufgefallen – die von Nmap genutzte Datei mit den Mac-Adressen ist nicht auf den neusten Stand. Daher wird in unserer HTML-Seite in der Spalte „MAC_VENDOR“ oftmals ein „Unknown“ ausgegeben, obwohl Online-Anbieter für die angegebene Mac-Adresse den korrekten Hersteller auflisten. 

Um auch die von Nmap genutzten Daten zu aktualisieren, stellen Sie eine Verbindung per ssh zum Wifi-Shepherd her und installieren das Skript von David Tonhofer. Führen Sie dazu folgende Befehle aus:

cd /home/pi/wifi-shepherd
sudo apt install moreutils
git clone https://github.com/dtonhofer/ieee_oui_downloader.git
cd ieee_oui_downloader 
./update_nmap_mac_db.sh

Das Skript lädt die aktuellen Daten von Server standards-oui.ieee.org herunter und speichert diese im Verzeichnis ab. Der Wifi-Shepherd braucht auch hier einige Zeit, bis er alle Daten verarbeitet hat. Ist der Prozess abgeschlossen, so wird die heruntergeladene Datei mit der in Nmap verfügbaren Datei verglichen. In unserem Beispiel wurden 4146 neue Einträge gefunden.

Sie haben außerdem die Möglichkeit die Einträge (siehe Screenshot) miteinander zu vergleichen.

Wer die heruntergeladene Datei anstatt der von Nmap zur Verfügung gestellten Daten nutzen möchte, der geht wie folgt vor:

cd /usr/share/nmap/
sudo mv nmap-mac-prefixes nmap-mac-prefixes.old 
sudo cp /tmp/nmap_oui_processing.1ILJZV/nmap-mac-prefixes .

Das zufällig angelegte temporäre Unterverzeichnis könnte in Ihrem Fall abweichen. Passen Sie den Befehl hier ggf. an. Beim nächsten Scan wird der Wifi-Shepherd die Hersteller in der Tabelle korrekt ausgeben.

Bluetooth aktivieren und Verbindung mit SSH herstellen

Bis jetzt konnten wir uns nur per WLAN auf den Wifi-Shepherd verbinden. Da das Gerät ebenfalls über eine Bluetooth-Schnittstelle verfügt, wäre es natürlich wünschenswert auch hierüber zuzugreifen. Im nächsten Schritt werden wir ein sogenanntes PAN (Personal Area Network) aufbauen, das eine IP-Adresse für den Wifi-Shepherd bereitstellt und somit eine Kommunikation über SSH zulässt.

Die dazu benötigte Software ist schnell heruntergeladen und installiert:

sudo apt-get install bluez-tools

Nun müssen noch 4 Dateien angelegt werden. Kopieren Sie einfach den Inhalt in die entsprechende Datei und speichern diese im angegebenen Verzeichnis ab.

sudo nano /etc/systemd/network/pan0.netdev

[NetDev]
Name=pan0
Kind=bridge

sudo nano /etc/systemd/network/pan0.network

[Match]
Name=pan0

[Network]
Address=172.20.1.1/24
DHCPServer=no

sudo nano /etc/systemd/system/bt-agent.service

[Unit]
Description=Bluetooth Auth Agent

[Service]
ExecStart=/usr/bin/bt-agent -c NoInputNoOutput
Type=simple

[Install]
WantedBy=multi-user.target

sudo nano /etc/systemd/system/bt-network.service

[Unit]
Description=Bluetooth NEP PAN
After=pan0.network

[Service]
ExecStart=/usr/bin/bt-network -s nap pan0
Type=simple

[Install]
WantedBy=multi-user.target

Folgende Befehle richten die Dienste so ein, dass sie automatisch nach jedem Neustart des Wifi-Shepherd bereitstehen:

sudo systemctl enable systemd-networkd
sudo systemctl enable bt-agent
sudo systemctl enable bt-network

Um Bluetooth sofort zu verwenden, starten Sie die Dienste mit folgenden Kommandos:

sudo systemctl start systemd-networkd
sudo systemctl start bt-agent
sudo systemctl start bt-network

Zu Abschluss setzen wir den Parameter „Discoverable“ auf 1. Nun haben Sie 180 Sekunden Zeit, um sich mit dem Wifi-Shepherd zu verbinden. Im Folgenden zeigen wir dies anhand eines Windows 10-PC.

sudo bt-adapter --set Discoverable 1

Wählen Sie auf dem Windows-Desktop „Bluetooth-Geräte hinzufügen“ aus.

In der Auswahl sollte hier nur das Gerät „raspberrypi“ erscheinen.

Verbinden Sie sich mit dem Gerät und rufen danach die Netzwerkeinstellungen auf:

Klicken Sie auf „Bluetooth-Netzwerkverbindung“ und dann auf „Bluetooth-Netzwerkgeräte anzeigen“

Mit Klick über die rechte Maustaste wählen Sie „Verbindung herstellen über:“ an. Danach können Sie über Eigenschaften die TCP/IP Einstellungen vornehmen. Tragen Sie hier eine feste IP-Adresse aus dem Netzwerkbereich 172.20.1.0/24 ein. Als Beispiel haben wir hier 172.20.1.10 gewählt.

Zum Abschluss können Sie sich mit SSH auf den Wifi-Shepherd verbinden. Nutzen Sie dafür folgenden Befehl:

ssh pi@172.20.1.1

Schreibe einen Kommentar

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