Základní průvodce pro zprovoznění bezdrátu - WiFi
Vzhledem ke komplexnosti prává dodává aptosid pouze dfsg-svobodný software. Projděte si prosím tento odkaz pro další informace týkající se nesvodobných zdrojů firmwaru.
Pro zprovoznění WiFi potřebujete jen na chvíli drátové připojení, abyste stáhli potřebný firmware.
Jestli není možné zařídit drátové připojení, budete muset umístit firmware na přenosné zařízení (usb-klíč například) a nainstalovat jej odtud jako root pomocí:
#dpkg -i <firmware.deb>
Abyste zjistili vhodný firmware, aniž znáte výrobce nebo značku čipu vašeho beztrátu, tak použijte následující příkaz:
#fw-detect
To vám poskytne následující informace:
#apt-get update #apt-get install <název_firmwaru> #modprobe -r <název_modulu> #modprobe <název_modulu>
Použijte řádek s příkazem apt-get install, který vám příkaz fw-detect nabídl. Potom, co je aktualizováno, je třeba spustit další příkazy v konsoli, než bude možné nakonfigurovat zařízení.
Nyní musíte načíst modul, aby bylo možné nakonfigurovat zařízení.
Jako root napište do konsole:
modprobe -r <název_modulu> modprobe <název_modulu>
<název_modulu> využívá informace, které vám předložil fw-detect. Můžete zde uplatnit užitečnou funkci v konsoli: bash dokončování:
Pokud napíšete jen prvních pár znaků od <název_modulu> a pak stisknete klávesu TAB, bude za vás doplněn název modulu (například: modprobe ipw TAB klávesa). Také to umožňuje se vyhnout přepisu.
Oba příkazy modprobe vás neinformují výstupem o úspěchu, takže pokud se objeví opět normální řádka, modul se správně načetl.
Můžete to zkontrolovat pomocí:
#lsmod | grep <modul>
Nyní v K-Menu - Internet spusťte Ceni nebo jej spusťě z konsole jako root pomocí Přístup online - Ceni. Vaše bezdrátové zařízení WiFi by již mělo být vidět a připravo ke konfiguraci.
Pro nastavení Wlan WiFi GUI (grafické rozhraní) konzultujte WiFi - roaming WPA-GUI
Operační módy ve wpasupplicant pro Debian
Vzhledem ke složitosti práv dodáváme pouze dfsg-svobodný software. Projděte si prosím tento odkaz pro další informace týkající se nesvodobných zdrojů firmwaru.
Balíček wpasupplicant v Debianu nabízí dva (2) vhodné operatiční módy, které jsou úzce integrovány do jádra síťové infrastuktury: ifupdown.
Co je pokryto
1. Upřesnění backendu pro ovladač wpa_supplicant
* Tabulka podporovaných ovladačů
* Běžná doporučení pro ovladače
2. Mód #1: Spravovaný mód
* Příklady
* Tabluka běžných voleb
* Důležité poznámky o Spravovaném módu
* Jak to funguje
3. Mód #2: Roaming mód
* wpa_supplicant.conf
* /etc/network/interfaces
* Ovládání Roaming démona pomocí wpa_action
* Vyladění nastavení Roamingu
* Log soubor
* Použití externích mapovacích skriptů (např. guessnet)
* /etc/network/interfaces s externím mapováním
4. Řešení problémů
* Skrytý ssids
5. Bezpečnostní otázky
* Nastavení přístupových práv pro soubory
1. Upřesnění backendu pro ovladač wpa_supplicant
Backend wext ovladače bude použit pro všechna zařízení, která explicitně nenastaví 'wpa-driver' pro typ ovladače potřebný pro dané zařízení. Uživatelé linuxového jádra 2.4 nebo 2.6 nižšího než 2.6.14 budou muset upřesnit typ wpa-driver.
Podporované ovladače
Ovladač | Popis |
---|---|
wext | Linux wireless extensions (generic) [Bezdrátové rozšíření Linuxu] |
Běžná doporučení pro ovladače
Intel Pro Wireless adaptéry (ipw2100, ipw2200 and ipw3945) použivájí všech backend 'wext', pokud však vaše jádro není starší jak 2.6.14
Madwifi podporuje jak 'wext', tak 'madwifi' backendy ovladačů. 'wext' je upřednostňován, ačkoliv 'madwifi' může v některých příadech pracovat lépe.
Ndiswrapper JIŽ DÁLE NEPODPORUJE backend ovladače 'ndiswrapper' od verze 1.16. To znamená, že je potřeba použít 'wext', pokud ovšem nepoužíváte starodávné vydání ndiswrapperu.
Nastavte typ ovladače ve strofě interfaces(5) pro vaše zařízení s volbou 'wpa-drivfe:
iface eth0 inet dhcp wpa-driver wext . . . . . další volby
2. Mód #1: Spravovaný mód
Tento mód podporuje možnost navázat spojení přes wpa_supplicant s jednou známou sítí. Je to podobné tomu, jak funguje balíček wireless-tools. Každá součást potřebná pro navázání spojení přes wpa_supplicant má předponu 'wpa-' a následuje ji hodnota, která bude použita pro danou součást.
Příklad wpa.conf souboru módu #1 wpa.conf - Příklad 1.
POZNÁMKA: hodnota 'wpa-psk' je platná pouze pokud:1. se jedná o řetězec prostého textu (ascii) o délce mezi 8 a 63 znaky
2. se jedná o hexadecimální řetězec o délce 64 znaků
# Connect to access point of ssid 'NETBEER' with an encryption type of # WPA-PSK/WPA2-PSK. It assumes the driver will use the 'wext' driver backend # of wpa_supplicant because no wpa-driver option has been specified. # The passphrase is given as a ASCII (plaintext) string. DHCP is used to # obtain a network address. # iface wlan0 inet dhcp wpa-ssid NETBEER # plaintext passphrase wpa-psk PlainTextSecret # Connect to access point of ssid 'homezone' with an encryption type of # WPA-PSK/WPA2-PSK, using the 'wext' driver backend of wpa_supplicant. # The psk is given as an encoded hexadecimal string. DHCP is used to obtain # a network address. # iface wlan0 inet dhcp wpa-driver wext wpa-ssid homezone # hexadecimal psk is encoded from a plaintext passphrase wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f # Connect to access point of ssid 'HotSpot1' and bssid of '00:1a:2b:3c:4d:5e' # with an encryption type of WPA-PSK/WPA2-PSK, using the the 'madwifi' driver # backend of wpa_supplicant. The passphrase is given as a plaintext string. # A static network address assignment is used. # iface ath0 inet static wpa-driver madwifi wpa-ssid HotSpot1 wpa-bssid 00:1a:2b:3c:4d:5e # plaintext passphrase wpa-psk madhotspot wpa-key-mgmt WPA-PSK wpa-pairwise TKIP CCMP wpa-group TKIP CCMP wpa-proto WPA RSN # static ip settings address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 # User supplied wpa_supplicant.conf is used for eth1. All network information # is contained within the user supplied wpa_supplicant.conf. No wpa-driver type # is specified, so wext is used. DHCP is used to obtain a network address. # iface eth1 inet dhcp wpa-conf /path/to/wpa_supplicant.conf
Tabulka běžných voleb
Krátký souhrn běžných voleb 'wpa-', které mohou být použity ve strofě /etc/network/interface pro bezdrátové zařízení. Podívějte se na sekci 'Důležité poznámky o Spravovaném módu' pro ívce informací o správných a nesprávných hodnotách 'wpa-'.
POZNÁMKA: VŠECHNY hodnoty jsou CASE SeNsItVe
Součást Příklad hodnoty Popis ======= ============= =========== wpa-ssid prostyretezectextu nastaví ssid vaší sítě wpa-bssid 00:1a:2b:3c:4d:5e bssid vašeho AP wpa-psk 0123456789...... váš předsdílený wpa klíč. Použijte wpa_passphrase(8) pro vygenerování vašeho psk z páru passphrase a ssid wpa-key-mgmt NONE, WPA-PSK, WPA-EAP, seznam akceptovaných hlavních autentifikačních IEEE8021X správcovských protokolů wpa-group CCMP, TKIP, WEP104, seznam akceptovaných šifer pro WPA WEP40 wpa-pairwise CCMP, TKIP, NONE seznam akceptovaných párových šifer pro WPA wpa-auth-alg OPEN, SHARED, LEAP seznam povolených autentifikačních algoritmů IEEE 802.11 wpa-proto WPA, RSN seznam akceptovaných protokolů wpa-identity mojeprostejmeno administrátorem dodané uživatelské jméno (EAP autentifikace) wpa-password mojeprostetextoveheslo vaše heslo (EAP autentifikace) wpa-scan-ssid 0 or 1 nastaví skenování ssid se specifickými Probe Request rámečky wpa-ap-scan 0 or 1 or 2 upraví logiku skenování wpa_supplicant
Kopletní funkcionalita wpa_cli(8) by měla být implementována. Cokoliv chybějícího je považováno za bug a mělo by to tak být hned nahlášeno. Záplaty jsou vždy vítány.
Důležité poznámky o Spravovaném módu
Téměř všechy volby 'wpa-' vyžadují, aby bylo alespoň jedno ssid specifikováno. Jenom některé volby mají globální efekt. To jsou: 'wpa-scan' a 'wpa-preauthenticate'.
Jakákoliv 'wpa-' volba vložená pro zařízení v souboru interface(5) je dostačující k tomu, aby aktivovala démona wpa_supplicant.
Skript wpasupplicant ifupdown předpokládá určitý správný vstup pro 'typ'. Například předpokládá, že některé vstupy jsou prostý text a umístí kolem nich uvozovky, než je přepustí wpa_cli, který pak předá vstup do síťového bloku, který je vytvářen zásuvkou wpa_supplicant ctrl_interface .
Spuštění manuálně ifup s volbou '--verbose' poodhalí všechny příkazy, které jsou použity pro vytvoření síťového bloku přes wpa_cli. Jestli je jakákoliv hodnoty použitá pro wpa-* v /etc/network/interfaces obklopena dvojitými uvozovkami, tak bylo předpokládáno, že se jedná o "prostý text" nebo "ascii" jako typ hodnoty.
Některý vstup je považován za hexadecimální řetězec (například wpa-wep-key*). Avšak hodnoa 'typu' wpa-psk volby je určena pomocí jednoduché kontroly na víc jak jeden hexadecimální znak.
Jak to funguje
Jak bylo zmíněno dříve, každá specifická součást wpa_supplicant má předponu 'wpa-'. Každá součást souvisí s částí wpa_supplicant popsanou ve wpa_supplicant.conf(5), wpa_supplicant(8) a wpa_cli(8) manuálových stránkách.
Supplicant je spouštěn bez jakéhokoliv přednastavení a wpa_cli vytvoří síťovou konfiguraci ze vstupu poskytnutého ze řádek 'wpa-*'. Zpočátku wpa_supplicant/wpa_cli přímo nenastaví vlastnosti zařízení (jako je nastavení essid s iwconfig, například), spíše informuje zařízení, který přístupový bod je vhodný pro asociaci. Jakmile zařízení prozkoumalo oblast a našlo nějáký vhodný přístupový bod přístupný k použití, vlastnosti jsou nastaveny.
Skript, který udělá všechnu práci, může být nalezen zde:
/etc/wpa_supplicant/ifupdown.sh /etc/wpa_supplicant/functions.sh
ifupdown.sh je spouštěn pomocí run-parts, který je pak vyvolán pomocí ifupdown během 'pre-up', 'pre-down' a 'post-down' fází.
Během 'pre-up' fáze je démon wpa-supplicant spuštěn následován serií příkazů wpa_cli, které nastaví síťovou konfiguraci vzhledem k použitým volbám 'wpa-' v /etc/metwork/interface pro fyzická zařízení.
Jeestli je použit wpa-roam, démon wpa_cli je spuštěn ve fázi 'post-up'.
Ve fázi 'pre-down', démon wpa_cli je zabit, pokud je aktivní.
Ve fázi 'post-down' je zabit démon wpa_supplicant.
3. Mód #2: Roaming mód
S balíčkem je dodáván jednoduchý roamingový mechanismus. Je ve formě akčního skriptu wpa_cli, /sbin/wpa_action, a předpokládá kontrolu ifupdown, jakmile je aktivován. Manuálové stránky wpa_action(8) popisují jeho technické detaily ve velké hloubce.
K aktivaci rozhraní roamingu použijte následujícího příkaz strofy interfaces(5):
iface eth1 inet manual wpa-driver wext wpa-roam /path/to/wpa_supplicant.conf
Dva démony jsou vytvořeny výše uvedeným příkladem: wpa_supplicant a wpa_cli. Je požadováno dodat wpa_supplicant.conf. Dobrý výchozí bod je ukázán v následujícím příkladu konfiguračního souboru:
# zkopírujte templát do /etc/wpa_supplicant/ cp /usr/share/doc/wpasupplicant/examples/wpa-roam.conf \ /etc/wpa_supplicant/wpa_supplicant.conf # povolte pouze rootu číst a psát do souboru chmod 0600 /etc/wpa_supplicant/wpa_supplicant.conf POZNÁMKA: je nezbytně nutné, aby použitý wpa_supplicant.conf definoval umístění ctrl_interface', aby se pro připojení wpa_cli (wpa-roam démon) vytvořila komunikační zásuvka. Zmíněný příklad konfigurace /usr/share/doc/wpasupplicant/examples/wpa-roam.conf, byl nastaven jako přiměřený základ
Je nutné upravit konfigurační soubor a přídat síťové bloky pro všechny známé sítě. Jestli nevíte, co toto obnáší, hned začněte číst manuálové stránky wpa_supplicant.conf(5).
Pro každou síť můžete upřesnit speciální volbu 'id_str'. Měla by být nastavena jako prostý textový řetězec. Tento textový řetězec tvoří základ pro profilování sítě: souvisí s logickým přostředím definovaným v souboru interface(5). Pokud není žádný 'id_str' síti určen, wpa_action předpokládá, že použije 'výchozí' logické prostředí jako nouzové. Nouzové prostředí může být zvoleno přes volbu 'wpa-default-iface'.
Takže co to všechno znamená? Pojďmě si to ilustrovat na malém příkladu převzatém z man stránek wpa_action(8):
Příklad wpa_supplicant.conf
wpa_supplicant.conf example: network={ ssid="foo" key_mgmt=NONE # this id_str will notify /sbin/wpa_action to 'ifup uni' id_str="uni" } network={ ssid="bar" psk=123456789... # this id_str will notify /sbin/wpa_action to 'ifup home_static' id_str="home_static" } network={ ssid="" key_mgmt=NONE # no 'id_str' parameter is given, /sbin/wpa_action will 'ifup default' }
Příklad /etc/network/interfaces
/etc/network/interfaces example: # the roaming interface MUST use the manual inet method # 'allow-hotplug' or 'auto' ensures the daemon starts automatically allow-hotplug eth1 iface eth1 inet manual wpa-driver wext wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf # no id_str, 'default' is used as the fallback mapping target iface default inet dhcp # id_str="uni" iface uni inet dhcp # id_str="home_static" iface home_static inet static address 192.168.0.20 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Logické rozhrají je přivozené pomocí ifup a vypnuto pomocí ifdown, jelikož wpa_supplicant se asociuje a deasociuje se sítí, která k němu byla přidělena pomocí volby 'id_str' použité v konfiguračním souboru wpa_supplicatn.conf.
Log akcí /sbin/wpa_action je vytvořen ve /var/log/wpa_action.log. Prosím, tento log připojte, pokuď budete nahlašovat problémy.
Interakce s wpa_supplicant pomocí wpa_cli a wpa_gui
S procesem wpa_supplicant může být zacházeno pomocí členů skupiny "netdev", jestli byla konfigurace roamingu použita podle příkladu tak jak je (nebo jakoukokoliv skupinou nebo gid specifikovaných v parametru GROUP=ctrl_interface.
# výchozí volba ctrl_interface použitá v souboru příkladu # /usr/share/doc/wpasupplicant/examples/wpa-roam.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev Pro interakci se supplicantem je dodáno wpa_cli (příkazová řádka) a wpa_gui (QT). S těmito se můžete připojit, odpojit, přidat/vymazat nové síťové bloky, předložit nezbytné interaktivní bezpečnostní informace a tak dále.
Kontrola roaming démonu s wpa_action
Roaming démon předpokládá kontrolu ifupdown, jakmile je spuštěn. To znamená: wpa_cli zavolá ifup, pokud se wpa_supplicant úspěšně asocioval s přístupovým bodem, a zavolá ifdown, pokud bylo připojení ztraceno nebo ukončeno. Když je roaming démon aktivní, tak by ifupdown neměl být ovládán přímo manuálně vyvolanými příkazy, spíše pomocí dodávaného /sbin/wpa_action, který zastaví a znovunačte roaming démona. Například, pro zastavení roaming démona na zařízení 'eth1':
wpa_action eth1 stop
Když je nutné aktualizovat roaming démona novými síťovými detaily, může tak být učiněno, aniž by byl zastaven. Upravte soubor wpa_supplicant.conf, který démon používá, s novými síťovými detaily, přidejte volitelné síťové nastavení do /etc/network/interfaces, která jsou specifická pro novovou síť (odkaz pomocí 'id_str̈́') a pak 'znovunačtěte' démona pomocí:
wpa_action eth1 reload
Pro úplné technické detaily ohldně toho, co wpa_action dokáže, si přečtě man stránky wpa_action(8).
Vyladění nastavení roamingu
Můžete čelit situacím, kde je v blízkosti více přístupových bodů. Můžete zvolit manuálně, který má být preferován, s wpa_cli nebo wpa_gui, nebo můžete každé síti nastavit vlastní prioritu. To je umožněno volbou 'priority' ve wpa_supplicant.conf.
Log soubor
Všechna aktivita romaing démona je zaznamenána do /var/log/wpa_action.log. Je zaznamenána následující aktivita
*datum a čas
*název rozhraní a událost
*hodnoty proměnných prostředí (WPA_ID, WPA_ID_STR, WPA_CTRL_DIR)
*spuštěný příkaz ifupdown
*wpa_cli status (založeno na WPA-PSK, síť může zobrazovat jinou informaci)
*bssid
*ssid
*id
*id_str
*párové_šifrování
*šifrování_skupiny
*key_mgmt
*wpa_stav
*ip_adresa
Použití externích mapovacích skriptů (např. guessnet)
Krom interního mapování logických rozhraní skrz 'id_str', wpa_action může volat externí mapovací skripty. Mapovací skript by měl vrátit jméno logického prostředi, které by mělo být nastaveno Jakýkoliv mapovací skript, který funguje z mapovacího mechanismu ifupdown (podívejte se na manuálové stránky), by měl být také pracovat, když ho zavolá wpa_action.
Pro zavolání mapovacího skriptu přidejte řádku 'wpa-mapovací-skript název-skriptu' do strofy rozhraní fyzíckého roaming zařízení. (možná bude nutné upřesnit absolutní cestu k mapovacímu skriptu).
Obsah řádek, začínající s wpa-map, je předán stdin mapovacího skriptu. Jelikož ifupdown umožňuje pouze jednu řádku wpa-map, můžete přičlenit jakékoliv množství k wpa-map pro další řádky. Například:
iface wlan0 inet manual wpa-driver wext wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wpa-mapping-script guessnet-ifupdown wpa-map0 home wpa-map1 work wpa-map2 school # ... dodatečné řádky wpa-mapX, jak je potřeba
V základu bude mapovací skripty použit jen, když nebude přítomno žádné 'id_str' pro současnou síť. Pokud chcete úplně deaktivovat 'id_str' propojení a používát pouze mapovací skript, použijte volbu 'wpa-mapping-script-priority 1', abyste potlačili výchozí chování.
Jestliže mapovací skript vrátí prázdný řetězec, tak wpa_action spadne k používání 'výchozího' rozhraní, pokud však není definováná alternativa pomcí volby 'wpa-roam-default-iface'
Níže je pokročilý příklad, s použitím guessnet-ifupdown jako externího mapovacího skriptu.
/etc/network/interfaces s externím mapovacím skriptem
/etc/network/interfaces with external mapping example: allow-hotplug wlan0 iface wlan0 inet manual wpa-driver wext wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wpa-roam-default-iface default-wparoam wpa-mapping-script guessnet-ifupdown wpa-map default: default-guessnet wpa-map0 home_static wpa-map1 work_static # school can only be chosen via 'id_str' matching iface school inet dhcp # resolvconf dns-nameservers 11.22.33.44 55.66.77.88 iface home_static inet static address 192.168.0.20 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 test peer address 192.168.0.1 mac 00:01:02:03:04:05 iface work_static inet static address 192.168.3.200 netmask 255.255.255.0 network 192.168.3.0 broadcast 192.168.3.255 gateway 192.168.3.1 test peer address 192.168.3.1 mac 00:01:02:03:04:05 iface default-guessnet inet dhcp iface default-wparoam inet dhcp
V tomto příkladu použije wpa_action guessnet pro výběr vhodného logického rozhraní, jen pokud nebyla poskytnuta žádná volba 'id_str' pro současnou síť v wpa_supplicant.conf.
Řádky 'wpa-map' poskytují guessnetu logická rozhraní, která je nutno otestovat, stejně jako výchozí rozhraní, které je nutno použít, pokud všechny testy selhají. 'test' řádky každého logického rozhraní jsou použivány guessnetem k rozlišení, jestli jsme již připojeni k dané síti. Například, guessnet zvolí logické rozhraní 'home_static', pokud je na aktuální síti přítomno zařízení s IP adresou 192.168.0.1 a MAC 00:01:02:03:04:05. Jestliže všechny testy selžou, bude nakonfigurováno 'defaul-guessnet' rozhraní..
Přečtěte si prosím manuálové stránky guessnet(8) pro více informací.
4. Řešení problémů
Pro rozřešení problémů s připojení, asociací a autentifikací, doporučujeme začí s `wpa_cli -i <rozhraní>` v jiném shellu, před nastartováním rozhraní. Použijte napřed příkaz 'level 0' pro získání všech ladících (debug) zpráv. Potom použijte `ifup --verbose <interface>` k obdržení upovídaných (verbose) ladících zpráv ze skriptu začínajícího wpasupplicant
Skryté ssids
Pro příklad se podívejte na #358137. Za účelem možnosti asociace se skrytou ssid zkuste prosím volbu 'ap_scan=1' v globální sekci a 'scan_ssid=1' v sekci síťového bloku vašho wpa_supplicant.conf. Pokud používáte spravovaný mód, můžete tak učinit také pomocí strof:
iface eth1 inet dhcp wpa-conf managed wpa-ap-scan 1 wpa-scan-ssid 1 # další volby pro vaše nastavení
Vzhledem #368770 může asociace trvat velmi dlouho, jestli se týká WEP zabezpečených sítí. V některých případech může k urychlení asociace pomoci nastavení parametru 'ap_scan=2' v konfiguračním souboru (nebo použití strofy 'wpa-ap-scan 2', která je ekvivalentní).
Prosím zaznamenejte, že nastavení ap_scan na hodnotu 2 také vyžaduje, aby všechny sítě měly precizně nastavené pravidla bezpečnosti pro key_mgmt, párování, skupinu a proto proměnné pravidel sítě.
5. Bezpečnostní otázky
Nastavení přístupových práv souborů
Je důležité uchovat PSK a další citlivé informace týkající se nastavení vaší sítě v soukromí, takže se ujistěte, že konfigurační soubory obsahující taková data je možno číst pouze uživatelem. Například:
chmod 0600 /etc/network/interfaces # nahraďtě cestu vaším souborem wpa_supplicant.conf chmod 0600 /etc/wpa_supplicant/wpa_supplicant.conf
V základu je /etc/network/interfaces čitelný každým, a tudíž nevhodný pro uchovaní tajných klíčů nebo hesel.