Ghid de bază ca să pornești Wireless - WiFi

Datorită complexității legale, aptosid va furniza doar dfsg-free software, Vă rugăm să verificați acest link pentru informații suplimentare privind programele non-free pentru firmware

Ca să obtineți wlan WiFi și să-l faceți să functioneze aveți nevoie de o conexiune fixă pentru câteva minute, ca să descărcați firmware-ul necesar.

Dacă conectarea fixă nu este posibilă atunci veți fi obligați să puneți firmware-ul pe un dispozitiv mobil (pendrive e.g.) și să-l instalați ca root folosind:

#dpkg -i <firmware.deb>

Ca să gasiți firmware-ul adecvat fără să cunoașteți marca sau producătorul chip-ului dvs. wireless , puteți folosi comanda:

#fw-detect

Aceasta vă va oferi următoarea informație:

#apt-get update
#apt-get install <name of firmware>
#modprobe -r <modulename>
#modprobe <modulename>

Foloseşte apt-get install care v-a fost recomandat de comanda fw-detect . După ce ați efectuat aceasta , este necesar să folosiți unele comenzi în consolă înainte de a configura instalarea .

Trebuie să încărcați modulul ca să puteți configura instalarea.

Ca root, în consolă, efectuați:

modprobe -r <modulename>

modprobe <modulename>

Ca <nume al modulului> folosiți informația ce v-a fost data mai înainte de fw-detect. O funcție de ajutor a consolei poate fi folosită aici: bash completion:
Dacă scrii doar primele litere ale <nume modul> apoi apeși tasta TAB , va completa numele modulului (e.g. modprobe ipw TAB key) Această procedură va preveni greșeli de pronunțare/scriere.

Ambele comenzi modprobe nu vor arăta nimic neobișnuit dacă au avut succes, deci dacă prompt-urile normare revin, modulul a fost încărcat cum trebuie.

Puteți verifica aceasta cu :

#lsmod | grep <module>

Acum porneste Ceni din K-Menu - Internet sau rulează-l din consolă ca root cu Getting Online - Ceni. Dispozitivul dvs. portabil WiFi ar trebui să se vadă acum și să fie gata de a fi configurat.

Ca să instalezi un Wlan WiFi GUI vezi WiFi - roaming WPA-GUI

Moduri de Operare în wpasupplicant pentru Debian

Datorită complexității legale, aptosid va furniza doar dfsg-free software, Vă rugăm să verificați acest link pentru informații suplimentare privind programele non-free pentru firmware

Pachetul wpasupplicant din Debian oferă două (2) moduri de operare convenabile puternic integrate în miezul infrastructurii de networking ; ifupdown .

Subiectele Acoperite

1. Specificul wpa_supplicant driver backend

* Tabelul driverelor suportate
* Recomandări Common Driver

2. Modul #1: Managed Mode

* Exemple
* Tabel de Opţiuni
* Explicaţii Importante despre Managed Mode
* Modul de Lucru

3. Modul #2: Roaming Mode

* wpa_supplicant.conf
* /etc/network/interfaces
* Controlarea Demonului de Roaming cu wpa_action
* Ajustarea Setării de Roaming
* Fişierul Log
* Folosirea Scriptului Extern de Mapping (ex. guessnet)
* /etc/network/interfaces with external mapping

4. Troubleshooting

* ssids ascunse

5. Consideraţii de Securitate

* Configurarea Permisiunilor Fişierelor

1. Specificarea wpa_supplicant driver backend

Wext driver backend va fi folosit pentru toate interfeţele care nu setează în mod explicit 'wpa-driver' ca tip de driver cerut pentru acel dispozitiv . Utilizatorilor ce folosesc kernel de Linux 2.4 sau 2.6 mai mic decât 2.6.14 li se va cere să specifice tipul de wpa-driver .

Driverele suportate

Driver Descriere
wext Linux wireless extensions (generic)

Recomandări Common Driver

Adaptoarele Intel Pro Wireless (ipw2100, ipw2200 şi ipw3945) toate folosesc 'wext' backend , în afară de cazul în care kernelul este mai vechi de 2.6.14

Madwifi suportă atât 'wext' cât şi 'madwifi' driver backends. 'wext' este de preferat , totuşi 'madwifi' e posibil să lucreze mai bine în anumite circumstanţe .

Ndiswrapper NU MAI SUPORTĂ 'ndiswrapper' driver backend ca în versiunea 1.16. De aceea , 'wext' trebuie folosit , în afară de cazul în care utilizaţi o versiune antică de ndiswrapper .

Setaţi tipul de driver din linia referitoare la interfaţa dispozitivului dumneavoastră(5) cu opţiunea 'wpa-driver' . De exemplu :

iface eth0 inet dhcp
	wpa-driver wext
	. . . . . more options

2. Modul #1: Managed Mode

Acest mod oferă posibilitatea să stabiliţi o conexiune via wpa_supplicant către o reţea cunoscută . Este similar cu modul în care lucrează pachetul wireless-tools . Fiecărui element cerut pentru stabilirea conexiunii via wpa_supplicant i se va atribui prefixul 'wpa-' şi va fi urmat de valoarea ce va fi folosită pentru acel element .

Exemplu de fişier wpa.conf pentru Mode #1 - Exemplul 1.
Example of a Mode #1 wpa.conf file - Example 1.
NOTE: the 'wpa-psk' value is only valid if:

   1. It is a plaintext (ascii) string between 8 and 63 characters in length
   2. It is a hexadecimal string of 64 characters

# 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

Tabel de Opţiuni

O scurtă enumerare de opţiuni 'wpa-' ce pot fi folosite în liniile /etc/network/interfaces pentru un dispozitiv wireless . Vezi secţiunea 'Explicaţii Importante despre Managed Mode' pentru informaţii despre valori 'wpa-' valide şi invalide .

NOTĂ : TOATE valorile sunt CASE SeNsITiVe

Element		Example Value		Description
=======         =============           ===========
wpa-ssid        plaintextstring         sets the ssid of your network
wpa-bssid       00:1a:2b:3c:4d:5e       the bssid of your AP
wpa-psk         0123456789......        your preshared wpa key. Use
                                        wpa_passphrase(8) to generate your psk
                                        from a passphrase and ssid pair
wpa-key-mgmt    NONE, WPA-PSK, WPA-EAP, list of accepted authenticated key
                IEEE8021X               management protocols
wpa-group       CCMP, TKIP, WEP104,     list of accepted group ciphers for WPA
                WEP40
wpa-pairwise    CCMP, TKIP, NONE        list of accepted pairwise ciphers for
                                        WPA
wpa-auth-alg    OPEN, SHARED, LEAP      list of allowed IEEE 802.11
                                        authentication algorithms
wpa-proto       WPA, RSN                list of accepted protocols
wpa-identity    myplaintextname         administrator provided username
                                        (EAP authentication)
wpa-password    myplaintextpassword     your password (EAP authentication)
wpa-scan-ssid   0 or 1                  toggles scanning of ssid with specific
                                        Probe Request frames
wpa-ap-scan     0 or 1 or 2             adjusts the scanning logic of
                                        wpa_supplicant

Funcţionalitatea completă a wpa_cli(8) trebuie implementată . Orice lipseşte este considerat bug şi ar trebui raportat ca atare . Patch-urile sunt întotdeauna bine venite .

Explicaţii Importante despre Managed Mode

Aproape toate opţiunile 'wpa-' cer ca cel puţin un ssid să fie specificat . Doar câteva opţiuni au efect global . Acestea sunt : 'wpa-ap-scan' și 'wpa-preauthenticate'.

Orice opţiune 'wpa-' dată pentru un dispozitiv în fişierul de interfeţe(5) este suficientă pentru a pune în acţiune demonul wpa_supplicant .

Scriptul wpasupplicant ifupdown face presupuneri despre 'type' (tipul) intrării care este validă pentru fiecare opţiune . De exemplu , presupune că anumite intrări sunt în plaintext şi aşează intrarea între ghilimele înainte de a o pasa către wpa_cli , care apoi adaugă intrarea blocului de reţea ce a fost creat via wpa_supplicant ctrl_interface socket.

Rulând manual ifup cu opţiunea '--verbose' va scoate la iveală toate comenzile folosite pentru a forma blocul de reţea via wpa_cli. Dacă volorile pe care le utilizaţi pentru orice opţiune wpa-* în /etc/network/interfaces sunt între ghilimele , atunci se va presupune că sunt intrări de tipul "plaintext" sau "ascii" .

Unele intrări se presupune că sunt în hexazecimal (ex. wpa-wep-key*). 'type' -tipul valorii din opţiunea wpa-psk , este determinată printr-o verificare simplă care este facută pentru mai mult decât un caracter non hexadecimal .

Modul de Lucru

Cum am menţionat mai devreme , fiecare element specific wpa_supplicant are prefixul 'wpa-'. Fiecare element este corelat unei proprietăţi wpa_supplicant descrise în wpa_supplicant.conf(5) , wpa_supplicant(8) şi wpa_cli(8) manpages .

Oricum supplicant este lansat fără nici o configurare prealabilă , şi wpa_cli face configurarea reţelei din intrările oferite de liniile 'wpa-*' . Iniţial , wpa_supplicant/wpa_cli nu setează direct proprietaţile dispozitivului (precum setarea unui essid cu iwconfig , de exemplu) , ci mai degrabă informează dispozitivul despre punctele de acces potrivite asocierii . Odată ce dispozitivul a scanat zona şi a găsit toate punctele de acces potrivite şi disponibile spre utilizare va seta aceste proprietaţi .

Scriptul care face toată această treabă este localizat la :

/etc/wpa_supplicant/ifupdown.sh
/etc/wpa_supplicant/functions.sh

ifupdown.sh este executat de run-parts , care în schimb este invocat de ifupdown în timpul fazelor 'pre-up', 'pre-down' şi 'post-down' .

În faza 'pre-up' , un demon wpa_supplicant este lansat urmat de o serie de comenzi wpa_cli care setează o configuraţie de reţea în funcţie de opţiunile 'wpa-' folosite în /etc/network/interfaces pentru dispozitivul fizic .

dacă este folosit wpa-roam , un demon wpa_cli este lansat în faza 'post-up' .

În faza 'pre-down' , demonul wpa_cli este terminat dacă există .

În faza 'post-down' , demonul wpa_supplicant este terminat .

3. Modul #2: Roaming Mode

Un mecanism de roaming simplistic dar suficient este oferit prin intermediul acestui pachet .Este de forma unui script activ wpa_cli , /sbin/wpa_action , ce preia controlul asupra ifupdown odată activat . Paginile manpage pentru wpa_action(8) descriu în amănunt detaliile sale tehnice .

Pentru a activa o interfaţă roaming adaptaţi liniile din următorul exemplu interfaces(5) :

iface eth1 inet manual
	wpa-driver wext
        wpa-roam /path/to/wpa_supplicant.conf

Doi daemoni sunt lansaţi în exemplul de mai sus : wpa_supplicant şi wpa_cli. este necesar să specificaţi un fişier wpa_supplicant.conf . Un punct de plecare bun este acest exemplu de fişier de configurare :

 # copy the template to /etc/wpa_supplicant/
        cp /usr/share/doc/wpasupplicant/examples/wpa-roam.conf \
                /etc/wpa_supplicant/wpa_supplicant.conf
        # allow only root to read and write to file
        chmod 0600 /etc/wpa_supplicant/wpa_supplicant.conf

NOTE: it is critical that the used wpa_supplicant.conf defines the location of
      the 'ctrl_interface' so that a communication socket is created for the
      wpa_cli (wpa-roam daemon) to attach. The mentioned example configuration,
      /usr/share/doc/wpasupplicant/examples/wpa-roam.conf, has been set to a
      sane default.

Va trebui să editaţi fişierul de configurare şi să adăugaţi toate blocurile de reţea pentru toate reţelele cunoscute . Dacă nu înţelegeţi despre ce e vorba aici începeţi să citiţi explicaţiile din manpages pentru wpa_supplicant.conf(5) .

Pentru fiecare reţea puteţi specifica o opţiune specială 'id_str' . Ea trebuie setată printr-un simplu şir text . Acest şir text formează baza profilului reţelei ; se corelează la o interfaţă logică definită în fişierul interfaces(5) . Dacă nici o optiune 'id_str' nu este dată pentru reţea , wpa_action va folosi interfaţa logică 'default' pentru întoarceri (fallback). Interfaţa fallback poate fi aleasă prin opţiunea 'wpa-default-iface' .

Ce înseamnă toate astea ? Să le ilustrăm printr-un exemplu luat din paginile manualului (manpage) wpa_action(8) .

exemplu de 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'
}
exemplu de /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

O interfaţă logică este pornită prin ifup , şi oprită prin ifdown , pentru că wpa_supplicant se asociază şi de-asociază cu reţeaua la care este conectată prin opţiunea 'id_str' folosită în fişierul de configurare wpa_supplicant.conf .

Un fişier log al acţiunilor /sbin/wpa_action's este creat la /var/log/wpa_action.log , vă rugăm să-l trimiteţi când raportaţi probleme .

Combinații de wpa_supplicant cu wpa_cli și wpa_gui

Procesul wpa_supplicant poate interacționa cu memberii grupului "netdev" dacă examplul de configurare roaming a fost utilizat așa cum este (sau de oricare group sau gid specificat de parametrul GROUP= crtl_interface).

# the default ctrl_interface option used in the example file
	# /usr/share/doc/wpasupplicant/examples/wpa-roam.conf
        ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

To interact with the supplicant, the wpa_cli (command line) and wpa_gui (QT)
have been provided. With these you may connect, disconnect, add/delete new
network blocks, provide required interactive security information and so on.

Controlarea Daemonului de Roaming cu wpa_action

Odată daemonul de roaming pornit , acesta preia controlul ifupdown . Asta e ; wpa_cli iniţializează ifup când wpa_supplicant a fost asociat cu succes unui punct de acces , şi iniţializează ifdown când conexiunea este pierdută sau terminată . Atât timp cât daemonul de roaming este activ , ifupdown nu trebuie controlat prin comenzi introduse manual , mai degrabă să fie activat /sbin/wpa_action pentru a opri şi reâncărca daemonul de roaming . De exemplu pentru a opri daemonul de romaing pentru interfaţa 'eth1' :

wpa_action eth1 stop

Când este necesar să faceţi actualizări daemonului de roaming cu detalii despre o nouă reţea, acest lucru se poate face fără a-l opri . Editaţi fişierul wpa_supplicant.conf care este folosit de către daemon cu detaliile noii reţele , adăugaţi setările de reţea opţionale corespunzătoare noii reţele în /etc/network/interfaces (legate de 'id_str') şi apoi 'reload' daemonul aşa :

wpa_action eth1 reload

Pentru detaliile tehnice complete asupra ce poate face wpa_action citiţi paginile wpa_action(8) manpage .

Ajustarea Setării de Roaming

Veţi întâlni situaţii când mai multe puncte de acces cunoscute sunt foarte aproape unele de altele . Puteţi alege manual care este cel preferat cu wpa_cli sau wpa_gui , sau puteţi specifica prioritatea fiecărei reţele . Aceasta este specificată cu opţiunea 'priority' din fişierul wpa_supplicant.conf .

Fişierul Log

Întreaga activitate a daemonului de roaming va fi consemnată în /var/log/wpa_action.log . Următoarele informaţii vor fi consemnate :

*time and date
*interface name and action event
*values of enviromental variables (WPA_ID, WPA_ID_STR, WPA_CTRL_DIR)
*ifupdown command executed
*wpa_cli status (based on WPA-PSK, network may display different info)
*bssid
*ssid
*id
*id_str
*pairwise_cipher
*group_cipher
*key_mgmt
*wpa_state
*ip_address

Utilizarea Scripturilor Externe de Mapping (ex. guessnet)

În plus faţă de mapping intern al interfeţei logice via 'id_str' , wpa_action poate lansa şi scripturi externe de mapping . Un script de mapping trebuie să întoarcă numele interfeţei logige ce va fi iniţializată . Orice script de mapping care lucrează prin mecanismul de mapping ifupdowns (vezi man interfaces) trebuie de asemeni să lucreze şi când este lansat prin wpa_action.

Pentru a lansa un script de mapping adăugaţi o linie 'wpa-mapping-script name-of-the-script' în secţiunea interfaces ale dispozitivului fizic de roaming . (Va trebui să specificaţi calea absolută către scriptul de mapping .)

Conţinutul liniilor care încep cu wpa-map este trecut mai departe către stdin din scriptul de mapping . Deoarece ifupdown permite doar o linie wpa-map puteţi adăuga orice numar la wpa-map pentru linii adiţionale . De exemplu :

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
        # ... additional wpa-mapX lines as required

Implicit scriptul de mapping va fi folosit doar când nici o valoare a optiunii 'id_str' nu este disponibilă pentru reţeaua curentă . Dacă doriţi să dezactivaţi complet asocierile 'id_str' şi să utilizaţi doar un script de mapping extern folosiţi opţiunea 'wpa-mapping-script-priority 1' pentru a trece peste comportamentul implicit .

Dacă scriptul de mapping întoarce un şir gol , wpa_action va reveni la folosirea interfeţei 'default' , în afară de cazul în care este definită o alternativă cu opţiunea 'wpa-roam-default-iface' .

Mai jos este oferit un exemplu avansat în care guessnet-ifupdown este folosit ca script extern de mapping .

exemplu de /etc/network/interfaces cu mapping extern
/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

În acest exemplu wpa_action va folosi guessnet pentru selectarea unei interfeţe logice corespunzătoare doar dacă nici o opţiune 'id_str' nu a fost furnizată în wpa_supplicant.conf pentru reţeaua curentă .

Liniile 'wpa-map' specifică pentru guessnet interfaţa logică ce trebuie testată precum şi interfaţa implicită ce va fi folosită în cazul în care toate testele eşuează . Liniile 'test' ale fiecărei interfeţe logige sunt folosite de guessnet pentru a determina dacă sunteţi conectaţi la reţea . De exemplu , guessnet va alege interfaţa logică 'home_static' dacă există un dispozitiv cu adresa IP 192.168.0.1 şi MAC 00:01:02:03:04:05 în reţeaua curentă . Dacă toate testele eşuează , interfaţa 'default-guessnet' va fi configurată .

Vă rugăm citiţi guessnet(8) manpage pentru mai multe informaţii .

4. Necazuri-Troubleshooting

Pentru a depana conexiunea , problemele de asociere şi autentificare , vă sugerăm să porniţi `wpa_cli -i <interface>` într-o consolă separată , înainte de a porni interfaţa . Folosiţi întâi comanda 'level 0' pentru a primi toate mesajele de depanare . Apoi utilizaţi `ifup --verbose <interface>` pentru a primi mesaje detaliate de la scriptul care porneşte wpasupplicant.

ssids ascunse

Pentru relaţii vedeţi #358137. Pentru a putea face asocierea cu procesele ssids ascunse vă rugăm încercaţi să setaţi opţiunea 'ap_scan=1' în secţiunea globală şi 'scan_ssid=1' în secţiunea blocului de reţea din fişierul wpa_supplicant.conf . Dacă folosiţi managed mode , puteţi face acestea în liniile :

iface eth1 inet dhcp
wpa-conf managed
wpa-ap-scan 1
wpa-scan-ssid 1
# ... additional options for your setup

Potrivit cu #368770 , procesul poate dura foarte mult când e vorba de asocierea la reţele securizate WEP . În anumite cazuri , setând parametrul 'ap_scan=2' în fişierul de configurare , (sau folosind o linie 'wpa-ap-scan 2' , ceea ce este echivalent) poate ajuta foarte mult la realizarea mai rapidă a asocierii .

5. Consideraţii de Securitate

Configurarea Permisiunilor Fişierelor

Este important să țineți PSK's şi alte informaţii delicate cu privire la setările reţelei dumneavoastră private , de aceea asigurați-vă că fişierele de configurare care conţin asemenea date pot fi citite doar de proprietar . De exemplu :

chmod 0600 /etc/network/interfaces
# substitute the path of your wpa_supplicant.conf file
chmod 0600 /etc/wpa_supplicant/wpa_supplicant.conf

Implicit , fişierul /etc/network/interfaces poate fi citit de oricine , şi de aceea nu este potrivit pentru a conţine chei secrete şi parole .

Content last revised 14/08/2010 0100 UTC