Toto je starší verze dokumentu!
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í.
Zda má wpa_supplicant zakompilovánu podporu pro váš chipset zjistíte tak, že program spustíte bez parametrů:
# wpa_supplicant ... drivers: hostap = Host AP driver (Intersil Prism2/2.5/3) prism54 = Prism54.org driver (Intersil Prism GT/Duette/Indigo) atmel = ATMEL AT76C5XXx (USB, PCMCIA) wext = Linux wireless extensions (generic) ndiswrapper = Linux ndiswrapper ipw = Intel ipw2100/2200 driver wired = wpa_supplicant wired Ethernet driver ...
Pokud v seznamu nenajdete ovladač pro váš wifi adaptér, je možné, že adaptér podporuje generický ovladač wext. S tímto ovladačem pracují i nové ovladače pro čipy IPW.
Jednotlivé 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 lokální síť organizace (původně eduroam-simple řešení založené na authentizaci pomocí web formuláře).
Pozor: Toto není úplný konfigurační soubor wpa_supplicant.conf, zde je pouze část, věnovaná eduroam sítím. Pro zprovoznění je většinou ještě potřeba poladit alespoň globální parametr ap_scan.
network={ priority=5 ssid="eduroam" scan_ssid=1 key_mgmt=WPA-EAP eap=PEAP identity="eduroam_jmeno@realm" password="eduroam_heslo" ca_cert="/etc/ssl/certs/cesnet-ca.pem" altsubject_match="DNS:radius1.organizace.cz;DNS:radius2.organizace.cz" phase1="peaplabel=0" phase2="auth=MSCHAPV2" } network={ ssid="organizace" key_mgmt=NONE priority=4 }
K úspěšnému připojení k 802.1x síti eduroam je nutný certifikát certifikační autority, která vydala certifikát RADIUS serveru vaší organizace. Většinou se jedná o CESNET CA, kořenový certifikát je dostupný na stránce zde. Program wpa_supplicant pracuje pouze s certifikáty formátu PEM. Některé organizace používají novou službu SureServer EDU, jejíž kořenový certifikát od společnosti Global Sign už pravděpodobně máte na systému předinstalovaný, případně si jej můžete stáhnout zde.
Abyste měli jistotu, že se připojujete, a především že posíláte své heslo vašemu domácímu RADIUS serveru, musíte uvést direktivu altsubject_match
(Pozor! V řetězci se nesmí vyskytovat mezery). Správné nastavení ověřování identity RADIUS serveru, se kterým váš suplikant komunikuje, je nezbytné pro ochranu vašeho hesla. Věnujte tomu proto náležitou pozornost! Další informace nalezne na stránce „Práce s certifikáty v eduroamu“.
Provozuje-li vaše organizace víc než jeden RADIUS server, je pro správnou funkci nutné používat wpa_supplikant verze minimálně 0.5.6! Předchozí verze nezvládají ověřit více než jeden RADIUS server. wpa_supplikant musí být přeložen s OpenSSL nikoliv GNU TLS.
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 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.
V testing verzi debianu je wpasupplicant balíček ve verzi 0.5.x, který je navázaný na ifupdown skripty (wpasupplicant neběží jako samostatný daemon). Parametry nastavení se očekávají v souboru /etc/network/interfaces, kam stačí přidat:
auto eth1 iface eth1 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
kde eth1 je sítové rozhraní bezdrátového adaptéru a soubor /etc/wpa_supplicant/wpa_supplicant.conf je funkční konfigurace pro wpasupplicant.
Pokud v okamžiku, kdy tento návod čtete, stále není v distribuci k dispozici alespoň verze 0.5.6, můžete si stáhnou balíček pro Debian z apt repository na opf.slu.cz.
Mnoho distributorů Linuxu se stará, aby jejich jádra podporovala co nejvíc zařízení. Hledají a sami aplikují potřebné záplaty pro dosažení nejlepší funcionality. Provozujete-li distribuční kernel, tak prostě vyzkoušejte výše popsané nastavení, je veliká šance, že vám připojení bude fungovat bez potíží.
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. — Ondřej Caletka
Mé zkušenosti s jádrem 2.6.16.9 ukazují, že drivery z vanila kernelu nefungují korektně s 802.1x a WPA, klient se pořád asocijuje, dostává disconnect event a nedokáže dostat žádná data k RADIUS serveru, tedy se nedokáže ověřit. Musel jsem nahradit celý 802.1x subsystém vanila kernelu a následně nahradit drivery pro kartu Intel Pro Wireless 2200BG.
Pokud používáte kernel z distribuce je možné, že toto za vás už udělal někdo z vývojářů. Pokuste se to zjistit v dokumentaci. Testoval jsem také kernel 2.6.17 - byl třeba stejný postup, ale nechodí CDMA modem Eurotelu. V kernelu 2.6.18 zase špatně funguje Suspend 2, takže k 7. 11. 2006 se jeví jako jediný použitelný kernel 2.6.16.9, ve kterém fungují všechny pro mě důležité komponenty. — Jan Tomášek
U vanila jádra není nutné patchovat kernel ovladači z sourceforge.net. Stačí ho správně nakonfigurovat:
— Návod byl převzat od Ondřeje Caletky, původní text je v jeho blogu
— Jan Tomášek 07.06.2006 09:53 vytvoření dokumentu
— Jan Tomášek 18.03.2007 18:18 doplnění informací o certifikátech, doplnění sekce o kernelech
CESNET, z. s. p. o.
Generála Píky 26
160 00 Praha 6
info@cesnet.cz
Tel: +420 234 680 222
GSM: +420 602 252 531
support@cesnet.cz