In diesem Tutorial möchte ich euch zeigen wie ihr mithilfe eines WLAN Adapters einen lokalen Webserver einrichtet der über ein eigenes WLAN Netz erreichbar ist. Für ein outdoor Projekt habe ich diese Funktionalität benötigt.
Features:
- eigenständiges WLAN Netzwerk
- Offen/Passwortgeschützt (WPA2)
- optionale Mac-Adressen Beschränkung
Voraussetzung:
- ein Raspberry Pi mit Raspbian (in diesem Tutorial: 2014-01-07-wheezy-raspbian)
- einen Accesspoint fährigen WLAN Stick (für dieses Tutorial: LogiLink WL0084B (Affiliate-Link))
Da der LogiLink WL0084B (Affiliate-Link) einen Ralink RT 5370 Chip verbaut hat, ist dieser auch Accesspoint fähig.
Welcher Chipsatz eurer WLAN Adapter hat könnt ihr mit dem Befehl "lsusb" herausfinden.
Ihr könnt auch einen anderen WLAN Adapter nehmen.
Als erstes solltet ihr euren Raspberry Pi mit dem Tool "sudo raspi-config" konfigurieren.
Wie das funktioniert könnt ihr in dieser FAQ nachlesen: FAQ - Wie konfiguriere ich den Raspberry Pi mit raspi-config?
Es würde ausreichen, nur die Partition zu erweitern. Führt am ende einen Neustart durch.
1. Software installieren
Als erstes installieren wir die benötigte Software (Webserver, PHP, hostpad sowie udhcp)
sudo apt-get update
sudo apt-get install -y lighttpd php5 php5-cgi php5-cli iw hostapd udhcpd
sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod fastcgi-php
sudo chown www-data -R /var/www/
sudo service lighttpd force-reload
Ihr könnt auch apache2 oder nginx installieren. In diesem Tutorial benutzte ich aber lighttpd da es auf dem Raspberry Pi schön flott läuft.
2. Ist mein WLAN Adapter "Accespoint" fähig
Als nächstes prüfen wir ob unser WLAN Adapter überhaupt fähig ist als Accespoint zu fungieren.
Quote
pi@raspberrypi ~ $ iw list | grep AP$
* AP
Wird dort "* AP" angezeigt, ist der Adapter "accesspoint-fähig".
3. DHCP konfigurieren
Nun konfigurieren wir den DHCP Server der die IP-Adressen verteilt.
# Adressbereich
start 192.168.0.2
end 192.168.0.254
# Interface
interface wlan0
remaining yes
#DNS und subnet
opt dns 8.8.8.8 4.2.2.2
opt subnet 255.255.255.0
# Adresse Router
opt router 192.168.0.1
# Leasetime in Sekunden (7 Tage)
opt lease 604800
Display More
Als nächstes sollten wird DHCP aktivieren. Dazu ändern wir die nachfolgende Datei wie folgt.
#DHCPD_ENABLED="no"
4. Netzwerkkonfiguration
Jetzt konfigurieren wir das Netzwerk des Raspberry Pis.
Als erstes weisen wir "wlan0" eine statische IP-Adresse zu. Diese muss identisch mit der IP aus Schritt 3 (# Adresse Router) sein.
Jetzt tragt ihr folgendes in "/etc/network/interfaces" ein:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
Auch hier darauf achten, dass ihr die IP-Adresse korrekt eingebt.
5. hostapd (Accesspoint) konfigurieren
Als nächstes konfigurieren wir den Accesspoint. Ihr könnt entweder die vorhanden Werte anpassen oder alle Zeilen löschen und folgendes eintragen. (Zeilen löschen mit nano: STRG + K)
Wenn ihr ein Passwort geschütztes WLAN Netz erstellen wollt, fügt folgendes hinzu:
interface=wlan0
driver=nl80211
ssid=RPI_AP
hw_mode=g
channel=6
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=dasistgeheim
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
#macaddr_acl=1
#accept_mac_file=/etc/hostapd/accept
Display More
Ein offenes Netzwerk wird so konfiguriert:
interface=wlan0
ssid=RPI_AP
hw_mode=g
channel=6
auth_algs=1
wmm_enabled=0
#macaddr_acl=1
#accept_mac_file=/etc/hostapd/accept
Optional: Mac-Adressen Filter
kommentiert dazu folgende zwei Zeilen in den beiden oben genannten Konfigurationen (hostapd.conf) aus:
Danach legt ihr fest, welchen MAC-Adressen es erlaubt ist sich mit dem Accesspoint zu verbinden:
Ob mit oder ohne WPA Verschlüsselung, solltet ihr bei der Verbindung mit einem Gerät, welches nicht eingetragen ist, folgenden Meldung erhalten:
Was bedeuten diese Werte?
- interface=wlan0 (hier muss das device eures Wlan Sticks eingetragen werden)
- ssid=RPI_AP (Die SSID ist der Name eures WLAN Netzes)
- channel=6 (hier könnt ihr den Channel ändenr, falls notwenig)
- wpa_passphrase=dasistgeheim (hier könnt ihr ein mindestens 8 stelliges Passwort eingeben)
- macaddr_acl=0 (Mac Adressen Filter: 0=Aus 1=An)
- accept_mac_file=/etc/hostapd/accept (Pfad zu Datei mit erlaubten Mac-Adressen)
Ändert folgende Datei wie folgt:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Nun erstellen wir eine PHP Testseite
<?php
echo phpinfo();
?>[/php]
Neustarten der Dienste und anschließend testen:
[code]sudo service hostapd restart
sudo service udhcpd restart
Führt folgende Befehle aus, damit die Dienste nach einem Reboot automatisch gestartet werden.
6. Accesspoint & Webserver testen
Nun startet ihr den Raspberry Pi neu und zieht nach Eingabe dieses Befehls das Netzwerkkabel.
Wenn das Netzwerkkabel nicht gezogen wird, kann es Probleme mit der IP-Vergabe und der Verbindung zum lokalen Webserver geben. Ich habe das Netzwerkkabel nur angeschlossen um den Raspberry Pi zu warten oder um zu programmieren.
Nun loggt ihr euch mit einem Smartphone oder Tablet in den Accesspoint ein.
Jetzt öffnet ihr euren Browser und besucht die Seite "192.168.0.1".
Wenn alles geklappt hat, solltet ihr folgendes sehen.