|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
Linux v příkazech – práce s Wi-Fi
Bezdrátová síť pro snadný přístup k Internetu je dnes naprosto běžnou
záležitostí; ať už doma pro pohodnou práci na notebooku
nebo třeba v restauracích s hotspoty. Jak se připojit v Linuxu?
Once country guy: "We dug 100 ft behind our house and we found telephone cables. That proves that our ancestors
used telephones thousands of years ago." Other country guy: "We dug 200 ft behind our house and did not find
any cables. That proves that our ancestors used wireless."
Úvod o WiFi a sítíchV dnešní době už asi nemá cenu představovat Wi-Fi (původně Wireless Fidelity), technologii představenou specifikací IEEE 802.11. Kromě použití na například p2p spojích nás dnes bude zajímat, jak se k síti (např. z notebooku) připojit – použijeme-li terminologii z referenčního modelu OSI/ISO, budeme se pohybovat někde kolem fyzické a linkové vrstvy (physical, data link layer). Pokud by vás zajímalo, jak samotná technologie funguje a jak ji použít, doporučuji už vydaný výborný seriál od vynikajícího autora Začínáme s WiFi. Protože vás jistě bude zajímat, jak se dostanete po úspěšném připojení na web, odkáži vás na opět už vyšlé články ve stejné kategorii, jako je tento – konfigurace a diagnostika sítě. Ale předem vás možná uklidním, na většině míst, kde je "WiFi konektivita" k dispozici, běží DHCP server, který vám umožní jednoduše získat síťové parametry bez nutnosti složitě konfigurovat síťová rozhraní, směrování a podobně. Vlastně to je zpravidla jeden příkaz. A nakonec poslední upozornění – alespoň pokud mi je známo, je právní problematika WiFi hotspotů tak trochu křehká; a to v tom smyslu, že je obtížné rozlišit hotspot pro volné použití třeba od špatně nakonfigurovaného domácího AP (Access Point, síťový prvek stojící na druhém konci našeho bezdrátového připojení). Zdůrazňuji to proto, že neznalost zpravidla neomlouvá, každopádně se ale v našem případě budeme připojovat k síti s dobrou vůlí a úmysly. NástrojeTak a pojďme na věc. Na úvod této sekce ještě jedna poznámka – seriál se jmenuje Linux v příkazech, budeme se tedy věnovat připojení k síti pomocí příkazů, což pro běžného uživatele nemusí být komfortní. Proto tu máme grafické nástroje, které snadné připojení umožňují – rád bych zmínil třeba grafickou nadstavbu Network Manageru KNetworkManager (implicitně například v distribuci SUSE 10.1), KWifiManager nebo třeba Wifi Radar (podobných nástrojů je přes desítku, takže pokud by se vám žádný z jmenovaných nelíbil, použijte klidně jiný; existují).
Nás tedy budou v dalším povídání zajímat především programy z balíku Wireless
Tools (například v Debianu je získáte instalací balíčku
Do Wireless Tools tedy spadá většina programů, o kterých je tento článek, jmenovitě:
Pokud nahlédnete třeba do programů, která vám balíček s Wireless Tools nabízí, zjistíte, že nástrojů je víc; my si ovšem vystačíme s touto dvojicí. Modelová situacePro většinu našeho povídání si vystačíme s jedním modelovým příkladem, řekněme, že jste si zašli do kavárny na šálek výborné kávičky a kavárna disponuje (pro hosty) připojením k Internetu. Je dobré si uvědomit, že s pokud použijete Linux, jste zpravidla odkázáni sami na sebe. Ať už budete ve zmíněné kavárně nebo na konferenci, znalosti obsluhy budou zpravidla hodně omezené a stupeň abstrakce nad použitím bezdrátového připojení téměř nulový (takže možná zvládnou naklikání ve Windows a vyřešení jednoduchých problémů, po zahlédnutí příkazového interpretu namísto klikacích ikonek ale zpravidla ztratí úplně přehled), což samozřejmě není chyba, ovšem je potřeba s tím počítat. Kavárník či kavárnice vám tedy ochotně přinese požadovaný nápoj (a účet), později také možná heslo, ale víc od nich čekat nebudeme. iwlist
Tak a s chutí do toho. Prvním nástrojem, který nám prozradí většinu sítových
parametrů je program Určitě je dobré vědět, s čím máme tu čest pracovat: hostname:~# iwlist --help Usage: iwlist [interface] scanning [interface] frequency [interface] channel [interface] bitrate [interface] rate [interface] encryption [interface] key [interface] power [interface] txpower [interface] retry [interface] ap [interface] accesspoints [interface] peers [interface] event
Vida, hostname:~# iwlist scanning lo Interface doesn't support scanning. eth0 Interface doesn't support scanning. eth1 No scan results Teď bohužel nemáme štěstí, žádná síť není v dosahu. Za předpokladu, že nemáte například zapnuté tlačítko pro vypínání vysílacího výkonu bezdrátových zařízení v notebooku, budete chtě nechtě muset změnit pozici, nasměrovat jinam anténu nebo třeba připojit externí; každopádně se tak dostat na místo pokryté použitelným signálem.
V naší kavárně ale signál je, proto teď už najisto spustíme vyhledávání,
tentokrát elegantně se zkrácenou verzí příkazu a se zavoláním konkrétního
zařízení (které je v mém případě hostname:~# iwlist eth1 scan eth1 Scan completed : Cell 01 - Address: 00:15:C7:EE:B5:50 ESSID:"kavarna" Protocol:IEEE 802.11bg Mode:Master Channel:5 Encryption key:off Bit Rate:54 Mb/s Extra: Rates (Mb/s): 1 2 5.5 6 9 11 12 18 24 36 48 54 Quality=49/100 Signal level=-83 dBm Extra: Last beacon: 140ms ago Cell 02 - Address: 00:15:C7:EE:B4:E0 ESSID:"kavarna-secured" Protocol:IEEE 802.11bg Mode:Master Channel:11 Encryption key:on Bit Rate:54 Mb/s Extra: Rates (Mb/s): 1 2 5.5 6 9 11 12 18 24 36 48 54 Quality=41/100 Signal level=-76 dBm Extra: Last beacon: 49ms ago Cell 03 - Address: 00:15:C7:EE:7B:90 ESSID:"kavarna-secured2" Protocol:IEEE 802.11bg Mode:Master Channel:1 Encryption key:on Bit Rate:54 Mb/s Extra: Rates (Mb/s): 1 2 5.5 6 9 11 12 18 24 36 48 54 Quality=53/100 Signal level=-80 dBm Extra:wpa_ie=db180050e20101000050f20001000050f202010000 50f2002800 Extra: Last beacon: 375ms ago
Tak, teď máme vše, co jsme potřebovali, takže se s hostname:~# iwlist eth1 rate eth1 12 available bit-rates : 1 Mb/s 2 Mb/s 5.5 Mb/s 11 Mb/s 6 Mb/s 9 Mb/s 12 Mb/s 18 Mb/s 24 Mb/s 36 Mb/s 48 Mb/s 54 Mb/s Current Bit Rate=0 kb/s iwconfig
A směle do připojení. Pro to použijeme nástroj hostname:~# iwconfig --help Usage: iwconfig interface [essid {NN|on|off}] [nwid {NN|on|off}] [mode {managed|ad-hoc|...} [freq N.NNNN[k|M|G]] [channel N] [ap {N|off|auto}] [sens N] [nick N] [rate {N|auto|fixed}] [rts {N|auto|fixed|off}] [frag {N|auto|fixed|off}] [enc {NNNN-NNNN|off}] [power {period N|timeout N}] [txpower N {mW|dBm}] [commit] Check man pages for more details. Jako asi první příklad vypíšeme stav bezdrátových zařízení: hostname:~# iwconfig lo no wireless extensions. eth0 no wireless extensions. eth1 unassociated ESSID:"down" Mode:Managed Frequency=2.417 GHz Access Point: 00:00:00:00:00:00 Bit Rate=0 kb/s Tx-Power=20 dBm RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:237 Missed beacon:0
Teď už nám půjde jenom o to, nastavit bezdrátovou kartu tak, aby jednotlivé
položky výpisu obsahovaly správné hodnoty, ty, které nám řekl
mode managedTak, nyní se můžeme připojit. Přepneme bezdrátové zařízení do managed módu:
hostname:~# iwconfig eth1 mode managed
A nastavíme potřebné parametry, které nám prozradil hostname:~# iwconfig essid kavarna hostname:~# iwconfig channel 5 Elegantně lze celou sérii příkazů napsat na jeden řádek:
hostname:~# iwconfig eth1 mode managed essid kavarna channel 5
Úspěšné připojení poznáte třeba příkazem hostname:~# iwconfig eth1 eth1 IEEE 802.11g ESSID:"kavarna" Mode:Managed Frequency:2.432 GHz Cell: 02:12:E0:51:5E:48 Bit Rate=54 Mb/s Tx-Power=20 dBm RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:55 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:237 Missed beacon:0 Kromě teoretické maximální rychlosti se zde také třeba dozvíte, jak kvalitní získáváte signál nebo vysílací výkon.
Zpravidla následuje získání síťových parametrů přes DHCP, to zvládne několik
programů, zkusit můžete Tedy:
hostname:~# dhclient eth1
nebo:
hostname:~# pump -i eth1
A konečně, obligátní použití příkazu hostname:~# ping www.linuxsoft.cz PING www.linuxsoft.cz (82.208.29.37) 56(84) bytes of data. 64 bytes from ip37.motylek.com (82.208.29.37): icmp_seq=1 ttl=54 time=51.44 ms 64 bytes from ip37.motylek.com (82.208.29.37): icmp_seq=2 ttl=54 time=51.51 ms 64 bytes from ip37.motylek.com (82.208.29.37): icmp_seq=3 ttl=54 time=51.41 ms --- www.linuxsoft.cz ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 51.419/51.459/51.511/0.058 ms Nás v tuto chvíli zajímá pouze jak se připojit, pokud už získáte adresu a přesto se na Internet nedostanete, možná provider zvolil jenom jinou taktiku při autentizaci. Například tak můžete narazit na situaci, kdy se připojíte, dostanete síťovou adresu, ale všechny pokusy o přístup k webu jsou přesměrovány na autentizační stránku poskytovatele, kde musíte zadat potřebné údaje. WEPI když je (spíše filozofickou) otázkou, zda samotný fyzický/linkový provoz WiFi šifrovat, je možné a obvyklé nějaké šifrování použít. Tím prvním je WEP (Wired Equivalent Privacy), přímá součást standardu IEEE 802.11, ovšem už překonaná a především, triviálně zlomitelná (s běžným nástrojem řekněme do 10 minut), ovšem stále používaná především kvůli její jednoduchosti a široké podpoře zařízení. WEP pracuje typicky s 40 bitovým klíčem, případně s rozšířenou verzí s délkou 104 bitů (do "kulatých" čísel připočítejte 24 bitový inicializační vektor [IV]), nás především zajímá, že (pokud ho už nemáme) požádáme obsluhu o "heslo pro připojení k síti". V závislosti na použitém šifrování nebo zápisu hesla, můžete dostat na papírku následující řetězce:
Paráda, máme co potřebujeme. Užitečné bude nejdříve vědět, jak šifrování vypnout:
hostname:~# iwconfig eth1 encryption off
A následně je už předání správných parametrů systému jednoduché, jenom je třeba rozlišovat, jestli se jedná o hexadecimálně zadaný klíč (obsahující pouze znaky 0-9 a A-F, běžně oddělovaný po 4 znacích) nebo řetězec. V našich případech bude tedy správné: hostname:~# iwconfig eth1 enc s:segafredo hostname:~# iwconfig eth1 enc 7365676166 hostname:~# iwconfig eth1 encryption 7365-6761-66 hostname:~# iwconfig eth1 key 7365-6761-6672-6564-6F00-0000-00
Prosím všimněte si, že parametry
Příkaz pak buďto vložíme do posloupnosti příkazů výše nebo jednoduše část bez
WPAV případě WPA se setkáváme s implementací části specifikace IEEE 802.11i, konkrétně se budeme autentizovat proti zařízení implementující IEEE 802.1x, typicky využívající mod PSK (pre-shared key). Pro nás to opět znamená jediné, poprosit o "heslo pro připojení k síti" a dostaneme nejspíš například řetězec:
Paráda, opět máme vše potřebné.
Nutno dodat, že s WPA je situace trošku horší, protože implementace IEEE
802.1x je v Linuxu trošku zvláštní, složí k tomu nástroj WPA Supplicant, který
například na Debianu získáte instalací balíčku
Nejprve vygenerujeme klíč z hesla, které jsme dostali od obsluhy; SSID/ESSID
jsme poznali z výpisu hostname:~# wpa_passphrase kavarna-secured2 segafredo network={ ssid="kavarna-secured2" #psk="segafredo" psk=957595b5491edd06331fb43e954664d4e1a0ea3bb4b65ec61b3410123fa22481 }
hostname:~# wpa_passphrase kavarna-secured2 segafredo > /etc/wpa_supplicant.conf
A necháme
hostname:~# wpa_supplicant -B -i eth1 -D ipw -w -dd
Pokud byste se ztráceli v konfiguračních možnostech, použijte třeba parametr
hostname:~# wpa_supplicant --help ... usage: wpa_supplicant [-BddehLqqvw] -i<ifname> -c<config file> [-D<driver>] \ [-N -i<ifname> -c<conf> [-D<driver>] ...] drivers: hostap = Host AP driver (Intersil Prism2/2.5/3) prism54 = Prism54.org driver (Intersil Prism GT/Duette/Indigo) madwifi = MADWIFI 802.11 support (Atheros, etc.) atmel = ATMEL AT76C5XXx (USB, PCMCIA) wext = Linux wireless extensions (generic) ndiswrapper = Linux ndiswrapper ipw = Intel ipw2100/2200 driver options: -B = run daemon in the background -d = increase debugging verbosity (-dd even more) -K = include keys (passwords, etc.) in debug output -t = include timestamp in debug messages -h = show this help text -L = show license (GPL and BSD) -q = decrease debugging verbosity (-qq even less) -v = show version -w = wait for interface to be added, if needed -N = start describing new interface V našem případě chceme, aby daemon běžel na pozadí a vypisoval při připojování ladící informace, které se hodí třeba v případě, kdy něco nefunguje, jak má. mode ad-hocStává se, že se hodí spojit se s druhým počítačem třeba pro výměnu souborů, v tom případě najde uplatnění spojení ad-hoc; jde o poměrně snadný a elegantní způsob, rozhodně snazší, než se omezovat dráty:
hostname:~# iwconfig mode ad-hoc essid adhoc channel 7
Není asi potřeba zdůrazňovat, že na druhém počítači zadáte stejný příkaz, ESSID můžete zvolit téměř libovolné, kanál především v závislosti na tom, jak jsou v místě použití využívané. mode monitorCelkem užitečnou věcí je také monitorovací mód, kterým vám může pomoci zjistit, co za provoz na bezdrátové síti proudí v místě, kde kvůli bezpečnosti (např. kancelář) žádná být nesmí. Jednoduše (pokud to ovladač podporuje) přepneme kartu do správného režimu:
hostname:~# iwconfig eth1 mode monitor
Zaktivníme síťové zařízení a pustíme třeba hostname:~# ifconfig eth1 up hostname:~# tcpdump -i eth1 ... ZávěrDoufám, že když nic jiného, tak vám článek byl alespoň úvodem do práce s bezdrátovými sítěmi na příkazovém řádku. V běžných případech by ale měl myslím stačit; takže si užijte pohodlného používání. ;) Zdroje
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |