WLAN

WEP ist viel zu unsicher, MAC-Filter lassen sich sogar noch schneller aushebeln - wie also das WLAN-Netzwerk absichern? Die Antwort heißt WPA-PSK (Wi-Fi Protected Access - Pre-Shared Key).
Diese Verschlüsselungsmethode gilt bisher als sicher. Bisher existieren als Angriffsmöglichkeiten lediglich Brute-Force Methoden, die auf einem endlich großen Wörterbuch basierend durch entsprechende Auswahl des Passwortes bzw. des Pre-Shared Keys praktisch unknackbar sind. Die Konfiguration für die WPA-PSK-Verschlüsselung ist unter Linux ungleich aufwändiger als für WEP. Während eigentlich alle WLAN-Karten WEP-Verschlüsselung ermöglichen, können einige ältere Karten nur durch ein Firmware-Upgrade bzw. gar nicht dazu bewegt werden, sich zu einem WPA-verschlüsselten Host zu verbinden.

Wahl des richtigen Treibers

Je nachdem welche Karte man verwendet, gestaltet sich die Installation des Treibers einfacher oder schwieriger. Der günstigste Fall ist dabei, dass man eine Karte verwendet, die nativ von Linux unterstützt wird, wie z.B. der Atheros-Chipsatz durch das madwifi-Projekt. Damit habe ich persönlich sehr gute Erfahrungen gemacht. Aber auch andere Projekte wie beispielsweise linux-wlan-ng unterstützen eine ganze Reihe von Karten.
Leider ist der Normalfall, dass es lediglich Treiber für Windows gibt. Aber anders als in den meisten anderen Fällen, gibt es hier die Möglichkeit diese Treiber auch unter Linux (i386) zu verwenden.

NdisWrapper

Das Projekt NdisWrapper stellt quasi eine Schnittstelle für den Windows-Treiber zum Linux-System dar. Eine Reihe von Karten/Treiber-Kombinationen wird dabei unterstützt. Da es sich um ein generisches System handelt, welches nicht für jeden Treiber eine eigene Unterstützung benötigt, können u.U. auch noch viele weitere Karten/Treiber von NdisWrapper unterstützt werden.

Kurzanleitung NdisWrapper

sudo apt-get install ndiswrapper-utils-1.9

Der Windows-Treiber sollte in ein temporäres Verzeichnis entpackt werden. Möglicherweise befinden sich die Treiber in einer Windows .cab Datei. Um diese zu entpacken kann das Tool “cabextract”

sudo apt-get install cabextract

verwendet werden.

Manchmal handelt es sich auch um eine InstallShield-Datei, die mit einem weiteren Tool “unshield”

sudo apt-get install unshield

entpackt werden kann.

Nach dem Entpacken muss sich irgendwo eine .inf Datei befinden. Diese Datei ist für die Installation zwingend erforderlich.
Installiert wird der Treiber dann mit (Beispiel)

ndiswrapper -i WG511V2.INF

Wenn die Installation geklappt hat, sollte ndiswrapper -l so ähnlich aussehen wie folgt.

wg511v2 : driver installed
 device (11AB:1FAA) present

Wichtig ist dabei das “present”. Das bedeutet, dass die entsprechende Karte für den Treiber auch gefunden wurde.
Damit die jeweiligen Module bei einem Neustart automatisch geladen werden können, kann mit folgendem Befehl

ndiswrapper -m

die Konfiguration für modprobe geschrieben werden.

Nun kann man die Module mit

modprobe wlan0

laden. Besitzt die Karte Status-LED’s, sollte mindestens eine davon blinken oder leuchten.
Damit ist die Konfiguration von NdisWrapper abgeschlossen.

Erzeugen des Schlüssels

Dem Schlüssel sollte man die nötige Aufmerksamkeit widmen, da die derzeit einzige Angriffsmöglichkeit auf WPA eine Wörterbuch-Bruteforce-Attacke ist. Passwörter wie “PeterFährtGerneAuto” sind demnach trotz ihrer Länge ein denkbar schlechter Schlüssel. Ein möglichst zufälliges Passwort kann man mit dem Tool “makepasswd” erzeugen.

sudo apt-get install makepasswd
makepasswd --chars=30

Konfiguration

Um die WPA-Fähigkeiten zu nutzen, muss nun noch das Paket “wpasupplicant”

sudo apt-get install wpasupplicant

installiert sein.

An diesem Punkt sollte der Befehl “iwconfig” ein Ergebnis für wlan0 liefern. Sollte dort für sämtliche Devices “no wireless extensions” stehen, stimmt irgendetwas in der früheren Konfiguration nicht.

Einen Überblick über die existierenden WLAN-Netze (SSID-Broadcasting am Router muss aktiviert sein) kann man sich mit folgendem Befehl verschaffen.

iwlist scan

Das Interface wird nun an der Ubuntu/Debian-üblichen Stelle konfiguriert.

vim /etc/interfaces

Für das Loopback- (lo) und das LAN-Device eth0 sollte sich dort bereits ein Eintrag befinden. Folgende Zeilen müssen nun hinzugefügt werden.

auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid MEINESSID
wpa-ap-scan 1
wpa-proto WPA
wpa-pairwise TKIP
wpa-group TKIP
wpa-key-mgmt WPA-PSK
wpa-psk MEINSCHLÜSSEL

MEINESSID ist dabei natürlich durch die eigene zu ersetzen. MEINSCHLÜSSEL, der zuvor mit makepasswd erzeugt (oder manuell gewählt) wurde, muss vor der Verwendung noch in das ASCII-Format konvertiert werden.

wpa_passphrase MEINESSID MEINSCHLÜSSEL

network={
 ssid="MEINESSID"
 #psk="MEINSCHLÜSSEL"
 psk=fbdcefd4301c4e545c491994b28c860e3e428414cfab6d499e3e91e08445f0a3
}

Die Zeichenkette für “psk” ist nun der eigentliche Schlüssel, der im /etc/interfaces für MEINSCHLÜSSEL eingetragen werden muss.

Für “wpa-driver” muss jetzt, je nach verwendeter Karte, einer der folgenden Namen eingetragen werden.

 wext = Linux wireless extensions (generic)
 hostap = Host AP driver (Intersil Prism2/2.5/3)
 madwifi = MADWIFI 802.11 support (Atheros, etc.)
 atmel = ATMEL AT76C5XXx (USB, PCMCIA)
 ndiswrapper = Linux ndiswrapper
 ipw = Intel ipw2100/2200 driver (old; use wext with Linux 2.6.13 or newer)
 wired = wpa_supplicant wired Ethernet driver
 test = wpa_supplicant test driver

Bei meinen bisherigen Versuchen mit NdisWrapper hat es übrigens nie funktioniert als Treiber “ndiswrapper” zu benutzen. Statt dessen funktioniert “wext” einwandfrei.

Mit

/etc/init.d/networking restart

sollte die WLAN Verbindung aufgebaut werden, dann sollte per DHCP (falls konfiguriert) die automatische Netzwerkkonfiguration ablaufen und die IP-Adresse usw. für wlan0 setzen.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl