DIY Access Point mit dem Raspberry Pi
In diesem Artikel zeige ich euch wie ihr euren Raspberry Pi als DIY Access Point verwenden könnt. Dabei erkläre ich detailliert was ihr alles benötigt und vor allem wie ihr die Software richtig konfiguriert.
Raspberry Pi als DIY Access Point nutzen
Der Raspberry Pi ist einfach ein Alleskönner! Er ist nicht mehr als ein kleiner Computer, durch die richtige Konfiguration und die richtige periphere Hardware kann er in fast jedes andere technische Gerät verwandelt werden. Sei es nun ein Webserver, ein Tablet, ein Handy oder eben einen DIY Access Point. Bevor wir nun aber unseren Pi konfigurieren schauen wir uns näher an, was ein Access Point eigentlich ist und was dieser macht.
Ein Access Point unter der Lupe
Ein Access Point bietet seine Dienste als DHCP Server für WLAN beziehungsweise WIFI Geräte an. Nebenbei verbindet ein Access Point auch mehrere Netzwerke, so dass die Verbundenen Geräte ein gemeinsames Netzwerk oder eine Netzwerkverbindung verwenden können. In der Regel wir der Access Point die verbundenen Geräte über NAT mit dem Internet verbinden. Neben einer stromsparenden Bauweise ist vor allem die Ausfallsicherheit und in letzter Zeit auch die Sicherheit ein immer wichtigeres Thema.
Vorbereitungen
In den nächsten Schritten werden wir uns nun aus dem Raspberry Pi unseren eigenen DIY Access Point für unser WLAN baue. Wir brauchen dafür folgende Dinge:
- Raspberry Pi Modell B oder B+
- WLAN Stick (Wifi Adapter)
- SD Karte mit Raspbian Linux
Wir benötigen unbedingt eines der B Modelle, da wir ja ein Ethernet Kabel unseres LAN Netzwerkes einstecken müssen. Der WLAN Stick sollte funktionieren und schon vorab getestet worden sein. Wie man den Edimax WLAN Stick konfiguriert habe ich bereits in einem anderen Artikel geschrieben.
Der erste Schritt ist nun ein funktionierendes Raspbian Linux zu starten. Dabei sollte bereits das LAN Netzwerk am Ethernetport angeschlossen sein und der WLAN Stick in einem der USB Port stecken. Über den Konsolenbefehl:
ifconfig -a
stellen wir nun sicher, dass sowohl das LAN (eth0) als auch das WLAN (wlan0) funktionieren. Beide Informationen sollten angezeigt werden und bei eingeschaltetem DHCP müsste die eth0 Schnittstelle auch eine IP Adresse haben. Diese werden wir auch benötigen, denn nun müssen wir über das Internet die notwendige Software installieren.
Installation
Unser Access Point benötigt eine Software die neuen Geräten im WLAN eine IP Adresse zuweisen kann. Im Prinzip ist das ein WLAN DHCP Server, dieser funktioniert genau so wie dein Internet Modem. Dieses verteilt über DHCP IP Adresse an die im LAN angesteckten oder WLAN erkannten Geräte.
sudo apt-get install hostapd isc-dhcp-server
Konfiguration
Nachdem die DHCP Server Software installiert ist müssen wir diese noch an unsere Bedürfnisse anpassen. Die Konfiguration Datei öffnen wir wie folgt:
sudo nano /etc/dhcp/dhcpd.conf
Zuerst müssen wir die Zeilen die den Domain Namen definieren entfernen. Das geht am einfachsten in dem wir diese mit einem führenden # Symbol auskommentieren. Die beiden Zeilen sehen nach der Änderung so aus:
#option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org;
Weiter unten finden wir den authoritative Befehl, welcher standardmäßig auskommentiert ist. Diesen benötigen wir, wir entfernen also das # Symbol. Die Zeile sieht nach der Änderung wie folgt aus:
authoritative;
Am Ende der Datei müssen wir nun unsere eigene Netzwerkkonfiguration hinzufügen. Diese sieht beispielsweise so aus:
subnet 192.168.30.0 netmask 255.255.255.0 { range 192.168.30.10 192.168.30.50; option broadcast-address 192.168.30.255; option routers 192.168.30.1; default-lease-time 600; max-lease-time 7200; option domain-name "local"; option domain-name-servers 8.8.8.8, 8.8.4.4; }
Die Datei kann nun gespeichert werden.
In einer weiteren Konfigurationsdatei müssen wir nun definieren auf welchem Interface der DHCP Server aktiv wird. Das geht wie folgt:
sudo nano /etc/default/isc-dhcp-server
dort müssen wir in der letzten Zeile bei INTERFACES= noch „wlan0“ eintragen. Die Zeile nach der Änderung:
INTERFACES="wlan0"
Wieder speichern wir die Datei.
Im nächsten Schritt müssen wir unser WLAN Interface konfigurieren. Dazu definieren wir eine statische IP Adresse. Die Schritte sind wie folgt:
sudo ifdown wlan0 sudo nano /etc/network/interfaces
In der interfaces Konfigurationsdatei von unserem DIY Access Point ist vermutlich bereits eine wlan0 Konfiguration vorhanden. Diese werden wir ersetzen. Vermutlich steht dort auto wlan0:
iface wlan0 inet static address 192.168.30.1 netmask 255.255.255.0
Wir erinnern uns an die Konfiguration des DHCP Servers. Dort haben wir mit option routers 192.168.30.1 die IP Adresse des Routers definiert. Genau diese haben wir nun statisch der WLAN0 Schnittstelle zugewiesen. Mit folgendem Befehl wird der Schnittstelle diese IP Adresse zugewiesen:
sudo ifconfig wlan0 192.168.30.1
Sicherheit
In den folgenden Schritten müssen wir noch die Details der Konfiguration festlegen. Darunter auch mehrere Sicherheitseinstellungen. Um ein Passwortgeschütztes WLAN zu haben gehen wir wie folgt vor. Wir öffnen wieder eine Konfigurationsdatei:
sudo nano /etc/hostapd/hostapd.conf
Ihr könnt folgende Basiskonfiguration hinein kopieren, oder eine eigene Konfiguration basierend auf dieser erstellen:
interface=wlan0 driver=rtl871xdrv ssid=developer-blog hw_mode=g channel=3 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=strenggeheim wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Der Wert ssid ist der Name das WLAN Netzwerks. Dieser kann nach belieben festgelegt werden. Bei wpa_passphrase wird ein WLAN Passwort festgelegt. Da kann man etwas kreativer sein als ich.
Die Konfiguration ist nun erstellt, Linux weiß aber noch nichts davon. Wir müssen den Ort unserer Konfigurationsdatei noch in einer anderen Konfigurationsdatei bekanntgeben:
sudo nano /etc/default/hostapd
Dort kommentieren wir folgende Zeile ein und fügen nach dem Zuweisungsoperator den Namen der Konfigurationsdatei hinzu:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
NAT
Damit auch alle verbundenen Geräte die selbe LAN Verbindung nutzen können müssen wir nun noch NAT konfigurieren. NAT kann man in folgender Konfigurationsdatei aktivieren:
sudo nano /etc/sysctl.conf
am Ende der Datei müssen wir nun folgende Zeile hinzufügen:
net.ipv4.ip_forward=1
Nun ist sichergestellt, dass NAT nach dem booten des Systems aktiviert ist. Wir können NAT natürlich auch sofort aktivieren. Das funktioniert so:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward
Die NAT Kommunikation zwischen den beiden Schnittstellen eth0 und wlan0 müssen wir noch durch folgende Regel definiert:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Damit haben wir die iptables für den aktuellen Betrieb festgelegt. Damit diese auch nach einem Neustart verfügbar sind müssen wir diese noch abspeichern. Das geht mit diesem Kommando:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
die erstellte Datei müssen wir noch in der Konfiguration der Network Interfaces bekanntgeben:
sudo nano /etc/network/interfaces up iptables-restore < /etc/iptables.ipv4.nat
Wir öffnen die Datei und fügen die Zeile ans Ende der Datei an. Speichern nicht vergessen!
DIY Access Point starten
Der DIY Access Point wird nun über folgenden Befehl gestartet:
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Nun sollte das WLAN für alle anderen Geräte sichtbar sein und man kann testen ob man sich mit dem Router verbinden kann. Wenn man sich nun verbinden kann und auch das über LAN verbundene Internet nutzen kann passt die Konfiguration. Gratulation.
Damit der DIY Access Point auch nach einem Neustart funktioniert müssen wir noch das Hostapd Programm als Daemon starten, der auch nach dem Systemstart automatisch läuft:
sudo service hostapd start sudo service isc-dhcp-server start
Sofern beide Deamons erfolgreich gestartet sind müssen wir noch definieren, dass diese auch automatisiert gestartet werden. Das geht so:
sudo update-rc.d hostapd enable sudo update-rc.d isc-dhcp-server enable
Fazit
Es ist möglich aus einem Raspberry Pi und einem WLAN Stick einen voll funktionsfähigen DIY Access Point zu bauen. Dafür sind einige Konfigurationen nötig die ich in diesem Artikel detailliert zeige. Der Raspberry Pi ist im Gegensatz zu anderen Access Points stromsparender. Als weiteren Vorteil hat man ein voll konfigurierbares Linux System. Somit kann man den Access Point nebenbei auch zur Netzwerkanalyse verwenden oder andere Programme darauf laufen lassen.
Habt ihr bereits Erfahrungen mit anderen DIY Access Points gemacht? Wie schlägt sich der Raspberry Pi im Vergleich zu diesen?
root@raspberrypi:/home/pi# /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
Line 2: invalid/unknown driver ‚rtl871xdrv‘
1 errors found in configuration file ‚/etc/hostapd/hostapd.conf‘
Wo ist da das Problem?
abhängig vom eingesetzten WLAN Stick muss man den korrekten Treiber angeben. Offenbar hast du den rtl871xdrv nicht auf deinem System installiert.
Ich benutze den Edimax EW-7811Un.
probiere mal den 8192cu Treiber.
Hab ich gemacht. Funkioniert trotzdem nicht.
WLAN erscheint aber kann mich nicht anmelden.
*Achtung Newbie*
Ich plane einen kleinen Mediaserver mit Access-Point mit einem Raspi aufzubauen.
Dazu will ich raspbmc installieren.
Kann ich mit der Installation auch diesen Access-Point aufsetzen?
Hallo, klar kannst du. du kannst bei Raspbmc auch ganz normal den Desktop nachinstallieren. Du musst nur in die Konsole booten und dort die Befehle eingeben bzw. über einen anderen Rechner mit SSH einloggen.
Prima, danke!