802.1X pomocí wpa_supplicant

Pozor, tento text je extrémně zastaralý (cca. 2006) a nebyl po vydání aktualizován. Aktuální návod najdete na oficiální Wiki českého eduroamu.

Wpa_supplicant je program, který se v linuxu stará o podporu WPA zabezpečení wi-fi sítí. Na rozdíl od programu xsupplicant bývá standardní součástí distribucí, které podporují WPA šifrování a tak je zahrnut i ve standardních spouštěcích skriptech wi-fi rozhraní. Proto je vhodné ho používat pro připojení např. k síti eduroam.

Podporované chipsety

Zda má wpa_supplicant zakompilovánu podporu pro váš chipset zjistíte tak, že program spustíte bez parametrů. Pokud ovladač pro váš chipset není v programu zakompilován, můžete se zkusit podívat na stránky výrobce chipsetu, resp. ovladače, zda je šifrování WPA v chipsetu podporováno a zda je k dispozici patch pro wpa_supplicant, popřípadě zda je WPA podporováno přes generické rozhranní "Wireless Extensions".

Konfigurační soubor

Jednotilvé bedrátové sítě, ke kterým se chceme připojit, se definují v konfiguračním souboru /etc/wpa_supplicant.conf. Je jich možno definovat libovolně mnoho, program se připojí k té, která je dostupná a zároveň má největší prioritu. Následující příklad ukazuje připojení k síti eduroam 802.1X s následným fallbackem na síť eduroam-simple:
network={
priority=5
ssid="eduroam"
scan_ssid=1
key_mgmt=WPA-EAP
eap=PEAP
identity="eduroam_jmeno"
password="eduroam_heslo"
ca_cert="/etc/ssl/certs/cesnet-ca.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}
network={
ssid="eduroam-simple"
key_mgmt=NONE
priority=4
}
K úspěšnému připojení k 802.1X síti eduroam je ještě nutný certifikát CESNET CA. Program wpa_supplicant pracuje pouze s certifikáty formátu PEM.

Připojení

Po uložení konfiguračního souboru můžeme zkusit připojení přes rozhraní wlan0 s generickým ovladačem příkazem
 # wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
Pokud autentifikace proběhla úspěšně, zbývá rozhraní přiřadit IP adresu pomocí DHCP klienta, např. takto:
 # dhcpcd -o wlan0
To je ovšem zapotřebí pouze pokud vaše distribuce nepodporuje wpa_supplicant ve svých spouštěcích skriptech. V opačném případě obvykle stačí upravit konfigurační soubor a spustit bezdrátovou síť spouštěcím skriptem distribuce. Průběh asociace je možné sledovat na příkazovém řádku programem wpa_cli, nebo v grafickém režimu pomocí programu wpa_gui.

Závěr

Popsaný postup byl úspěšně testován na jádru 2.6.16-r1 s MiniPCI kartou Intel Pro Wireless 2200BG, která je součástí balíku Centrino. Ovladač pro tuto kartu je zahrnut přímo v oficiálních zdrojových kódech jádra. I přesto, že IPW2200 má podporu ve wpa_supplicantu, nové verze jaderného modulu pracují pouze přes wireless extensions.