Die Idee ist eine lokale Cloud, die über WLAN ohne Internetanbindung erreichbar ist, für einen geschlossenen Kreis z.B. Stammtisch oder LUG. Ich möchte hier jedoch nur zeigen, wie man den Raspberry Pi überredet ein eigenes WLAN-Netzwerk aufzubauen.
Hierbei diente der Artikel „Setting up a Raspberry Pi as a Wireless Access Point“ als Vorlage.
Installation
Zuerst werden die Pakete dnsmasq und hostapd auf dem RasPi installiert.
1 |
sudo apt install dnsmasq hostapd |
Beide Dienste sind nach der Installation aktiv und müssen vorerst gestoppt werden.
1 2 |
sudo systemctl stop dnsmasq sudo systemctl stop hostapd |
Im Anschluss wird die feste IP, über die der Raspberry Pi erreichbar sein soll, konfiguriert. Dazu wird über
1 |
sudo nano /etc/dhcpcd.conf |
folgender Eintrag an das Ende der /etc/dhcpcd.conf gesetzt. Der RasPi bekommt die lokale IP 192.168.4.1 zugewiesen, über die der Pi dann später erreichbar sein wird.
1 2 3 |
interface wlan0 static ip_address=192.168.4.1/24 nohook wpa_supplicant |
Nun wird der dhcpcd-Daemon neu gestartet.
1 |
sudo service dhcpcd restart |
Der DHCP-Server wird konfiguriert, indem die DHCP-Range festgelegt wird. Dazu wird via
1 |
sudo nano /etc/dnsmasq.conf |
der entsprechende Eintrag an das Ende der Datei gesetzt. Alle sich einwählenden Geräte bekommen IP-Adressen von 192.168.4.2 – 192.168.4.20 vergeben. D.h. hier wird eine Beschränkung auf max. 19 Geräte festgelegt.
1 2 |
interface=wlan0 # Use the require wireless interface - usually wlan0 dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h |
Nun muss der zuvor gestoppte Deamon wieder gestartet werden.
1 |
sudo systemctl start dnsmasq |
Nun legt man in der mit
1 |
sudo nano /etc/hostapd/hostapd.conf |
neu erstellten Konfigurationsdatei /etc/hostapd/hostapd.conf die Zugangsdaten für das WLAN-Netz fest. Im Beispiel wurde der Frequenzbereich auf g = IEEE 802.11g (2.4 GHz) festgelegt. Die SSID und das Passwort wären in dem Fall dann raspberrypi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
interface=wlan0 driver=nl80211 ssid=raspberrypi hw_mode=g channel=7 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=raspberrypi wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP |
Dem Dienst hosapd muss dies nun noch mitgeteilt werden. Dies erfolgt über
1 |
sudo nano /etc/default/hostapd |
Hier wird die Zeile #DAEMON_CONF gesucht und mit
1 |
DAEMON_CONF="/etc/hostapd/hostapd.conf" |
überschrieben. Nun wird hostapd aktiviert und gestartet.
1 2 3 |
sudo systemctl unmask hostapd sudo systemctl enable hostapd sudo systemctl start hostapd |
Danach wird die Routing-Regel für IPv4 in der /etc/sysctl.conf gesetzt. Dazu wird die Datei mit
1 |
sudo nano /etc/sysctl.conf |
geöffnet und
1 |
net.ipv4.ip_forward=1 |
entkommentiert. Im Anschluss wird die Firewall entsprechend konfiguriert
1 |
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
und dauerhaft in die /etc/iptables.ipv4.nat eingetragen.
1 |
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" |
Abschließend trägt man via
1 |
sudo nano /etc/rc.local |
folgende Zeile
1 |
iptables-restore < /etc/iptables.ipv4.nat |
in die /etc/rc.local vor „exit 0“ ein und startet den RasPi via
1 |
sudo reboot |
neu. Dieser ist dann über die eingerichtete WLAN-Verbindung via SSH mit
1 |
ssh pi@192.168.4.1 |
oder
1 |
ssh pi@raspberry |
erreichbar. Damit sind die Voraussetzungen geschaffen, eine lokale Cloud auf dem Raspberry Pi zu installieren und diese in einem separaten WLAN-Netzwerk verfügbar zu machen.
Hey sehr gut beschrieben und gut erklärt. Ich habe da nur leider das Problem das ich den hostapd nicht starten kann.
Sudo systemctl Start hostapd
Job for hostapd.service failed because the Control process exited with error Code.
Nach „systemctl Status hostapd.service“
So weit ich meine alles gut bis Process:
1749 execstart=/usr/sbin/hostapd -B -P /run/hostapd.pip -B $DAEMON_CONF} (code=exited, Status=1/FAILURE)
Aus der Ferne kann ich leider nicht viel dazu sagen.
Evtl. ein Syntaxfehler in der Zeile um „DAEMON_CONF=…“ in der /etc/default/hostapd? Passiert schnell beim Übertragen.
Habe den selben Fehler. Bekomme noch:
Failed to start Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
Kann mir da wer helfen?
Hi, habe leider den selben Fehler – hat bereits jemand eine Lösung gefunden?
Ich glaube ich habe den selben Fehler, bei mir steht der Driver „n180211“ sei invalid/unknown
Konnte es für mich fixen:
es ist nicht n1 sondern nl
Hallo Frank,
ich weiß nicht, ob das nur ein temporäres Anzeigeproblem via CMS ist, aber ich sehe
„iptables-save > /etc/iptables.ipv4.nat“ anstelle von „iptables-save > /etc/iptables.ipv4.nat“
Danke für den effektiven Beitrag!
Matthias
Hallo Matthias,
da macht anscheinend das Syntax-Highlighting Probleme. Ich werde da nochmal nachbessern.
Danke für die Info!
Ah, im Kommentar sieht man es nicht, da dort die HTML-Umschreibung des „größer als“ interpretiert wird. Nicht so im Code-Tag oben … Sorry, Peanuts.
Das Problem ist nun gefixt! 😉
Hi! Bei uns funktioniert der Firewall-Befehl (mit MASQUERADE) nicht, iptables befehl nicht gefunden – bitte um hilfe
Danke! 🙂
-> Fehler gefunden. mussten iptables installieren mit sudo apt-get install iptables danach hat alles funktioniert. Danke!