wpa Roaming GUI

wpa-roaming ist eine Methode, mit der man drahtlose Netzwerke durchsehen und sich mit ihnen verbinden kann, ohne eine graphische Desktopumgebung zu benötigen, was sehr bequem auf Notebooks ist.

wpasupplicant ist eine Applikation, die nicht nur mit WPA verschlüsselte Netzwerke ansprechen kann, sondern alle drahtlose Netzwerke. In Kombination mit dem "klassischen" /etc/network/interfaces bietet sie eine sehr mächtige Methode, um sich mit Netzwerken zu verbinden, ohne irgendetwas zu tun. Man kann automatisch mit definierten oder allen freien Netzwerken verbunden werden. Und noch bequemer: wenn man das Hotpluggen einer drahtlosen Netzwerkkarte gestattet, wird man während des Hochfahrens des Rechners automatisch mit dem gewünschten Netzwerk verbunden und kann dieses nutzen, ohne dass man in eine graphische Desktopumgebung wie KDE einloggen muss.

Grundlegendes

Um wpa-roaming mit wpasupplicant auch in einer graphischen Desktopumgebung nutzen zu können, müssen zwei Pakete installiert sein:
* wpasupplicant
* wpagui

apt-get update && apt-get install wpasupplicant wpagui

wpasupplicant ist notwendig, wpa-gui ist eine sehr angenehme Ergänzung, um eine graphische Nutzeroberfläche zu haben, mit der man Netzwerkumgebungen und Access Points kontrolliert ansprechen kann.

wpa-gui ohne Netzwerkkonfiguration

Als root fügt man /etc/network/interfaces Folgendes zu (die Bezeichnung der Netzwerkschnittstelle kann anders sein):

allow-hotplug wlan0
iface wlan0 inet manual
  wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Als root erstellt man eine rohe /etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        key_mgmt=NONE
}

Der nächste Schritt sichert wpa_supplicant.conf vor Lesezugriff Dritter. Dies ist aus Sicherheitsgründen notwendig, da sich in dieser Datei geheim zu haltende Schlüssel für den Netzwerkzugang befinden:

chmod 600 /etc/wpa_supplicant/wpa_supplicant.conf

wpa-roaming am Laufen

Voraussetzungen:

* Man stellt sicher, dass der Nutzer Mitglied der Gruppe netdev ist
* Neustart des Netzwerks oder reboot

Der während der sidux-Installation eingerichtete Nutzer ist bereits Mitglied der Gruppe netdev, ein neuer Nutzer muss der Gruppe netdev durch root zugefügt werden.
wpasupplicant wird als root mit diesem Befehl neu gestartet:

wpa_action <interface> reload

In vielen Fällen ist nach dem Aufsetzen einer wpa-roam-Konfiguration ein Neustart des Netzwerkes notwendig. Dies erfolgt mit diesen Root-Befehlen:

ifdown $Netzwerkgerät  ## ein laufendes Netzwerk wird gestoppt
/etc/init.d/network restart  ## die Netzwerkkonfiguration wird neu initiiert - nicht immer nötig
ifup wlan0  ## Namen der drahtlosen Schnittstelle aus /etc/network/interfaces entnehmen, wlan0 ist nur ein (sehr gängiges) Beispiel

Benutzung von wpa_gui

Mit diesem Befehl startet man wpa_gui als Nutzer (man braucht den ganzen Pfad!):

/usr/sbin/wpa_gui

So sieht die Startmaske aus (ohne Daten, die sind im Beispiel schon definiert):

wpa-01

Die Oberfläche zum Verwalten von Netzwerken:

wpa-02

Um ein bekanntes Netzwerk zu nutzen, klickt man auf add und eine neue GUI mit Pulldown-Menüpunkten erscheint (unterstützt werden alle Netzwerkformen: ohne Verschlüsselung, WEP, WPA - man muss nur die korrekten Daten eingeben). Im Anschluss klickt man auch in diesem Fenster auf add:

wpa-03

Oder noch einfacher, man klickt auf scan, um das Netzwerk zu durchsuchen

wpa-04

und doppelklickt auf das gewünschte Netzwerk, um es hinzuzufügen (die Kenndaten werden automatisch übernommen, man muss nur mehr - so man es braucht - das Passwort oder die Passphrase in Text oder Hex eingeben) und klickt auf add:

wpa-05

Wenn alles zur Zufriedenheit funktioniert, kann man die Einstellungen mit File > Save Configuration in die Datei /etc/wpa_supplicant/wpa_supplicant.conf schreiben.

wpa-gui mit Netzwerkkonfiguration

Mit Hilfe von IDString und Priority wird gesteuert, mit welchem Netzwerk man sich bei Hochfahren des Rechners oder Aktivierung der Netzwerkkarte verbindet. Höchste Priorität ist 1000, niedrigste Priorität ist 0. Der IDString muss auch in /etc/network/interfaces eingetragen werden.

Die Syntax für /etc/network/interfaces.

Das erste Beispiel ist bei aktivem DHCP-Server, das zweite ist bei fixer Zuordnung einer IP. Die Daten müssen natürlich an die echten Einstellungen angepasst werden:

# id_str="home_dhcp"
iface home_dhcp inet dhcp

# id_str="home_static"
iface home_static inet static

        address 192.168.0.20
        netmask 255.255.255.0
        network 192.168.0.0

        broadcast 192.168.0.255
        gateway 192.168.0.1
Praktisches Beispiel

Man will automatisch mit meinem Heimnetzwerk verbunden werden, wenn man zu Hause ist. So gibt man diesem Netzwerk den IDString "home" und Priorität "15". Unterwegs will man, dass das Notebook sich automatisch mit jedem verfügbaren freien, nicht mit einem Passwort geschützten Netzwerk verbindet. Diese Aktion erhält den IDString "stalk" und Priorität "1" (sehr niedrig). Zu beachten ist, dass bei letzterer Methode nach Verbindung immer geprüft werden muss, ob diese legal ist und bei offensichtlicher Illegalität muss man die Verbindung sofort trennen.

So sehen die stanzas für dieses Beispiel in /etc/network/interfaces aus:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
# automatically added when upgrading
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
  wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface home inet dhcp
iface stalk inet dhcp

Und so in /etc/wpa_supplicant/wpa_supplicant.conf (SSID und Passwörter sind verändert oder nur erklärt)

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="my_ssid"
        scan_ssid=1
        psk=123ABC  ## Hierher kommt die Passphrase in Hexadecimal-Code!
#       psk="password_in_ascii"   ## optional das Passwort in ASCII-Text
        key_mgmt=WPA-PSK
        pairwise=TKIP
        group=TKIP
        auth_alg=OPEN
        priority=15
        id_str="home"
}

network={
        ssid=""
        scan_ssid=1
        key_mgmt=NONE
        auth_alg=OPEN
        priority=1
        disabled=1   ## unterbindet automatisches Verbinden. Man braucht wpa_cli oder wpa_gui.
        id_str="stalk"
}

Anmerkung: die Option "disabled=1" verhindert, dass man ohne Zutun mit dem erstbesten offenen WLAN verbunden wird. Man muss mit wpa_cli oder wpa_gui entscheiden, dass man sich verbinden möchte. Wer automatisch mit irgendeinem WLAN verbunden werden möchte, nimmt entweder diese Option gar nicht in wpa_supplicant.conf auf oder setzt eine Raute vor die Zeile mit der Option "disabled=1".

WEP-Verschlüsselung

Falls mit WEP verschlüsselte Netzwerke permanent in wpa_supplicant.conf festgehalten werden sollen, ist die Syntax:

network={
	ssid="example wep network"
	key_mgmt=NONE
	wep_key0="abcde"
	wep_key1=0102030405
	wep_tx_keyidx=0
Anmerkungen
1. Einfache Wiederverwertbarkeit

Einmal aufgesetzt, können die Konfigurationsdateien ohne Probleme auf einem anderen Laptop oder PC mit WLAN-Karte weiter benutzt werden. Man kopiert /etc/network/interfaces (die Bezeichnung der Schnittstelle muss eventuell angepasst werden) und /etc/wpa_supplicant/wpa_supplicant.conf auf den anderen Rechner. Man muss danach nichts mehr installieren, nur mehr das Netzwerk und wpasupplicant (neu) starten oder rebooten.

2. Backup

Es ist hilfreich, ein Backup von /etc/network/interfaces und /etc/wpa_supplicant/wpa_supplicant.conf anzulegen, aber man sollte das Backup verschlüsseln, da es vertrauliche Informationen enthalten kann. Man kann dazu mit einem Passwort versehene Archivformate wie 7zip, zip, rar oder andere nutzen.

3. Knöpfchen für wpa_gui

Falls man ein Knöpfchen am Desktop haben möchte, erstellt man dieses ganz einfach durch Rechtsklick auf Kmenü > Internet > wpa_gui: "Eintrag zur Arbeitsfläche hinzufügen".

4. Versteckte SSIDs

Versteckte SSIDs werden erkannt.

Content last revised 09/11/2008 0600 UTC