Denne artikel beskriver hvordan man får understøttelse af WPA (Wi-Fi Protected Access) installeret på GNU/Linux. Når du har fulgt anvisninger i artiklen, vil du være i stand til at koble dig på et AP (Access Point), der benytter WPA.
Dokumentet er sidst rettet 06/03-2006
Der knytter sig følgende forudsætninger til anvisningerne i artiklen:
Debian Sarge (Stable) eller Ubuntu Hoary. http://www.debian.org eller http://www.ubuntulinux.org
Madwifi driver for GNU/Linux. http://madwifi.sourceforge.net/ Den anvendte version er madwifi-ng-r1457-20060228
Wpa_supplicant for WPA-understøttelse. http://hostap.epitest.fi/wpa_supplicant/ Den anvendte version er wpa_supplicant-0.4.8
Wifi-radar for håndtering af tilkobling: http://www.bitbuilder.com/wifi_radar/
Artiklen beskriver ikke installation af madwifi driveren, da dette emne er behandlet udførligt af andre. Det er dog en forudsætning, at man har kildekoden til madwifi driveren, for at kunne oversætte wpa_supplicant.
Artiklen omhandler kun WPA-PSK, men wpa_supplicant vil blive oversat med mulighed for at senere benytte EAP-PEAP. For dette må man dog søge information andet steds, da jeg ikke har mulighed for at teste dette.
Forfatter til denne artikel er Michael Rasmussen, og kommentarer, ris og ros kan stiles til følgende adresse: mailto:mir@miras.org
Artiklen er udgivet under "Åben dokumentlicens (ÅDL) - version 1.0" som kan læses på http://www.linuxbog.dk/licens.html. Du har bl.a. herved frit lov til at kopiere dette værk uændret på ethvert medium.
Den nyeste version af dokumentet kan til enhver tid findes her:
html: http://www.datanom.net/artikler/wifi_wpa.html
pdf: http://www.datanom.net/artikler/wifi_wpa.pdf
1. Oversættelse og installation af wpa_supplicant
Først skal du hente source til madwifi: http://snapshots.madwifi.org/madwifi-ng-current.tar.gz, og gemme den i /tmp. Herefter udpakkes source med følgende kommando: tar xzf madwifi-ng-current.tar.gz, og du vil herefter have kataloget madwifi-ng-r1457-20060228 i /tmp. Herefter skal du hente source til wpa_supplicant: http://hostap.epitest.fi/releases/wpa_supplicant-0.4.8.tar.gz gemme den i /tmp. Herefter udpakkes source med følgende kommando: tar xzf wpa_supplicant-0.4.8.tar.gz, og du vil herefter have kataloget wpa_supplicant i /tmp.
Nu er du klar til at oversætte wpa_supplicant-0.4.8. Gå ned i kataloget wpa_supplicant-0.4.8 og opret filen .config (bemærk punktum foran config). Filen skal have følgende indhold:
CONFIG_DRIVER_MADWIFI=y
CONFIG_WIRELESS_EXTENSION=y
CONFIG_EAP_PEAP=y
CONFIG_CTRL_IFACE=y
Denne fil inkluderes i Makefile, og bestemmer hvordan wpa_supplicant bliver oversat. Forklaringer til ovenstående:
CONFIG_DRIVER_MADWIFI siger, wpa_supplicant skal oversættes med understøttelse af madwifi
CONFIG_WIRELESS_EXTENSION siger, wpa_supplicant skal oversættes med understøttelse for iwconfig
CONFIG_EAP_PEAP siger, wpa_supplicant skal oversættes med understøttelse for PEAP. Dette indkluderer også understøttelse for Microsofts MSCHAP version 2
CONFIG_CTRL_IFACE siger, wpa_supplicant oversættes, så man kan anvende klientprogrammer.
Det sidste, der mangler, er en enkelt tilføjelse i Makefile. I linje 9 findes følgende 2 instruktioner:
# Include directories for CVS version
CFLAGS += -I../driver/modules -I../utils -I../hostapd
Umiddelbart efter disse linjer tilføjes: CFLAGS += ../madwifi. Linje 9-11 skal herefter have følgende udseende:
# Include directories for CVS version
CFLAGS += -I../driver/modules -I../utils -I../hostapd
CFLAGS += -I../madwifi-ng-r1457-20060228
Nu skal du blot oversætte wpa_supplicant, og derfor skriver du make.
I kataloget bør du nu have følgende tre eksekverbare filer:
wpa_cli
wpa_passphrase
wpa_supplicant
Før de installeres, skal vi lige ændre ejerskab og gruppe:
Debian
su -c "chown root:root wpa_cli wpa_passphrase wpa_supplicant". Du vil blive afkrævet et password, og det er så meningen, at du skal give password for root.
Ubuntu
sudo chown root:root wpa_cli wpa_passphrase wpa_supplicant. Du vil blive afkrævet et password, og det er så meningen, at du skal give dit eget password.
Filerne installeres på følgende måde:
Debian
su -c "cp wpa_cli wpa_passphrase wpa_supplicant /usr/sbin". Igen vil du blive afkrævet password for root.
Ubuntu
sudo cp wpa_cli wpa_passphrase wpa_supplicant /usr/sbin. Igen vil du blive afkrævet sit eget password.
Nu er du færdig med at oversætte og installere wpa_supplicant, hvorfor kun konfigurationen henstår. Dette kan du læse om i næste kapitel.
2. Konfiguration af wpa_supplicant
Før du kan forsætte, skal du logge dig på som root, hvis du benytter Debian: su -
Herefter skal vi have oprettet filen /etc/wpa_supplicant.conf. Benytter du Ubuntu, opretter du filen ved at starte din editor som root: sudo gedit f.eks.. I filen skal du tilføje følgende:
network={
scan_ssid=0
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
ssid="navn på AP"
psk="meget hemmelig kode"
}
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
Forklaringer til ovenstående:
scan_ssid=0. Du angiver selv ssid. 1 betyder scan
proto=WPA. Du vil anvende WPA. WEP er også en mulighed
key_mgmt=WPA-PSK. Du vil benytte WPA-PSK. EAP-PEAP er også en mulighed
pairwise=CCMP TKIP. Følger af key_mgmt. Anderledes hvis du har valgt EAP-PEAP
group=CCMP TKIP WEP104 WEP40. Følger af key_mgmt. Anderledes hvis du har valgt EAP-PEAP
ssid="navn på AP". Taler for sig selv.
psk="meget hemmelig kode". Nøglen som AP benytter. Denne kan både være ASCII og hexadecimal. Af sikkerhedsmæssige grunde bør nøglen mindst være på 20 tegn.
For at se om alt fungerer, bør du køre følgende kommando:
Debian
wpa_supplicant -c /etc/wpa_supplicant.conf -iath0 -d
Ubuntu
sudo wpa_supplicant -c /etc/wpa_supplicant.conf -iath0 -d
Hvis ikke denne meddelelse udskrives som sidste linje inden wpa_supplicant starter, bør du have en virkende driver: Failed to initialize driver interface. Hvis det virker, vil du se en konstant strøm af informationer på skærmen, da ovenstående kommando starter wpa_supplicant i debug mode.
Før du forsætter, og hvis du benytter Debian, bør du logge dig af som root: gøres ved at skrive kommandoen: exit.
Du har nu installeret og konfigureret driveren, og derfor mangler du blot klienten. Læs mere om det i næste kapitel.
3. Installation af klienten
Dette kapitel forudsætter, du anvender computeren i grafisk mode.
Først skal du hente pakken wifi-radar: http://master.grad.hr/~ivoks/ubuntu/wifi-radar_1.9.4-0ubuntu6_all.deb, at ubuntu indgår i navnet, skal du ikke spekulere på, selvom du benytter Debian. Når du har hentet pakken, installeres den på følgende måde:
Debian
Du skal muligvis installere pakken dhcp3-client. Dette gøres på følgende måde:
su -c "apt-get install dhcp3-client"
su -c "dpkg -i wifi-radar_1.9.4-0ubuntu6_all.deb".
Ubuntu
sudo dpkg -i wifi-radar_1.9.4-0ubuntu6_all.deb.
For at se klienten skal du skrive følgende kommando:
Debian
gksu wifi-radar
Ubuntu
gksudo wifi-radar
Du bør se tilsvarende:
En forklaring til ovenstående:
Wifi-radar gør det muligt at have en række profiler for trådløs opkobling, som du selv definerer ved at vælge New. Du bør dog bemærke, at for hver definition af network du har skrevet i filen /etc/wpa_supplicant.conf, vil wifi-radar lave en tilsvarende profil, som du ikke kan ændre eller slette, men du kan sagtens lave flere, hvis du har forbindelser, der kun anvender WEP, eller er helt åbne.
Som du kan se, har jeg oprettet 2 profiler: En til mit arbejde - CBCAIR, og en profil til mit hjemmenetværk - kastrup. Af andre oplysninger kan du se, at profilen CBCAIR er en åben forbindelse, mens kastrup er en forbindelse, der kræver nøgle - WPA i dette tilfælde. Forbindelser etableres først, når du har markeret den ønskede profil, og klikket på Connect. Forbindelser lukkes ved, at markere den ønskede profil og klikke Disconnect.
Til slut vil jeg anbefale dig, at oprette et link i din taskbar - For Gnome: højre-klik på taskbar og vælg Add to panel (Tilføj panel på dansk). Udfyldes på følgende måde:
Name: WIFI Radar
Command: (debian) gksu /usr/sbin/wifi-radar, (ubuntu) gksudo /usr/sbin/wifi-radar
Type: Application
Icon: Her klikker du, og vælger wifi-radar.png