Linux ja wifi

From ICO wiki
Jump to navigationJump to search

Ü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

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 neiston samal ajal kättesaadavad, siis tehakse ühendumisel valik prioritedi 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.

Ad-Hoc võrgu seadistamine

Saab tehtud, kui leian teise wifi seadmega arvuti.

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

wpa_supplicant

airmon-ng

airodump-ng

aireplay-ng

aircrack-ng

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";\
for ( f in namearray ){\
	print namearray[f],essidarray[f],channelarray[f],aparray[f],qualityarray[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