WPA-Roaming

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Einführung

wpa-roaming ist eine Methode, mit der man drahtlose Netzwerke durchsehen und sich mit ihnen verbinden kann, ohne eine graphische Desktop-Umgebung zu benötigen, was sehr bequem auf Notebooks ist. Einige Nutzer anderer Linux-Distributionen kennen vielleicht network-manager, der sehr gut aussieht, jedoch einige Nachteile hat:

  • er benötigt eine graphische Nutzeroberfläche
  • es läuft ein Daemon
  • er kann unzuverlässig sein

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 Desktop-Umgebung 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
  • wpa-gui
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.

Eine sehr gute theoretische Einführung und Beispiele für hochkomplexe Konfigurationen in /etc/network/interfaces und /etc/wpa_supplicant/wpa_supplicant.conf bietet unser siduction-Handbuch, während dieser Wiki-Eintrag sich auf die praktische Seite konzentriert: wie wpa-roaming aufgesetzt wird und wie man es gemeinsam mit wpa_gui nutzt.

Auch hier kann man nachschauen (auf Englisch):

  • /usr/share/doc/wpasupplicant
  • /usr/share/doc/wpagui

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
}

Diese Konfiguration erlaubt automatische Verbindung mit jeglichem offenen WLAN. Wer dies nicht möchte, setzt die Option "disabled=1" und kann sich mittels wpa-gui erst dann verbinden, wenn man sich verbinden möchte:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
       key_mgmt=NONE
       disabled=1
}

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 (1)
  • Neustart des Netzwerks oder reboot (2)


1. der bei der Installation von sidux angelegte Nutzer ist Mitglied der Gruppe netdev
2. falls ein Netzwerk aktiviert ist, stoppt man dies nun mit

ifdown <interface>

3. nun aktiviert man das drahtlose Roaming-Netzwerk erstmalig mit

ifup <interface>

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 bei mir halt schon definiert):

621807.png

Die Oberfläche zum Verwalten von Netzwerken:

436162.png

Um ein bekanntes Netzwerk zu nutzen, klickt man auf "add" und eine neueGUI 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":

520391.png

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

482457.png

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":

806554.png

Wenn alles zur Zufriedenheit funktioniert, kann man die Einstellungen mit "File > Save Configuration" in die Datei /etc/wpa_supplicant/wpa_supplicant.conf schreiben. Zu beachten ist, dass dabei alle Kommentarzeilen verloren gehen.

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.

Hier die Syntax für den Eintrag in /etc/network/interfaces, zuerst bei aktivem DHCP-Server, der 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%%

Dazu nun ein Beispiel aus der Praxis. An meinem Notebook will ich automatisch mit meinem Heimnetzwerk verbunden werden, wenn ich zu Hause bin, so gab ich diesem den IDString "home" und Priorität "15". Wenn ich reise, will ich, dass das Notebook sich automatisch mit jedem verfügbaren freien, nicht mit einem Passwort geschützten Netzwerk verbindet. Diese Aktion erhielt 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. In Deutschland kann eine nicht genehmigte Nutzung eines offenen WLAN auch ((http://www.heise.de/newsticker/Gericht-erklaert-Nutzung-eines-privaten-offenen-WLAN-zur-Straftat--/meldung/107969 strafrechtliche Folgen)) haben.

So sehen die stanzas 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  ## Passphrase in Hexadezimal-code!
#       psk="passwort_in_ascii"
       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 Optiongar 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. Es ist "wash & go" (TM). --- ---

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, wenn "scan_ssid=1" im Netzwerkblock gesetzt ist.

5. Algorithmus zur Authentifizierung

Für WPA/WPA2-Verschlüsselung braucht man

auth_alg=OPEN

Für statische WEP-Verschlüsselung kann diese Option im Netzwerkblock nötig sein:

auth_alg=SHARED

Das ist es! Viel Spaß!