Raspberry Pi als WLAN – Router
In diesem Beitrag zeige ich dir die notwendigen Schritte, damit du einen WLAN-Router unter Verwendung von einem Raspberry Pi einrichten kannst. Ursprünglich wollte ich diese Schritte in den Beitrag “Netzwerkanalyse mit Wireshark auf einem Raspberry Pi – Router” unterbringen, allerdings habe ich mich nun aufgrund des Umfanges zu einem Einzelbeitrag entschieden.
Der Rasperry Pi als Router
Die benötigten Hardware-Komponenten
Solltest du den Raspberry Pi nicht über SSH und später eventuell über einen VNC Zugriff steuern mögen, benötigst du zusätzlich zu folgender Aufstellung noch eine Tastatur und Maus. Die Einrichtung eines VNC Server ist unter der aktuellen Raspbian Version 4.4 nicht mehr notwendig, da der RealVNC-Server nun im Betriebssystem integriert ist. Solltest du noch mit einer älteren Version arbeiten, findest du eine Beschreibung zur Installation und Einrichtung in meinem Beitrag “Einrichtung eines VNC Server auf dem Raspberr Pi“. Die Aktivierung des VNC Server unter Raspbian Jessie with Pixel habe ich in diesem Beitrag beschrieben.
Folgende Komponenten habe ich für den Einsatz des Raspberry Pi als Router im Einsatz.
- Raspberry Pi ab Model B, ich habe einen Raspberry Pi 2 Model B im Einsatz, würde allerdings gleich auf den 3er setzen, wenn ich den alten nicht frei gehabt hätte
- Steckernetzteil Micro-USB 5V/3A, die 2,5A Variante ist für diesen Einsatzbereich ausreichend – selbst mit einem 1,2A Netzteil konnte der Aufbau bei mir ohne Probleme betrieben werden
- eine microSHD Class 10 Speicherkarte ab 8 GB, ich verwende für meine Projekte die 16GB Variante
- ein passendes Gehäuse, da ich den RasPi neben meine Router im Dauereinsatz laufen lasse und ihn somit etwas vor Staub schützen kann
- einen TP-Link USB zu LAN Adapter, dieser ist nur notwendig, wenn du neben den WLAN-Geräten auch die LAN-Geräte analysieren möchtest
- einen Netzwerkswitch für den Fall, dass du mehrere Geräte gleichzeitig am LAN analysieren möchtest
- einen WIFI-USB-Adapter, dieser ist allerdings nicht notwendig wenn du einen Raspberry Pi 3 verwendest oder du deine WLAN-Geräte nicht verbinden möchtest
Die Einrichtung des Router
die Grundlage
Der RasPi wird mittels der Onboard Ethernet-Buchse an dein Internetmodem, dies kann natürlich auch ein WLAN-Router sein, angeschlossen. Allerdings soll die Internetverbindung anschließend nicht über WLAN ablaufen, sondern über die vorhandene LAN-Verbindung erfolgen. Als Betriebssystem installierst du dir das aktuelle Raspbian, eine Beschreibung findest du unter meinen Beiträgen “Raspberry Pi 3 – aus ttyAMA0 wird…” und “Ersteinrichtung des Raspberry Pi“. Hier möchte ich gleich darauf hinweisen, du kannst den Raspberry Pi gleich “Headless” einrichten, also ohne Tastatur, Maus und Monitor und direkt über ein Terminalprogramm konfigurieren.
die Netzwerkeinrichtung
Damit die notwendige Internetanbindung des RasPi über den eigenen Ethernet-Anschluss (eth0) erfolgen und er die notwendige DHCP-Konfiguration über das angeschlossene Modem beziehen kann, muss die Netzwerkkonfiguration der Datei /etc/network/interfaces angepasst werden. Zuvor installierst du allerdings noch das für die Weiterleitung bzw. Bereitstellung des Internets am WLAN- und dem zweiten LAN-Anschluss notwendige Bridge-Paket. Die Installation erfolgt über das Terminal mit dem Befehl:
1 |
sudo apt-get install bridge-utils |
Damit die an den Adaptern zur Verfügung gestellten Anschlüsse (eth1 und wlan0) an den Ethernet-Port weitergeleitet werden können, müssen in der Netzwerkkonfiguration diese zu einer Bridge zusammengefasst werden. Hierzu rufst du nun über das Terminal die notwendige Datei im Texteditor auf.
1 |
sudo nano /etc/network/interfaces |
Die Datei passt du nun entsprechend an, dabei dienen die Kommentierungen (#) nur der Erklärung und sind nicht notwendig.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Onboard Ethernet-Anschluss # automatischer Bezug der DHCP Konfiguration auto eth0 iface eth0 inet dhcp # die manuelle Einrichtung von WLAN und LAN-Adapter festlegen iface wlan0 inet manual iface eth1 inet manual # Konfiguration der Bridge auto br0 iface br0 inet static #Festlegung der verwendeten Anschlüsse bridge_ports eth1 wlan0 #eigene Verbindungsdaten address 192.168.0.1 netmask 255.255.255.0 |
Die vergebene IP-Adresse von 192.168.0.1 kannst du beliebig anpassen, allerdings ist darauf bei der Anpassung der Konfigurationsdatei des DHCP-Servers zu achten.
der WLAN-Access-Point
Damit der Raspberry Pi als Access Point arbeitet, ist die Installation des hostapd Paketes notwendig. Danach legst du die Konfigurationsdatei über folgenden Befehl im Terminal an.
1 |
sudo apt-get install hostapd |
Danach schreibst, bzw. kopierst du dir folgende Zeilen in die leere Konfigurationsdatei hostapd.conf. Der Aufruf erfolgt mit:
1 |
sudo nano /etc/hostapd/hostapd.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
interface=wlan0 bridge=br0 #driver=rtl871xdrv driver=nl80211 ssid=raspi-hotspot hw_mode=g channel=8 auth_algs=3 wpa=1 #wpa=2 wpa_passphrase=******** wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP |
Solltest du nicht den Raspberry Pi WLAN-Adapter verwenden, sondern zum Beispiel den EDIMAX EW-7811UN Wireless USB Adapter findest du in meinem Beitrag “Wireless Access Point auf dem Raspberry Pi einrichten” weitere Informationen zur Einrichtung.
Die Bezeichnung “raspi-hotspot” unter ssid kann von dir frei gewählt werden und ist der Name des Access Point zum Verbindungsaufbau. Das Passwort, wpa_passphrase=********, muss mindestens 8 Zeichen ein.
Damit die Access Point Software immer beim Systemstart des Raspberry Pi geladen und ausgeführt wird, passen wir die hostapd Datei mit unserem Texteditor an.
1 |
sudo nano /etc/default/hostapd |
Die Anpassung erfolgt in der zehnten Zeile, die Datei sieht danach so aus.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# Defaults for hostapd initscript # # See /usr/share/doc/hostapd/README.Debian for information about alternative # methods of managing hostapd. # # Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration # file and hostapd will be started during system boot. An example configuration # file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz # DAEMON_CONF="/etc/hostapd/hostapd.conf" # Additional daemon options to be appended to hostapd command:- # -d show more debug messages (-dd for even more) # -K include key data in debug messages # -t include timestamps in some debug messages # # Note that -B (daemon mode) and -P (pidfile) options are automatically # configured by the init.d script and must not be added to DAEMON_OPTS. # #DAEMON_OPTS="" |
der DHCP- und DNS-Server
Damit die Netzwerkeinstellungen der mit unserem Raspberry Pi verbundenen Geräte nicht manuell erfolgen müssen, installieren wir einen DHCP- und DNS-Server. Dies erfolgt über den Befehl:
1 |
sudo apt-get install dnsmasq |
Danach rufst du die Konfigurationsdatei mit folgenden Befehl auf.
1 |
sudo nano /etc/dnsmasq.conf |
Die Datei ergänzt du nun am Ende mit folgenden zwei Zeilen.
1 2 |
interface=br0 dhcp-range=192.168.0.10,192.168.0.150,24h |
Die Angabe interface=br0 ist notwendig, da sonst alles Netzwerkschnittstellen vom Dienst bedient werden. Die Konfiguration bzw. Festlegung von br0 ist in der Datei interfaces unter Netzwerkeinrichtung erfolgt. Der Adressbereich der zu vergebenden IP-Adressen wird mit dem Befehl dhcp-range festgelegt. Achte hier auf die bei der Bridge-Einrichtung festgelegten IP-Adresse.
die Paketweiterleitung
Damit die Weiterleitung der Datenpakete von unseren verbundenen Geräten ins Internet funktioniert, müssen wir die Paketweiterleitung für IPv4 und IPv6 aktivieren. Dies ist notwendig, da Linux standardmäßig keine Datenpakete von einem Netzwerk in ein anderes weiterleitet. Die Aktivierung der Weiterleitung, engl. Forwarding, geschieht mit folgenden Einträgen in der Datei sysctl.conf.
Aufruf der Datei erfolgt mit:
1 |
sudo nano /etc/sysctl.conf |
danach musst du die Kommentierungszeichen (#) bei
1 2 |
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 |
und bei
1 2 3 4 |
# Uncomment the next line to enable packet forwarding for IPv6 # Enabling this option disables Stateless Address Autoconfiguration # based on Router Advertisements for this host net.ipv6.conf.all.forwarding=1 |
entfernen.
die RasPi Firewall konfigurieren
Damit der Raspberry Pi als Router und der Datenverkehr vom Internet auf die verbundenen Geräte funktioniert, muss nun noch die Adressänderung, bezeichnet als NAT, konfiguriert werden. Hierzu benötigen wir den Befehl iptables, der zur Steuerung der Firewall-Funktion des Linux-Kernels notwendig ist. Die Konfigurierung erfolgt über folgenden Befehl, den du über das Terminal ausführst.
1 |
sudo iptables -t nat -A POSTROUTING \-o eth0 -j MASQUERADE |
Damit man die Einstellung nicht bei jedem Neustart des RasPi erneut eingeben muss, installieren wir das Paket iptables-persistent. Bei der Installation erfolgt ein automatischer Start, hier lassen wir die Speicherung der aktuellen Firewall-Konfiguration zu. Solltest du weitere Regeln zu deiner Firewall hinzufügen und diese beim Neustart auch automatisch ausführen wollen, rufst du über das Terminal mit folgendem Befehl zur Speicherung auf.
1 |
dpkg-reconfigure iptables-persistent |
Weiterführende Beschreibung zu hierzu findest du zum Beispiel in dem Beitrag “Iptables Firewall Regeln dauerhaft speichern” im Wiki von Thomas-Krenn.AG.
Nach einem Neustart des Raspberry Pi sollte dir nun ein voll funktionsfähiger Router zur Verfügung stehen.
Anmerkungen und Hinweise
Mit dieser Konfiguration erfüllt der RasPi nun die Anforderungen an einen WLAN-Router und kann somit zum Beispiel in Verbindung mit einem Kabelmodem ohne bzw. deaktivierter WLAN-Verbindung betrieben werden. Auch wäre der Einsatz als Gäste-Hotspot umzusetzen, so kann man sein privates Netzwerk geschlossen halten und trotzdem einen Internetzugang bieten.
Allerdings sollte bei der Überlegung eines dauerhaften Einsatzes des Rasperry Pi als Router bedacht werden, die Leistung des Datendurchsatzes am Raspberry Pi ist baulich bedingt niedrig und eignet sich daher weniger um mehrere Geräte gleichzeitig mit Daten (z.B. Streaming-Angebote usw.) zu versorgen. Allerdings ist die Leistung für ggf. die Analyse oder das Anbieten eines kostenlosen Netzes durchaus ausreichend.
Hallo.
Danke für das prima Tutorial.
Allerdings würde ich gerne die Internetverbindung anschließend über LAN oder WLAN ablaufen lassen können. Da der Internetzugang (z.B. Ferienwohnung in Frankreich) nur per WLAN mit RadiusServer-Login zur Verfügung steht.
Also RasPi3B+ mit zusätzlichen LAN (USB2LAN) und zusätzlichem WLAN-Stick.
OnBoard LAN und WLAN für den AP!
Ext. USB2LAN und WLAN-Stick für den Internetzugang.
Kannst du mir da vielleicht die nötigen Änderungen aufzeigen?
Cu, Kaiu
Hallo,
im Grunde musst du nur einen WLAN-Stick zusätzlich als WLAN1 einbinden. Die Lösung eines ähnlichen Szenarios wie von dir beschrieben habe ich in meinem Beitrag “RasPi mit Access Point und zweitem Stick im Heimnetzwerk” beschrieben.
Viele Grüße
Wolfgang
Hallo Wolfgang,
vielen dank für dieses ausführliches Tutorial.
Ich würde Ihnen gerne ein paar Fragen hierzu stellen würde diese aber gerne per Email senden, da es ein bisschen spezieller ist.
Haben Sie eine Kontakt Adresse für mich?
Hallo Paul,
vielen Dank für Deine Nachricht.
Die Fragen kannst Du mir gerne per Mail oder Kontaktformular senden. Gehe hierzu bitte auf die Kontaktseite.
Viele Grüße
Wolfgang
Vielen Dank für dieses tolle Tutorial! Ich habe lange versucht nur hostapd und dnsmasq zu verwenden und alles weitere über iptables festzulegen, was weitaus aufwendiger ist. Der Tipp mit bridge-utils und iptables-persistent rettet mir gerade die Woche!
Hallo Christian,
vielen Dank für Deinen Kommentar. Es freut mich, wenn mein Beitrag hilfreich sein konnte.
Viele Grüße
Wolfgang
Kleiner Hinweis, alle Kommentare werden moderiert.
Dies bedeutet, der Kommentar wird vor der Veröffentlichung durchgelesen und von mir geprüft. Auch behalte ich mir vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen.
Neuste Beiträge
Kleinen Spickzettel für Raspbian OS Befehle
Entdecke die Welt von Webnist.de
Erfahre mehr über die Hintergründe meines Blogs und wie ich dich bei deinen digitalen Projekten unterstützen kann.Kategorien
KATEGORIEN
Aktuelles Video auf YouTube
Beschreibung der Verwendung eines TTP223B Touch Sensors am GPIO Port des Raspberry Pi mit Python.
Die aktuell 6 derzeit meistbesuchten Beiträge
Beiträge mit den meisten Kommentaren
Funktional Immer aktiv
Vorlieben
Statistiken
Marketing