Linux ja wifi: Difference between revisions
Line 473: | Line 473: | ||
};\ | };\ | ||
}END{\ | }END{\ | ||
print "found networks:"; print "Cell ESSID Channel AP Quality";\ | print "found networks:"; print "Cell ESSID Channel AP Quality Encryption";\ | ||
for ( f in namearray ){\ | for ( f in namearray ){\ | ||
print namearray[f],essidarray[f],channelarray[f],aparray[f],qualityarray[f];\ | print namearray[f],essidarray[f],channelarray[f],aparray[f],qualityarray[f],encarray[f];\ | ||
}; \ | }; \ | ||
if ( maxqi != 0 ){\ | if ( maxqi != 0 ){\ |
Revision as of 15:48, 22 April 2010
Üldinformatsioon
ARTIKKEL ON HETKEL POOLELI!! st. et ärge lõpust midagi otsige :D
Antud artikkel püüab lühidalt kokku võtta Wifi ühenduse konfigureerimise Linuxis. Näited põhinevad Linuxi distributsioonidel Ubuntu Karmic 9.10 ja Estobuntu 9.10.1 . Tõenäoliselt on need juhised kasutatavad ka paljudes teistes, eriti Debianil põhinevates Linuxi distributsioonides.
Oma Debianil põhineva distributsiooni infot näed käsuga:
# cat /etc/lsb-release
Eeldused
Linuxi käsurea elementaarne kasutusoskus on igal juhul abiks.
Töötav wifi seade
Peamine eeldus on see, et sinu arvuti wifi kaart töötab ehk sobivad moodulid on kernelisse laetud. Seda saad kontrollida alloleva käsuga. Kui käsu väljundis on nähtav wifi seade n. wlan0, ath0 vms. siis on sinu arvuti ilmselt võimeline seda ka kasutama.
# ifconfig -a
Nähes väljundis ainult seadmeid lo,pan0,eth0,eth1 vms. seadmeid pead oma wifi kaardile sobiva mooduli installeerima. Selleks tuvasta kõigepealt oma kaardi tootja ning mudel kasutades käske lspci (sisseehitatud seadmed PCI siinil), lsusb (USB pesas olevad seadmed) või lspcmcia (PCMCIA pessa käivad seadmed). Edasi mine ja googelda n. "<seadme nimi ja mudel> linux wifi", sest riistvara seadistamine ei ole selle artikli eesmärk.
olulised paketid
Järgnevad paketid peaksid olema installeeritud, et kasutada selles artiklis kirjeldatud trikke:
- wpasupplicant - ilma selleta ei saa ühenduda WPA/WPA2 protokolliga turvatud võrkudega. Vaikimisi installeeritud Ubuntu 9.10, Estobuntu 9.10.1 süsteemides.
- wireless-tools - sisaldab vajalikke käsurea-rakendusi iwlist,iwconfig jne. Vaikimisi installeeritud Ubuntu 9.10, Estobuntu 9.10.1 süsteemides.
- aircrack-ng - pakett sisaldab abiks rakendusi wifi võrkude otsimiseks ja turvalisuse murdmiseks. Saadaval ametlikes repositooriumides.
Kui midagi puudu, siis installeerimiseks kasuta järgmist käsku (paketinimi muuda vajadusel ise ära):
# sudo apt-get install aircrack-ng
Kasutatavad tööriistad
iwlist - wifi võrkude otsimine. Kasutamisnäide siin.
iwconfig - wifi seadme konfigureerimine. Kasutamisnäited: turvamata võrguga ühendumine, WEP protokolliga turvatud võrku ühendumine
wpa_password - paroolist PSK võtme genereerimine. Kasutamisnäide siin.
wpa_supplicant
airmon-ng
airodump-ng
aireplay-ng
aircrack-ng
Võrgu seadistamine
Seadistada on võimalik kaht moodi - kasutades võrguhaldurit (Network Manager), mis omab ka graafilist kasutajaliidest või siis käsurealt.
Seadistamine 1: Võrguhalduriga
Võrguhaldur koosneb kahest osast, võrguhalduri teenus ning graafiline kasutajaliides ehk applet. Kui üks neist ei tööta, siis on asjast õige vähe kasu. Ära tuleb märkida ka see, et kuigi teenus on sama, on graafilised kasutajaliidesed erinevatel töölaudadel erinevad (KDE,GNOME). Lisainfot võrguhalduri kohta leiad wikipeediast: http://en.wikipedia.org/wiki/NetworkManager
Võrguhalduri teenus
Teenus on vaikimisi kaasas Ubuntu/Estobuntuga ning käivitatakse alglaadimisel automaatselt, kui sul on selle osas kahtlusi, siis saad teenuse olemasolu ja staatuse kindlaks teha järgneva käsuga:
# service network-manager status
Installeerimine
Kui millegipärast sul teenust ei ole, siis installeerimiseks käivita käsurealt järgnev käsk või otsi network-manageri pakett üles mõnest graafilisest paketihaldurist ja installi sealt:
# sudo apt-get install network-manager
Seadistamine
Ainuke vajaminev seadistus on see, et /etc/network/interfaces failis ei tohi olla kirjeldatud ühtegi võrguseadet, mille manageerimisega võrguhaldur peaks tegelema. Kui soovid, et võrguhaldur tegeleks kõigi olemasolevate võrguseadmetega, siis hoolitse selle eest, et /etc/network/interfaces failis oleks ainult järgnevad read:
auto lo iface lo inet loopback
kui eemaldasid mõne seadme /etc/network/interfaces failist, siis ära unusta võrguhaldurit restartida:
# service network-manager restart
Võrguhalduri graafiline kasutajaliides e. applet
Applet on üldjuhul kättesaadav töölaua paneelil asuvast süsteemsest dokist, sealt kus asuvad ka teised olulised appletid nagu helitugevuse ja lõikelaua puhvri manageerijad, kui on seadistatud siis ka klaviatuuri asetuste valik. Kui sa sealt dokist ühtegi võrguga tegeleda soovivat rakendust ei leia, siis seda ei kuvata (näiteks automaatne peitmine on aktiivne) või on see kuidagi töölauaseadistuste muutmise käigus kaotsi läinud.
Esimesel juhul vaata üle doki seaded - tee doki peal parem klikk ning avanevast menüüst kliki valiku peal, mis kõige enam meenutab seadeid. Seejärel kontrolli seadetest üle, et ega võrguhalduse appletti automaatselt ei peideta. Teisel juhul peaksid appleti käsitsi käivitama.
Käsitsi saad network manageri appleti käivitada vajutades ALT+F2 ning toksides avanevasse dialoogi:
KDE töölaua puhul:
# knetworkmanager
GNOME töölaua puhul:
# nm-applet
Installeerimine
Kui millegipärast sul ei ole võrguhalduri applet installeeritud, siis saad seda teha nii:
KDE töölaua puhul:
# sudo apt-get install plasma-widget-networkmanagement
GNOME töölaua puhul:
# sudo apt-get install network-manager-gnome
Ühenduse loomine võrguhalduriga
Turvamata võrku ühendumine on imelihtne - kliki võrguhalduri ikoonil, vali "ühenda teise võrku" ning vali soovitav wifi võrk välja.
WEP/WPA/WPA2 protokollidega turvatud võrku ühendumise puhul avatakse peale võrguhalduris soovitud võrgu valikut dialoogiaken, kus saad seadistada parameetreid nagu protokollide tüübid, võtmed jne. Jama tekib siis, kui sa ei tea, mida ja kuidas seadistada. Detailid saad teada n. vaadates oma wifi ruuteri seadistust või siis kasutades mõnda vahvat käsurea rakendust, et näha wifi võrkude detailset infot (vt. Wifi võrkude otsimine iwlist rakendusega).
Ad-hoc võrgu ehk kahe arvuti vahelise wifi võrgu tekitamiseks on võrguhalduri võrkude nimekirjas ka valik "New Ad-Hoc Network...". Seadistamisest pikemalt siis, kui olen välja selgitanud miks sellel valikul klikkides midagi ei toimu.
Seadistamine 2: Käsurealt
Selles osas vähe näpunäiteid, kuidas wifi ühendust käsurealt käima saada. Kuna paljud käsud eeldavad juurkasutaja õigustes käivitamist, siis on soovitav olla ettevaatlik, kuna opsüsteemi untsukeeramine on juurkasutaja õigustes imelihtne.
Esimese asjana tuleb peatada network-manager teenus, kuna vastasel juhul ei saa käsitsi wifi seadet seadistada!
Seda saab teha järgneva käsuga:
# service network-manager stop
Wifi seadme kindlakstegemine
Kuna igasugusteks edasisteks tegevusteks on vaja kindlaks teha wifi seadme nimi, siis allpool väike näide ifconfig käsu kasutusest:
# ifconfig -a
Käsu väljundist otsi wifi-võrguseadmeid, mille nimed on tavaliselt wlan0,ath0 või wifi0. Tuvasta õige seade ning kasuta seda järgnevates peatükkides.
Wifi seade peab olema sisselülitatud olekus ehk ifconfig <võrguseadme nimi> käsu väljundis peab olema näha, et seadme olek on UP.
Näide:
wlan0 Link encap:Ethernet HWaddr 00:18:de:77:12:b2 UP BROADCAST MULTICAST MTU:1500 meetrika:1 RX pakette:0 vigu:0 ära visatud:0 ületäit:0 kaadri vigu:0 TX pakette:0 vigu:0 ära visatud:0 ületäit:0 carrier:0 kollisioone:0 txqueuelen:1000 RX baite:0 (0.0 B) TX baite:0 (0.0 B)
Kui seade on väljalülitatud, siis sisse saab selle lülitada järgneva käsuga:
# sudo ifconfig wlan0 up
Skriptides on soovitatav alati enne võrgu seadistamist ülaltoodud käsuga võrguseade üles tuua.
Autori poolt toodud näidetes on edaspidi wifi seadme nimi wlan0 !
Wifi võrkude otsimine
!! Veendu, et võrguseadme olek oleks UP
Nähtavate wifi-võrkude kuvamiseks käivita järgnev käsk:
# sudo iwlist wlan0 scanning
Käsu väljundis on detailid kõikide nähtavate wifi võrkude kohta, eri võrgud on nimetatud "Cell 01", "Cell 02" jne. Olulisemad detailid väljundis on rasvases kirjas.
Näide:
wlan0 Scan completed : Cell 01 - Address: 00:18:39:21:08:B2 Channel:7 Frequency:2.442 GHz (Channel 7) Quality=35/70 Signal level=-75 dBm Encryption key:off ESSID:"foo" 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 Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=000000000251c180 Extra: Last beacon: 2388ms ago IE: Unknown: 000670656C64696B IE: Unknown: 010882848B960C121824 IE: Unknown: 030107 IE: Unknown: 07064E4120010D14 IE: Unknown: 200100 IE: Unknown: 2A0100 IE: Unknown: 32043048606C IE: Unknown: DD180050F2020101020003A4000027A4000042435E0062322F00 IE: Unknown: DD1E00904C334E1003FFFF000000000000000000000000000000000000000000 IE: Unknown: DD1A00904C3407050000000000000000000000000000000000000000 IE: Unknown: DD0900037F01010000FF7F Cell 02 - Address: 00:90:D0:F7:23:62 Channel:11 Frequency:2.462 GHz (Channel 11) Quality=23/70 Signal level=-87 dBm Encryption key:on ESSID:"kala" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=0000096caeb44184 Extra: Last beacon: 3428ms ago IE: Unknown: 00105370656564546F756368364431383446 IE: Unknown: 010882848B962430486C IE: Unknown: 03010B IE: Unknown: 2A0100 IE: Unknown: 2F0100 IE: Unknown: 32040C121860 IE: Unknown: DD060010180200F0 IE: Unknown: DD180050F2020101880003A4000027A4000042435E0062322F00 Cell 03 - Address: 00:18:39:21:08:B2 Channel:7 Frequency:2.442 GHz (Channel 7) Quality=70/70 Signal level=-34 dBm Encryption key:on ESSID:"toru" 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 Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=000001a78bbc0180 Extra: Last beacon: 568ms ago IE: Unknown: 000670656C64696B IE: Unknown: 010882848B960C121824 IE: Unknown: 030107 IE: Unknown: 07064E4120010D14 IE: Unknown: 200100 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: 2A0100 IE: Unknown: 32043048606C IE: Unknown: DD180050F2020101040003A4000027A4000042435E0062322F00 IE: Unknown: DD1E00904C334E10030000000000000000000000000000000000000000000000 IE: Unknown: DD1A00904C3407050000000000000000000000000000000000000000 IE: Unknown: DD0900037F01010000FF7F
Ülaltoodud näites on 3 wifi võrku:
Cell 01 ESSID on "foo", võrk on turvamata (Encryption key:off), võrk töötab kanalil 7, signaali tugevus 35/70 (käib kah) ning access-point-i MAC aadress on 00:90:D0:F7:23:62.
Cell 02 ESSID on "kala", võrk on turvatud (Encryption key:on), kuna ei ole infot et tegu WPA/WPA2 võrguga siis protokoll WEP. võrk töötab kanalil 11, signaali tugevus 23/70 (nõrk) ning access-point-i MAC aadress on 00:90:D0:F7:23:62.
Cell 03 ESSID on "toru", võrk on turvatud (Encryption key:on), protokoll WPA2. võrk töötab kanalil 7, signaali tugevus 70/70 (väga hea) ning access-point-i MAC aadress on 00:18:39:21:08:B2.
Ühendumine turvamata võrku
!! Veendu, et network-manager teenus oleks väljalülitatud
!! Veendu, et võrguseadme olek oleks UP
Järgevad näited on ülaltoodud võrkude otsimisel leitud Cell 01 baasil.
# sudo iwconfig wlan0 essid foo channel 7 ap 00:90:D0:F7:23:62
Vastavalt siis wlan0 - wifi seadme nimi, foo on võrgunimi ehk ESSID, channel 7 - seitsmes kanal ja ap 00:90:D0:F7:23:62 on accesspointi mac aadress.
Peale seda ei jää muud üle, kui küsida DHCP kaudu oma arvutile IP aadress:
# sudo dhclient wlan0
Ühendumine WEP protokolliga turvatud võrku
!! Veendu, et network-manager teenus oleks väljalülitatud
!! Veendu, et võrguseadme olek oleks UP
Järgevad näited on ülaltoodud võrkude otsimisel leitud Cell 02 baasil. Seadistada saab nii wpa_supplicant kui ka iwconfig rakendusega. Vali ise omale sobiv. Arvesta ka sellega, et WEP protokoll toetab kaht krüpteeringut: 64bit ja 128bit. Esimene koosneb 40 bitisest võtmest (10 kuueteistkümnendsüsteemi numbrit), millele lisatakse 24 bitine IV (Initialization Vector). Teine koosneb 104 bitisest võtmest ning samuti 24 bitisest IV-st.
Näide: 40 ja 104 bitised võtmed:
02DEDED6F6 384ABBB4AD34F81ED84F3AE189
wpa_supplicant rakendusega seadistamine
Salvesta järgnev konfiguratsioon eraldi faili, antud juhul foo.wep.
network={ ssid="foo" key_mgmt=NONE wep_key0=384ABBB4AD34F81ED84F3AE189 }
Konfiguratsioonifailis on määratud ssid (võrgu nimi) ning wep_key0 on parooli järgi genereeritud võti (kuueteistkümnendsüsteemi number), mille leiad oma wifi seadme kasutajaliidesest. Konfiguratsioonifailis ei ole vaja määrata kas tegu 40 või 104 bitise võtmega.
Seejärel seadista wifi seade:
# sudo wpa_supplicant -B -Dwext -iwlan0 -cfoo.wep
Antud näites on wext linuxi driveri nimi, wlan0 wifi seade ning foo.wep konfiguratsioonifail. Parameeter -B paneb wpa_supplicant rakenduse käima taustal, ehk IP aadressi saamiseks pole vaja avada uut terminaliakent.
Küsi DHCP kaudu oma arvutile IP aadress:
# sudo dhclient wlan0
Kui IP aadressi said, siis peaks ühendus vähemalt AP-ni toimima.
iwconfig rakendusega seadistamine
Järgnev info peaks olema õige aga on kontrollimata!!
# sudo iwconfig wlan0 mode managed essid foo channel auto key 384ABBB4AD34F81ED84F3AE189
Veendumaks, et seadistus on õige, kuva aktiivne seadistus järgneva käsuga:
# iwconfig wlan0
Kui nähtav seadistus erineb sellest, mille sa sisestasid, siis on võimalik, et network-manager teenus on seda modifitseerinud. Nimetatud teenuse peab välja lülitama.
Kui seadistus õige, siis küsi DHCP kaudu oma arvutile IP aadress:
# sudo dhclient wlan0
Ühendumine WPA/WPA2 protokolliga turvatud võrku
!! Veendu, et network-manager teenus oleks väljalülitatud
!! Veendu, et võrguseadme olek oleks UP
Järgevad näited on ülaltoodud võrkude otsimisel leitud Cell 03 baasil.
Esimese asjana on vaja genereerida wifi access-pointi paroolist psk võti (Pre-Shared-Key) ning seejärel tekitada sobiv konfiguratsioonifail. wpa_password rakendus on siinkohal abiks, genereerib võtme ning teeb osa konfiguratsioonifailist ka valmis.
Kasutamine:
# wpa_passphrase toru password
Antud näites on toru access-pointi ESSID ning password on parool.
Käsu väljund on järgmine:
network={ ssid="toru" #psk="password" psk=6bc94c36e4855682695ce1746dc16067f777efecb8176ebc6278942447bd06b2 }
Salvesta see väljund eraldi faili näiteks toru.wpa2 ning täienda järgnevalt:
network={ ssid="toru" #psk="password" psk=6bc94c36e4855682695ce1746dc16067f777efecb8176ebc6278942447bd06b2 key_mgmt=WPA-PSK proto=WPA2 }
Parameetrite tähendus:
key_mgmt - lubatud võtmete manageerimisrotokollid.
proto - kasutatav turvaprotokoll n. WPA, WPA2.
Vastavalt vajadusele võib kasutada veel ka järgmisi parameetreid:
priority=2 - võrgu prioriteet. Kui samas konfiguratsioonifailis on kirjeldatud mitu võrku ning mitu neist on samal ajal kättesaadavad, siis tehakse ühendumisel valik prioriteedi järgi. Antud juhul siis prioriteediks 2.
scan_ssid=1 - kasutada juhul, kui access point ei näita oma nime (ESSID).
Kui konfiguratsioonifail valmis, pole muud, kui võrgukaart järgneva käsuga ära seadistada:
# sudo wpa_supplicant -Dwext -iwlan0 -c toru.wpa2
Seejärel küsi DHCP kaudu oma arvutile IP aadress:
# sudo dhclient wlan0
Ainuke erinevus WPA ja WPA2 võrku ühendumisel on määratud turvaprotokoll konfiguratsioonifailis (proto=WPA või proto=WPA2).
Ad-Hoc võrgu seadistamine
Saab tehtud, kui leian teise wifi seadmega arvuti.
WEP/WPA/WPA2 turvaprotokollide murdmine
Abiks skriptid
Allolevad skriptid tuleks salvestada faili ning anda failile chmod käsuga käivitusõigus.
Järgnev skript on parima leviga vabasse wifi võrku ühendumise automatiseerimiseks. Töötab väga hästi IT Kolledzis.
#!/bin/bash # Connect to best quality open wifi written by Argo Ellisson # wifi device selection, default wlan0, can be changed in script or given as first parameter to the script. if [ $# == 0 ]; then WD="wlan0" else WD=$1 fi # Stop network-manager service and bring device up just in case sudo service network-manager stop > /dev/null 2>&1 sudo ifconfig $WD up > /dev/null 2>&1 sudo iwlist $WD scanning | egrep "Address|ESSID|Quality|Channel|Encryption" | \ awk -v WD=$WD 'BEGIN{maxq = 0; maxqi = 0;}{\ if ($1 == "Cell"){\ i = $2;\ namearray[$2] = $2;\ aparray[$2]=$5;\ }else if( $1 == "Encryption"){\ split($2, a, ":");\ encarray[i] = a[2];\ if( qualityarray[i] > maxq && encarray[i] == "off") {\ maxq = qualityarray[i];\ maxqi = i;\ }; \ } else {\ split($1, a, ":");\ if ( a[1] == "ESSID"){\ gsub(/\"/, "", a[2]); essidarray[i] = a[2];\ }else if(a[1] == "Channel"){\ channelarray[i]=a[2];\ }else{ \ split($1,a,"=");\ if (a[1] == "Quality"){\ sub(/\/100/, "", a[2]); qualityarray[i] = a[2];\ if (a[1] == "Quality"){\ sub(/\/100/, "", a[2]);\ qualityarray[i] = a[2];\ };\ };\ };\ };\ }END{\ print "found networks:"; print "Cell ESSID Channel AP Quality Encryption";\ for ( f in namearray ){\ print namearray[f],essidarray[f],channelarray[f],aparray[f],qualityarray[f],encarray[f];\ }; \ if ( maxqi != 0 ){\ print "Choosing Cell ",maxqi," because of best quality";\ system("sudo iwconfig "WD" essid "essidarray[maxqi]" channel "channelarray[maxqi]" ap "aparray[maxqi]"; sudo dhclient "WD" ");\ } else {\ print "No open networks were found!";\ };\ };'
Järgnev skript on abiks kui soovid lihtsalt ja kiirelt olemasolevate konfiguratsioonidfailide abil tuttavasse, WEP,WPA või WPA2 protokolliga turvatud võrku ühendada.
#!/bin/bash # Connect to WEP/WPA/WPA2 network using configurationfiles. written by Argo Ellisson # Stop network-manager service and bring device up just in case sudo service network-manager stop > /dev/null 2>&1 sudo ifconfig wlan0 up > /dev/null 2>&1 if [ $# == 0 ]; then # connect using default configurationfile sudo wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf & else # connect to some other network with wpa_supplicant configurationfile given as a parameter sudo wpa_supplicant -Dwext -iwlan0 -c $1 & fi sudo dhclient wlan0
Juhendist
Juhendi koostas:
- Argo Ellisson
Kasutatud materjalid:
- iw*, wpa*, air* tööriistade linuxi abilehed (man-pages).
Versioonide ajalugu:
Versioon | Kuupäev | Muudatused |
---|---|---|
1.0 | Algne versioon | |
1.1 | ||
1.2 |