Raspberry Pi oder alter Rechner

WLAN-Access-Point unter Linux erstellen

Hostapd: Ein WLAN mit Raspberry

Eine andere Methode, einen Access Point aufzubauen, der unabhängig vom Network Manager und der verwendeten Distribution funktioniert, nutzt die Kommandozeilen-Tools hostapd und dnsmasq. Diese Tools stehen auf den meisten Linux-Distributionen bereit, und übrigens auch auf Raspbian für den Raspberry Pi.

Die folgende Anleitung ist für den Raspberry Pi und die Distribution Raspbian gültig; bei anderen System kann es Abweichungen geben.

1. Installieren Sie in Raspbian die benötigten Pakete mit diesem Befehl:

sudo apt-get install hostapd dns masq iw

Die Konfiguration für das Netzwerk-Tool hostapd, das den WLAN-Adapter zum Access Point macht, nehmen Sie in der Datei „/etc/hostapd/hostapd.conf“ vor, die Sie erst einmal erzeugen müssen:

sudo nano /etc/hostapd.conf

Mit dem Editor Nano geben Sie in der Datei folgende Zeilen ein, wobei Sie den Access-Point-Namen mit dem Wert von „ssid=“ und das WLAN-Passwort „wpa_passphrase=“ nach Belieben anpassen:

interface=wlan0

driver=nl80211

ssid=Hotspot

auth_algs=1

ignore_broadcast_ssid=0

hw_mode=g

wpa=2

wpa_passphrase=Passwort

wpa_key_mgmt=WPA-PSK

2. Damit das später als Dämon im Hintergrund laufende hostapd seine Einstellungsdatei findet, müssen Sie deren Pfad noch angeben. Öffnen Sie dazu die Datei „/etc/default/hostapd“ mittels sudo in einem Texteditor, und ändern Sie den auskommentierten Eintrag „#DAEMON_CONF=“ auf folgenden Wert:

DAEMON_CONF="/etc/hostapd.conf"

3. Als Nächstes erstellen Sie eine Konfiguration für den DHCP-Server, den das Tool dnsmasq bereitstellt und WLAN-Teilnehmern nach der Anmeldung eine IP-Adresse zuweist, für die in unserem Beispiel der Adressbereich 192.168.10.1 bis 192.168.10.10 gewählt wird. Öffnen Sie die Datei „/etc/dnsmasq.conf“ wieder über sudo in einem Editor, und tragen Sie am Ende der Datei diese drei Zeilen ein:

interface=wlan0

no-dhcp-interface=eth0

dhcp-range=interface:wlan0,192.168.10.1,192.168.10.10,infinite

4. Access Point und DHCP-Server sind nun vorbereitet. Aber damit das System Netzwerkpakete zwischen dem drahtlosen Netzwerk (wlan0) und dem kabelgebundenen Ethernet (eth0) vermittelt, ist noch das Routing zu regeln. Zuerst schalten Sie dazu im Linux-Kernel die Paketweiterleitung ein. In der Datei „/etc/sysctl.conf“ entfernen Sie dazu das Kommentarzeichen (#) vor diesem Eintrag:

net.ipv4.ip_forward=1

Mit dieser Maßnahme funktioniert die Paketweiterleitung ab sofort nach dem nächsten Boot.

5. Das eigentliche Routing der Netzwerkpakete erledigt iptables, also die im Linux-Kernel integrierte Firewall, die sich per Regeln konfigurieren lässt. Geben Sie diese drei Befehle ein, um die Regeln zu setzen:

sudo iptables -t nat -A POSTROU TING -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 sich das System beim nächsten Start an die Regeln erinnert, schreiben Sie das Regelwerk mit diesem Kommando in die Datei „/etc/iptables.nat“:

sudo sh -c "iptables-save > /etc/iptables.nat"

6. Der WLAN-Adapter, der in Raspbian den Standardnamen „wlan0“ bekommt, braucht eine feste IP-Adresse, um als Access Point zu funktionieren. Editieren Sie dazu die Datei „/etc/network/interfaces“, und ersetzen Sie den Eintrag zum Gerät „wlan0“ mit diesen vier Zeilen:

iface wlan0 inet static

address 192.168.10.254

netmask 255.255.255.0

up iptables-restore < /etc/ipta bles.nat

Die Aufgabe der letzten Zeile ist es, bei Inbetriebnahme der Netzwerkschnittstellen automatisch die Paketweiterleitung über iptables mit dem zuvor gescherten Regelwerk zu starten.

7. Nun ist der Einfachheit halber ein Neustart des Systems mittelssudo reboot nötig, damit die neue Konfiguration des Netzwerks ohne Konflikte mit der bisherigen korrekt eingelesen wird. Läuft der Raspberry Pi wieder, dann starten Sie den Acces Point mit diesen Befehlen:

sudo service dnsmasq start

sudo service hostapd start

Falls der Start von Hostapd mit der Fehlermeldung „hostapd failed!“ scheitern sollte, dann ist ein genauerer Blick auf die Konfiguration in der Datei „/etc/hostapd.conf“ nötig sowie auf die Reaktionen des WLAN-Chips beim Einschalten des Master-Modes. Dies gelingt mit diesem Debug-Befehl:

sudo hostapd -dd /etc/hostapd.conf

Funktioniert alles, so kann der Access Point mit den beiden Kommandos

sudo update-rc.d dnsmasq enable

sudo update-rc.d hostapd enable

schon zum Systemstart aktiviert werden, und ein manueller Start ist dann nicht mehr nötig.

(PC-Welt/ad)