Raspberry Pi als Router, wie der Titel schon erahnen lässt befassen wir uns hier mit dem Raspberry Pi welchen ich als Router verwenden möchte und natürlich auch hierzu ausrüsten werden.
Warum den Pi als Router? Mein Beweggrund hierfür war, dass mein derzeitiger Router (keine Fritz!box), welchen ich von meinem Telefonanbieter bezogen habe mir eindeutig zu wenig Konfigurationsmöglichkeiten bietet, von zur Verfügung gestellten Updates ganz zu schweigen. Natürlich könnte man nun einfach hergehen und sich eine Fritz!Box zulegen diese ist mir persönlich aber zu teuer. Außerdem hat man mit dem Eigenbau auch noch viel mehr Möglichkeiten diesen zu erweitern und auszubauen.
Hardware
Um den RPi als mobilen LTE Router einsetzen zu können benötigt man außer dem eigentlichen Raspi noch etwas zusätzliche Hardware.
- Netzteil für den Raspberry Pi (habe ich noch)
- Raspberry Pi 3B (habe ich noch )
- Raspberry Pi Gehäuse (habe ich noch)
- microSD Speicherkarte 64GB (habe ich ebenfalls noch)
- USB Stick 128 GB (ebenfalls noch vorhanden)
- USB WLAN Adapter Stick
Der RPi hat zwar ein internes WLAN eingebaut jedoch ist dessen Reichweite sehr begrenzt. Um die WLAN Verfügbarkeit und dadurch die Möglichkeit auch mit mobilen Geräten über den RPi ins internet gehen zu können zu verbessern verwende ich eben einen zusätzlichen Adapter. - Patch Kabel
- Gigabit Switch (unmanaged)
Obwohl der Raspberry Pi 3 nur eine 100 MBit/s Schnittstelle besitzt habe ich mich für einen Gigabit-Switch entschieden da dieser Zukunftssicherer ist. Außerdem, wenn man den RPi 4 oder einen Banana Pi verwenden möchte so bieten diese eine Gigabit Schnittstelle an und kann somit das ganze Potenzial ausnutzen. - LTE Zugang
Für den eigentlichen Internetzugang über das LTE Netz braucht man zumindest natürlich auch noch einen LTE Stick mit entsprechender SIM Karte und einen Datentarif, am besten eine Flatrate. Aber es gibt auch noch andere, etwas kostenintensivere, Möglichkeiten einen LTE Zugang zu ermöglichen.
Alternative Hardware für einen LTE Zugang
- Hierzu kann man auch noch ein 4G/3G LTE HAT Modul verwenden oder aber auch
- 4G/3G/2G/GSM/GPRS/GNSS HAT Modul basierend auf dem SIM7600 Chip. Bei diesem Chip gibt es noch zu beachten, dass es diese Modell für verschiedene Zonen der Erde gibt und zusätzlich ein noch etwas teureres Modell für den Globalen Einsatz. Das Modell für den Globalen Einsatz würde sich für den Marine Bereich z.B. auf Yachten eignen.
Beide dieser Module haben zusätzlich auch noch den Vorteil, dass man zusätzlich zu LTE auch noch eine Standortbestimmung per GPS durchführen kann. Somit würde sich auch die Verwendung als Navigerät ebenfalls hierzu eignen.
Software
Außer der Hardware benötigt man natürlich auch noch Software um den RPi als Router einrichten und betreiben zu können. Glücklicherweise gibt es diese Software kostenlos im Netz.
Betriebssystem
Betriebssystem für den RPi (Raspbian installieren)
Um das Betriebssystem installieren zu können benötigt man zuerst einmal ein so genanntes Image, in meinem Fall, Raspi OS Lite, also ohne zusätzlichen Schnik-Schnak wie Desktop, Office-Software, Multimedia usw., welches man sich von der Homepage herunter laden kann.
Weiters muss man das Image noch auf eine SD Karte installieren. Hierzu gibt es, ebenfalls auf der Homepage von Raspi OS den Raspi OS Imager mit welchem man das Image auf eine der bequemsten Arten auf die SD-Karte bringen kann. Es gibt jedoch auch noch andere Arten das Image auf die SD Karte zu bringen. Meine Art ist für Anfänger vielleicht nicht so komfortabel jedoch lässt sich diese ohne jede zusätzliche Software im Prinzip auf jedem Linux System ausführen. Hierzu wird das Kommando dd verwendet.
Warnung: Wenn man mit dem Kommando dd arbeitet ist unbedingt Vorsicht geboten, denn bei Eingabe eines falschen Pfades könne sie ihr Produktivsystem unweigerlich zerstören!
Hier nur nachfolgend den prinzipiellen Ablauf um das Image auf die SD-Karte zu bringen:
- Image entpacken hierbei wird die ca. 440MB große ZIP Datei entpackt und es entsteht eine etw 1,7 GB große Image-Datei (Buster)
- SD-Karte in den SD Katen Leser und nicht mounten (oder nur mal mounten sich die Gerätebezeichnung z.B. sdc merken und unmittelbar wieder umounten)
- Mit dem
dd
Kommando auf der Kommandozeile das Image auf die Karte kopieren.dd if=/pfad/von/imagedatei.img of=/pfad/zur/sdcard bs=4M
ACHTUNG: während des Kopiervorganges wird auf der Kommandozeile keine Rückmeldung angezeigt. Erst nach Abschluss der Vorganges erscheint eine kurze Zusammenfassung. Unbedingt diese Anzeige abwarten bis das der Eingabeprompt wieder auf der Konsole erscheint.
Auf neueren Systemen kann beimdd
Kommando die Optionstatus=progress
zusätzlich angeführt werden was eine Ausgabe beim Kopiervorgang bewirkt. Anschließend ist ebenfalls auf der Kommandozeile das Kommandosync
auszuführen! Hiermit ist der Kopiervorgang des Images auf die SD-Karte abgeschlossen und wir können dies in den Raspberry Pi einsetzen um den erstmaligen Bootvorgang durchzuführen.
Weiter Software
- DHCP Server mit isc-dhcp-server
- hostapd für das WLAN um damit Access Point's einrichten zu können
- Pi Hole zur Blockierung von Werbung im Lokalen LAN
- SAMBA-Server - als Domain Controller
- WEBMIN für die Konfiguration des RPi
- Printserver mittels CUPS installieren
- iptables als Firewall alternativ dazu UFW
- Proxy Server mit Squid(guard)
- DNS Server mit bind
- CA mit openssl
Raspbian Grundsystem
Bevor es an das eigentliche einrichten der verschiedenen Konfigurationen des Netzwerks geht ist es notwendig das Betriebssystem grundlegend so zu konfigurieren, dass wir problemlos darauf arbeiten können. Da der RPi über das Netzwerk konfiguriert werden soll müssen daher einige Grundlegende Dinge erledigt. werden.
Nach der Installation des Grundsystems ist es unbedingt notwendig die Tastatursprache (de UTF 8), das Tastaturlayout (Deutsch 105 Tasten Intl.), die Zeitzone einzustellen als auch SSH zu aktivieren. Dies geschieht mit dem Befehl sudo raspi-config
hierbei gelangt man auf eine Textbasierte Konfigurationsoberfläche.
Außerdem bietet es sich hierbei auch an, dass man die gesamte Größe der Speicherkarte dem System zur Verfügung stellt. Dies ist unter Advanced Options
und hier unter A1 "Expand Filesystem"
auszuwählen.
Wer will kann auch jetzt gleich den Hostnamen seines Rechners ändern.
Nach dieser ersten getroffenen Einstellung sollte man den SSH Schlüssel neu erstellen da Raspbian mit einem Standard-SSH-Schlüssel nach der Erstinstallation läuft.
SSH richtig aktivieren
- Bestehenden Schlüssel löschen
sudo rm /etc/ssh/ssh_host_*
- Neukonfiguration des ssh Schlüssels
sudo dpkg-reconfigure openssh-server
- SSH am System aktivieren
sudo systemctl enable ssh
- SSH am System starten
sudo systemctl start ssh
Nun sollte ein neuer Schlüssel generiert worden sein und nach einem neuerlichen Einloggen muss dieser auch verwendet werden. Anschließend ist es nun möglich unseren Pi über das Netzwerk weiter zu konfigurieren bzw. auf diesen zuzugreifen ohne dafür unmittelbar vor Ort beim Raspberry Pi sein zu müssen um physisch mit Tastatur und Bildschirm daran arbeiten zu müssen.
Netzwerk
Hier gehen wir an die Einrichtung des Netzwerks entsprechend unserer Hardware Ausstattung. Das sind folgende Komponenten:
- eth0: interner Ethernet Anschluss der RPi's
- wlan0: internes WLAN des RPi's
- wlan1: WLAN Adapter über USB
- eth1: LTE Stick über USB welcher für den Internetzugang benötigt wird.
Genauer werden wir die Einrichtung des RPi Netzwerks im Artikel "Netzwerk am Raspberry Pi einrichten" behandeln.
DHCP
DHCP Server einrichten
Um das Netzwerk verwenden zu können benötigt man Adressen. Diese so genannten Netzwerkadressen werden für gewöhnlich dynamisch von einem DHCP Server vergeben in den meisten Fällen wird dies der Router sein. Da wir unseren RPi als Router konfigurieren wollen muss dieser also auch diese Adressen den einzelnen Netzwerkkomponenten (PC's, Smartphones, Tabletts, Drucker usw.) zuweisen. Hierfür ist ein so genannter DHCP-Server-Dienst notwendig.
Eine detailliertere Anleitung findest du hier: DHCP Server am Raspberry Pi einrichten
WLAN
Nachdem nun der DHCP-Server eingerichtet ist geht es daran die WLAN Zugänge einzurichten damit wir auch Kabellos ins Internet gehen können. Hierzu ist es notwendig den hostapd Dienst zu installieren.
Weiterführende Informationen findest du unter WLAN Hotspot am RaspberryPi einrichten
Firewall
Um für unseren Router eine gewisse Sicherheit gewährleisten zu können benötigen wir eine Firewall. Diese Firewall bewerkstelligen wir mit iptables. Teilweise werden iptables Regeln schon in einzelnen Artikeln angesprochen jedoch bedingt dies immer, dass diese Regeln bei einem Neustart des RPi's verloren gehen. Um dies zu verhindern und somit dauerhaft Firewall-Regeln zu haben die unser Netzwerk absichern müssen diese Regeln gespeichert werden. Wie die Vorgehensweise ist beim Anlegen solcher Firewall Regeln und wie sie abgespeichert werden könnt ihr im nachfolgenden Artikel "Firewall für den Raspberry Pi Router" nachlesen.
Wichtige Dateien
Hier sind zusammengefasst jene Dateien angeführt die bei der Einrichtung eines Routers erstellt bzw. bearbeitet werden müssen.
- /etc/default/isc-dhcp-server Grundeinstellungen zum ISC-DHCP-SERVER
- /etc/dhcp/dhcpd.conf Zur Konfiguration des DHCP Servers. Achtung: Diese Datei nicht mit der /etc/dhcpcd.conf verwechseln!
- /etc/network/interfaces Zur Konfiguration der Netzwerkschnittstellen
- /etc/sysctl.conf Zur Aktivierung von IP-Forwarding.
- /etc/default/hostapd Hier werden die Konfigurationsdateien angegeben die für den Daemon verwendet werden sollen.
- /etc/hostapd/hostapd.conf Zur Konfiguration einer WLAN-Schnittstelle (wenn nur eine vorhanden ist).
- /etc/hostapd/wlan0.conf Konfigurationsdatei für wlan0 Schnittstelle
- /etc/hostapd/wlan1.conf Konfigurationsdatei für wlan1 Schnittstelle
- /etc/services In dieser Datei sind die verschiedensten Ports angeführt die für etwaige Dienste verwendet werden.
Quellen
- Suchbegriff: raspberry pi als lte router
- Betriebssystem Raspberry Pi OS vormals als Raspbian bezeichnet von https://www.raspberrypi.org/downloads.../
- Rasppishop
- Raspberry PI als mobiler Router - Warum ich keine FritzBox mehr verwende!
- Welche Hardware ich für meinen Jupiter-Router verwende (Bytebee)
- Updating and Upgrading Raspberry Pi OS
- Betriebssystem und Software auf dem Raspberry aktualisieren
- https://www.elektronik-kompendium.de/sites/raspberry-pi/1905261.htm
- Schritt für Schritt den Raspberry Pi als Server einrichten
- https://wiki.ubuntuusers.de/Router/
- https://alexatnet.com/wifi-to-ethernet-raspberry-pi-router/
- https://thepi.io/how-to-use-your-raspberry-pi-as-a-wireless-access-point/
- https://snikt.net/blog/2019/06/22/building-an-lte-access-point-with-a-raspberry-pi/
- Raspberry Pi als 3G-Hotspot
- Kleines ABC der Linux Systemwartung