Einführung
Standardmässig verschlüsselt man heutzutage sein WLAN mit WPA2 PSK. Mit
wpa_supplicant
kann man sich an diesem WLAN authentifizieren. Die
Konfigurationsdatei dafür wird mit wpa_passphrase
generiert.
WLAN Netzwerk finden
Zuerst wird das WLAN-Interface aktiviert (in meinem Fall heisst das Interface
wlan0
):
$ sudo ifconfig wlan0 up
Dann scannt man nach verfügbaren Netzwerken:
$ sudo iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 00:19:CB:03:E7:6A
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=60/70 Signal level=-50 dBm
Encryption key:on
ESSID:"discordia"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
[...]
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
[...]
[...]
Wir sehen, das WLAN mit der ESSID discordia
ist 802.11i/WPA2 Version 1 PSK
verschlüsselt.
Konfiguration generieren
Mit wpa_passphrase
kann man die Konfigurationsdatei generieren. Falls man das Passwort nicht als zweiten Parameter angibt, liest wpa_passphrase
von STDIN
(Tastatureingabe). Am einfachsten schreibt man die Ausgabe direkt in eine Datei:
$ wpa_passphrase discordia | sudo tee /etc/wpa_supplicant.conf.discordia
Nach der Eingabe vom Passwort kann man sich die Konfigurationsdatei anschauen:
$ sudo cat /etc/wpa_supplicant.conf.discordia
# reading passphrase from stdin
network={
ssid="discordia"
#psk="meinpasswort"
psk=129ffd04eefcce833590d91d88b00497584d3feb3d5fd05bc36218b301b978e0
}
Die Kommentar-Zeilen kann man löschen. Diese werden von wpa_supplicant
ignoriert. Vor allem das Passwort in Klartext sollte entfernt werden.
Mit dem Netzwerk verbinden
Um wpa_supplicant
zu testen, startet man wpa_supplicant
im Debugging-Modus:
$ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf.discordia -d
Falls die Verbindung erfolgreich zustande kam, sieht mal folgende Meldung:
[...]
EAPOL authentication completed successfully
[...]
Mit Ctrl-C
beendet man die Verbindung.
Funktioniert die Verbindung, kann man wpa_supplicant
im Hintergrund als Daemon laufen lassen:
$ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf.discordia -B
Mit ps
sieht man gut, dass der wpa_supplicant
im Hintergrund läuft:
$ ps -ef | grep [w]pa_supplicant
root 20405 1 0 16:59 ? 00:00:00 wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf.discordia -B
Das Tool iwconfig
zeigt einem die Verbindung an:
$ iwconfig wlan0
wlan0 IEEE 802.11abgn ESSID:"discordia"
Mode:Managed Frequency:2.437 GHz Access Point: 00:19:CB:03:E7:6A
Bit Rate=54 Mb/s Tx-Power=15 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=49/70 Signal level=-61 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:1 Invalid misc:30 Missed beacon:0
Netzwerk konfigurieren
Jetzt hat man sich aber erst gegenüger dem Accespoint authentifiziert. Eine Netzwerkkonfiguration vom Interface wlan0
ist noch nicht vorhanden. Mit dhclient
kann man sich von einem DHCP-Server die Konfiguration holen:
$ sudo dhclient -v wlan0
Internet Systems Consortium DHCP Client 4.2.3-P2
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/wlan0/58:94:6b:e9:fd:78
Sending on LPF/wlan0/58:94:6b:e9:fd:78
Sending on Socket/fallback
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 10.0.0.20
bound to 10.0.0.23 -- renewal in 34113 seconds.
Die Verbindung ins Internet steht:
$ ping -c 3 google.ch
PING google.ch (173.194.35.24) 56(84) bytes of data.
64 bytes from mil01s16-in-f24.1e100.net (173.194.35.24): icmp_req=1 ttl=56 time=29.3 ms
64 bytes from mil01s16-in-f24.1e100.net (173.194.35.24): icmp_req=2 ttl=56 time=30.1 ms
64 bytes from mil01s16-in-f24.1e100.net (173.194.35.24): icmp_req=3 ttl=56 time=28.2 ms
--- google.ch ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 28.252/29.265/30.199/0.821 ms
Die Netzwerkkonfiguration kann man natürlich auch manuell ohne DHCP herstellen.
Verbindung beenden
Wenn man die Verbindung trennen will, kann man den wpa_supplicant
beenden:
$ sudo pkill wpa_supplicant
Links und weitere Informationen
- Manpage:
ifconfig(8)
: http://linux.die.net/man/8/ifconfig - Manpage:
iwconfig(8)
: http://linux.die.net/man/8/iwconfig - Manpage:
iwlist(8)
: http://linux.die.net/man/8/iwlist - Manpage:
wpa_passphrase:(8)
: http://linux.die.net/man/8/wpa_passphrase - Manpage:
wpa_supplicant(8)
: http://linux.die.net/man/8/wpa_supplicant - Manpage:
dhclient(8)
: http://linux.die.net/man/8/dhclient