Inhaltsverzeichnis:

Raspberry Pi Enterprise Network WiFi Bridge - Gunook
Raspberry Pi Enterprise Network WiFi Bridge - Gunook

Video: Raspberry Pi Enterprise Network WiFi Bridge - Gunook

Video: Raspberry Pi Enterprise Network WiFi Bridge - Gunook
Video: my SUPER secure Raspberry Pi Router (wifi VPN travel router) 2024, Juli
Anonim
Raspberry Pi Enterprise-Netzwerk-WLAN-Bridge
Raspberry Pi Enterprise-Netzwerk-WLAN-Bridge

Von: Riley Barrett und Dylan Halland

Das Ziel dieses Projekts ist es, einem IoT-Gerät wie einem Weemo Smart Plug, Amazon Echo, einer Spielekonsole oder einem anderen Wi-Fi-fähigen Gerät zu ermöglichen, sich mit einem WPA_EAP-Unternehmensnetzwerk zu verbinden, indem ein Raspberry Pi Zero W als Paket verwendet wird Weiterleitungsgerät. Für Geräte, die mit einem Unternehmensnetzwerk verbunden sind, sind zusätzliche Konfigurationsschritte erforderlich, und viele Geräte sind überhaupt nicht kompatibel. Durch die Verwendung einer Wi-Fi-Bridge kann jedes Gerät problemlos auf das Internet zugreifen, indem es eine Verbindung zum Pi herstellt.

Das System kann je nach den Anforderungen des Benutzers entweder auf einer drahtlosen Karte oder auf zwei separaten Karten implementiert werden. Für Systeme, die eine höhere Signalstärke und schnellere Upload-/Download-Geschwindigkeiten erfordern, ist es am besten, eine dedizierte Wireless-Karte zum Hosten des Access Points zu verwenden. Bei Systemen, bei denen Signalstärke und Bandbreite weniger wichtig sind oder bei denen eine kostengünstigere Lösung gewünscht wird, kann jedoch eine einzelne Karte vom Zugangspunkt und der Netzwerkverbindung gemeinsam genutzt werden.

Lieferungen

Raspberry Pi Zero W

Zugriff auf Tastatur und Monitor

Einige Programmierkenntnisse (für Debugging-Zwecke, Raspberry Pi-Setup)

Externer WLAN-Adapter/Dongle (optional)

Schritt 1: Einrichten des Raspberry Pi

Einrichten des Raspberry Pi
Einrichten des Raspberry Pi

Beginnen Sie damit, Ihren Pi an eine Tastatur und einen Monitor anzuschließen (erfordert möglicherweise einen HDMI-Adapter).

Dann können Sie mit der Eingabe des Befehls beginnen:

sudo su

Dadurch wird sichergestellt, dass Sie über die erforderlichen Berechtigungen zum Ändern von Dateien auf dem Pi verfügen.

Jetzt möchten Sie dnsmasq und hostapd mit dem Befehl installieren:

apt-get install dnsmasq hostapd

Sie können nun mit der Einrichtung der WLAN-Bridge beginnen.

HINWEIS - Das folgende Tutorial enthält Informationen für Benutzer, die die einzelne integrierte WLAN-Karte sowohl für den Zugangspunkt als auch für die Verbindung mit dem Netzwerk verwenden. Es ist auch möglich, das System so zu konfigurieren, dass es auf zwei separaten Karten läuft. Suchen Sie dazu einfach in den bereitgestellten Dateien nach den auskommentierten "wlan1"-Zeilen und ersetzen Sie diese durch die benachbarten "ap0"-Zeilen.

Schritt 2: 70-persistent-net.rules

Beginnen Sie damit, die MAC-Adresse Ihres Pi zu finden, indem Sie Folgendes eingeben:

ich dev

Erstellen Sie die folgende Datei:

nano /etc/udev/rules.d/70-persistent-net.rules

und bearbeiten Sie es so, dass es Folgendes enthält

SUBSYSTEM=="ieee80211", ACTION=="add|change", ATTR{macaddress}=="b8:27:eb:c0:38:40", KERNEL=="phy0", / RUN+="/sbin/ iw phy phy0-Schnittstelle Ap0-Typ hinzufügen _ap", / RUN+="/bin/ip link set ap0-Adresse b8:27:eb:c0:38:40"

Diese Datei weist das System an, dem Zugriffspunkt beim Booten ein Gerät zuzuweisen. Hier sollte die MAC-Adresse durch die Ihres eigenen Pi ersetzt werden, den Sie gerade gefunden haben.

(Zwei Wireless-Karten) Diese Datei ist nicht erforderlich, wenn Sie zwei Wireless-Karten verwenden.

Schritt 3: Hostapd.conf

Als nächstes bearbeiten Sie dann die Datei hostapd.conf, indem Sie Folgendes eingeben:

nano /etc/hostapd/hostapd.conf

Ändern Sie die Datei so, dass sie der folgenden Konfiguration entspricht:

ctrl_interface=/var/run/hostapd

ctrl_interface_group=0 #interface=ap0 interface=wlan1 driver=nl80211 ssid=testnet hw_mode=g channel=6 wmm_enabled=0 macaddr_acl=0 auth_algs=1 wpa=2 wpa_passphrase=0123456789 wpa_key_mgmt=WPA-PSMPTwise

Beachten Sie, dass mein Kanal hier auf 6 eingestellt ist, Sie diesen Wert jedoch möglicherweise ändern müssen, damit er dem Kanal entspricht, auf dem wlan0 aktiv ist. In einigen Netzwerken wird der Kanal automatisch geändert, damit der Zugangspunkt zu wlan0 passt, aber dies war nicht meine Erfahrung im Unternehmensnetzwerk. Sie können überprüfen, welche Kanäle aktuell und von welchen Schnittstellen verwendet werden, indem Sie tippen

iwlist-Kanal

(Zwei WLAN-Karten) Kommentieren Sie einfach die Zeile mit wlan1 aus und kommentieren Sie die Zeile mit ap0 aus.

Schritt 4: DNSmasq.conf

Jetzt bearbeiten Sie die Datei dnsmasq.conf:

nano /etc/dnsmasq.conf

Entkommentieren oder fügen Sie die folgenden Zeilen hinzu:

Schnittstelle=lo, ap0

#interface=lo, wlan1 no-dhcp-interface=lo bind-interfaces server=8.8.8.8 domain-needed bogus-priv dhcp-range=192.168.2.100, 192.168.2.200, 12h

Sie können hier Ihr eigenes Subnetz verwenden, wenn Sie möchten, stellen Sie jedoch sicher, dass Sie konsistent sind.

(Zwei WirelessCcards) Entkommentieren Sie die Zeile mit wlan1 und kommentieren Sie die Zeile mit ap0 aus.

Schritt 5: Schnittstellen

Als nächstes müssen Sie die Interface-Datei ändern:

nano /etc/network/interfaces

Auto-Lo

auto ap0 #auto wlan1 auto wlan0 iface lo inet loopback iface eth0 inet dhcp allow-hotplug ap0 #allow-hotplug wlan1 iface ap0 inet static #iface wlan1 inet static address 192.168.2.1 netmask 255.255.255.0 hostapd /etc/hostapd/hostapd.conf allow-hotplug wlan0 iface wlan0 inet dhcp pre-up wpa_supplicant -B -Dwext -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf post-down killall -q wpa_supplicant

Es ist erwähnenswert, dass die wlan0-Schnittstelle nach der Schnittstelle kommen MUSS, an die Sie weiterleiten, sonst funktioniert das System nicht richtig.

(Zwei WLAN-Karten) Entkommentieren Sie alle Zeilen, die wlan1 enthalten, und kommentieren Sie alle aus, die ap0 enthalten.

Schritt 6: Wpa_supplicant.conf

Jetzt ändern Sie die Datei wpa_supplicant.conf unter:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Einige Netzwerke sind anders konfiguriert als andere, daher kann dieser Teil einige Bastelarbeiten erfordern. Hier ist die Datei wpa_supplicant.conf, die es mir ermöglichte, eine Verbindung zum Netzwerk bei Cal Poly herzustellen:

country=USctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="SecureMustangWireless" scan_ssid=1 key_mgmt=WPA-EAP pairwise=CCMP TKIP group=CCMP TKIP eap=PEAP identity="username@ calpoly.edu" password="your_password" phase1="peapver=0" phase2="MSCHAPV2" }

Diese Datei wird verwendet, um wlan0 für die Verbindung mit Ihrem Unternehmensnetzwerk zu konfigurieren. Einige Unternehmensnetzwerke erfordern ein CA-Zertifikat, um eine Verbindung herzustellen. Für das Campus-Netzwerk von Cal Poly ist kein Zertifikat erforderlich, daher habe ich diesen Abschnitt übersprungen, aber Sie können die richtigen Zertifikate einfach herunterladen und mit der Zeile zu Ihrer wpa_supplicant-Datei hinzufügen

ca_cert="/path/to/cert.pem"

Schritt 7: Hostapdstart-Skript

Als letztes muss noch ein Skript geschrieben werden, das beide Schnittstellen startet und die Paketweiterleitung beim Systemstart einrichtet. Erstellen Sie eine Datei namens hostapdstart, indem Sie Folgendes eingeben:

nano /usr/local/bin/hostapdstart

Fügen Sie der Datei Folgendes hinzu

sudo ifdown --force wlan0 && sudo ifdown --force ap0 && sudo ifup ap0 && sudo ifup wlan0

#sudo ifdown --force wlan0 && sudo ifdown --force wlan1 && sudo ifup wlan1 && sudo ifup wlan0 sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24 ! -d 192.168.2.0/24 -j MASQUERADEsudo systemctl restart dnsmasq

Dieses Skript fährt beide Schnittstellen herunter, bringt sie dann in der richtigen Reihenfolge wieder hoch, teilt dem pi mit, dass Sie Pakete von einer Schnittstelle zu einer anderen weiterleiten möchten, und startet schließlich dnsmasq neu, damit die Änderungen wirksam werden.

(Zwei Wireless Cards) entkommentieren Sie die Zeile mit wlan1 und kommentieren Sie die Zeile mit ap0 aus.

Schritt 8: Rc.local

Schließlich möchten wir, dass das System beim Booten des Systems startet, also ändern wir die Datei rc.local, die beim Booten ausgeführt wird:

nano /etc/rc.local

Fügen Sie einfach folgende Zeile am Ende der Datei hinzu:

hostapdstart>1&

Ihre Datei sollte ungefähr so aussehen:

_IP=$(Hostname -I) || trueif ["$_IP"]; then printf "Meine IP-Adresse ist %s\n" "$_IP" fi

hostapdstart>1&

Ausgang 0

Schritt 9: Neustart

Und das ist es! Vorausgesetzt, Sie haben jetzt alles richtig eingerichtet und Ihr WiFi-Dongle ist angeschlossen (falls Sie einen verwenden), müssen Sie Ihren Raspberry Pi einfach mit dem Befehl neu starten:

neustarten

Sobald Ihr Pi erfolgreich neu gestartet wurde, sollten Sie den Namen Ihres Access Points auf jedem Gerät (Telefon, Laptop usw.) sehen können. Sobald Sie sich mit Ihrem angegebenen Passwort verbinden, sollte es Sie direkt mit Ihrem gewünschten Unternehmensnetzwerk verbinden!

Ein besonderer Dank geht an die folgenden Links, die uns eine Idee zur Herangehensweise an dieses Projekt gegeben haben:

  • https://blog.thewalr.us/2017/09/26/raspberry-pi-ze…
  • https://www.raspberrypi.org/forums/viewtopic.php?p…
  • https://www.raspberrypi.org/forums/viewtopic.php?f…

Lassen Sie es uns wissen, wenn Sie Fragen, Kommentare oder Anregungen haben!

IoT-Herausforderung
IoT-Herausforderung
IoT-Herausforderung
IoT-Herausforderung

Zweiter Platz bei der IoT-Challenge

Empfohlen: