Gentoo Logo

[ << ] [ < ] [ Home ] [ > ] [ >> ]


4. Reti Wireless

Indice:

4.a. Introduzione

Il networking Wireless su Linux è solitamente abbastanza semplice. Ci sono due modi per configurare il wifi: tramite client grafici o tramite linea di comando.

Il modo più facile è usare un client grafico, una volta installato un ambiente desktop. La maggior parte dei client grafici, come wicd e NetworkManager, sono abbastanza auto-esplicativi. Offrono una comoda interfaccia punta-e-clicca che permette di collegarsi alla rete in pochi secondi.

Nota: wicd offre uno strumento a linea di comando in aggiunta all'interfaccia grafica principale. Lo si può ottenere effettuando l'emerge di wicd con la flag USE ncurses abilitata. L'utilità wicd-curses è particolarmente indicata agli utenti che non usano un ambiente desktop basato sulle librerie gtk, ma che vogliono comunque uno strumento a linea di comando facile che non richiede la modifica manuale dei file di configurazione.

Tuttavia, se non si desidera utilizzare un client grafico,è possibile configurare wifi tramite la linea di comando modificando pochissimi file di configurazione. Ciò comporta un po' più di tempo per impostare il collegamento, ma richiede meno pacchetti da scaricare ed installare. Siccome i client grafici sono praticamente autoesplicativi (con schermate utilii nelle relative homepage), l'attenzione verrà concentrate sulle alternative a linea di comando.

È possibile impostare il collegamento alla rete wireless tramite linea di comando installando wireless-tools o wpa_supplicant. La cosa importante da ricordare è che è possibile configurare le reti wireless a livello globale e non in base all'interfaccia.

wpa_supplicant è la scelta migliore. Per un elenco di tutti i driver supportati, leggere il sito di wpa_supplicant.

wireless-tools supporta quasi tutte le schede e i driver, ma non può connettersi ad Access Point configurati solamente con WPA. Se la propria rete offre solamente la criptazione WEP o è completamente aperta, si potrebbe preferire la semplicità di wireless-tools.

Avvertenza: Il driver linux-wlan-ng non è supportato ancora da baselayout. Questo perchè linux-wlan-ng ha la propria installazione e configurazione che è differente da quella di tutti gli altri. Gli sviluppatori di linux-wlan-ng sembra vogliano cambiare le impostazioni a wireless-tools - quando accadrà si potrà usare linux-wlan-ng con baselayout.

4.b. WPA Supplicant

WPA Supplicant è un pacchetto che permette di connettersi ad access point WPA abilitati.

Codice 2.1: Installare wpa_supplicant

# emerge net-wireless/wpa_supplicant

Importante: Bisogna avere abilitato CONFIG_PACKET nel kernel per fare funzionare wpa_supplicant. Eseguire grep CONFIG_PACKET /usr/src/linux/.config per verificare se questa opzione è abilitata nel proprio kernel.

Nota: In base alle proprie flag USE, wpa_supplicant può installare un'interfaccia grafica scritta in Qt4, che si integrerà perfettamente con KDE. Per ottenerla, eseguire echo "net-wireless/wpa_supplicant qt4" >> /etc/portage/package.use come utente root prima di effettuare l'emerge di wpa_supplicant.

Configurare /etc/conf.d/net, per specificare l'utilizzo preferito di wpa_supplicant rispetto a wireless-tools (se entrambi sono installati, wireless-tools è quello predefinito).

Codice 2.2: Configurazione di /etc/conf.d/net per wpa_supplicant

# Si preferisce wpa_supplicant a wireless-tools
modules="wpa_supplicant"

# E' importante dire a wpa_supplicant quale driver dovrebbe
# essere usato in quanto non riesce ancora ad indovinarlo correttamente
wpa_supplicant_eth0="-Dmadwifi"

Nota: Se si sta usando il driver host-ap si deve mettere la scheda in Managed mode prima di usarla con wpa_supplicant. Per ottenere ciò, si può usare iwconfig_eth0="mode managed" in /etc/conf.d/net.

Semplice vero? Tuttavia c'è ancora da configurare wpa_supplicant che risulta essere un po' più difficile in base alla tipo di configurazione di sicurezza degli Access Point a cui si sta cercando di connettere. L'esempio seguente è preso e semplificato da /usr/share/doc/wpa_supplicant-<versione>/wpa_supplicant.conf.gz il quale viene fornito insieme a wpa_supplicant.

Codice 2.3: Un esempio di /etc/wpa_supplicant/wpa_supplicant.conf

# La riga sottostante non deve essere cambiata altrimenti non funziona
ctrl_interface=/var/run/wpa_supplicant

# Assicurarsi che solo root possa leggere la configurazione WPA
ctrl_interface_group=0

# Lasciare che wpa_supplicant si occupi della scansione e della selezione AP
ap_scan=1

# Caso semplice: WPA-PSK, PSK come un ASCII passphrase, permette tutte cifre valide
network={
  ssid="simple"
  psk="very secret passphrase"
  # Più alta è la priorità, prima c'è riconoscimento
  priority=5
}

# Lo stesso del precedente, ma è richiesto la scansione specifica per
# SSID (per AP che rifiutano il broadcast del SSID)
network={
  ssid="second ssid"
  scan_ssid=1
  psk="very secret passphrase"
  priority=2
}

# E' usato solo WPA-PSK. Qualsiasi combinazione di cifre valida è accettata
network={
  ssid="example"
  proto=WPA
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP WEP104 WEP40
  psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
  priority=2
}

# Connessione plaintext (no WPA, no IEEE 802.1X)
network={
  ssid="plaintext-test"
  key_mgmt=NONE
}

# Connessione condivisa WEP key (no WPA, no IEEE 802.1X)
network={
  ssid="static-wep-test"
  key_mgmt=NONE
  # Le chiavi tra doppi apici sono in formato ASCII
  wep_key0="abcde"
  # Le chiavi specificate senza doppi apici sono in formato esadecimales
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
}

# Connessione condivisa WEP key (no WPA, no IEEE 802.1X) usando
# autenticazione Shared Key IEEE 802.11
network={
  ssid="static-wep-test2"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
  auth_alg=SHARED
}

# Rete IBSS/ad-hoc con WPA-None/TKIP
network={
  ssid="test adhoc"
  mode=1
  proto=WPA
  key_mgmt=WPA-NONE
  pairwise=NONE
  group=TKIP
  psk="secret passphrase"
}

4.c. Wireless Tools

Impostazione iniziale e Managed Mode

Wireless Tools forniscono un modo generico di configurare le interfacce wireless di base fino al livello di sicurezza WEP. Sebbene WEP sia un metodo di sicurezza debole, è anche quello prevalente.

La configurazione di Wireless Tools è controllata da poche variabili principali. L'esempio di configurazione seguente dovrebbe descrivere tutto il necessario. Una cosa da tenere in mente è che nessuna configurazione significa "connesso al più forte non criptato Access Point" - si cerca e ci si connette sempre a qualcosa.

Codice 3.1: Installare wireless-tools

# emerge net-wireless/wireless-tools

Nota: Si possono mettere le impostazioni wireless in /etc/conf.d/wireless, ma questa guida raccomanda di metterle in /etc/conf.d/net.

Importante: Si deve consultare la guida nomi di variabili.

Codice 3.2: Esempio di impostazione iwconfig in /etc/conf.d/net

# Si preferisce iwconfig a wpa_supplicant
modules="iwconfig"

# Configurare le chiavi WEP per gli Access Point denominati ESSID1 e ESSID2
# Si potrebbero configurare fino a 4 chiavi WEP, ma si utilizzarne solamente 1 alla volta
# per cui si fornisce un indice predeinito di [1] per impostare la chiave [1] e in
# seguito cambiare la chiave attiva a [1]
# Viene fatto questo in caso si definiscano altri ESSID per usare chiavi WEP diverse da 1
#
# Prefissare la chiave con s: significa che è una chiave ASCII, altrimenti è una chiave esadecimale (HEX)
#
# enc open specificata sicurezza aperta (più sicura)
# enc restricted specificata sicurezza ristretta (meno sicura)
key_ESSID1="[1] s:tuachiavequi key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"

# Il seguente funziona solo quando si cercano Access Point disponibili

# Qualche volta è visibile più di un Access Point per cui si deve
# definire un ordine preferito per connettersi
preferred_aps="'ESSID1' 'ESSID2'"

Regole personalizzate per la selezione degli Access Point

Si possono aggiungere alcune opzioni extra per raffinare la selezione degli Access Point, ma normalmente non sono richieste.

Si può decidere se ci si connette solo a Access Point preferiti o no. Come regola predefinita se ogni configurazione fallisce e ci si può connettere a un Access Point non criptato allora va bene. Questo può essere controllato dalla variabile associate_order. Ecco una tabella di valori e come essi controllano questo aspetto.

Valore Descrizione
any Comportamento predefinito
preferredonly Ci si connette solo ad AP visibili nell'elenco preferito
forcepreferred Ci si connette ad AP nell'ordine preferito se non sono stati trovati in una scansione
forcepreferredonly Non fa la scansione per gli AP, invece cerca di connettere a ognuno di essi in ordine
forceany Uguale a forcepreferred, in più si connette ad ogni altro AP disponibile

Infine sono disponibili alcune selezioni blacklist_aps e unique_ap. blacklist_aps funziona in modo simile a preferred_aps. unique_ap è un valore yes o no che dice se una seconda interfaccia wireless può connettersi allo stesso Access Point come la prima interfaccia.

Codice 3.3: Esempio di blacklist_aps e unique_ap

# Qualche volta non ci si vuole connettere a alcuni access point
blacklist_aps="'ESSID3' 'ESSID4'"

# Se si possiede più di una scheda wireless, è possibile dare il
# permesso a ogni scheda di associarsi (o no) allo stesso Access Point
# Valori sono "yes" e "no"
# Predefinito è "yes"
unique_ap="yes"

Modi Ad-Hoc e Master

Si può volere una impostazione Ad-Hoc se non si riesce a connettere a un Access Point con la modalità "managed".

Codice 3.4: Tornare al modo ad-hoc

adhoc_essid_eth0="This Adhoc Node"

C'è una configurazione apposita per connettersi a reti Ad-Hoc o funzionare in modo Master per trasformarsi in un Access Point, ricordarsi comunque di specificare le chiavi WEP come mostrato in precedenza.

Codice 3.5: Esempio di configurazione ad-hoc/master

# Impostare il modo - può essere managed (predefinito), ad-hoc o master
# Non tutti i driver supportano tutti i modi
mode_eth0="ad-hoc"

# Impostare il ESSID dell'interfaccia
# Nel modo managed, questo forza l'interfaccia ad effettuare un tentativo di connessione
# solamente al ESSID specificato
essid_eth0="This Adhoc Node"

# Viene usato il canale 3 se non ne viene specificato uno
channel_eth0="9"

Importante: L'esempio precedente è preso dalla documentazione BSD che si trova nella documentazione NetBSD. Sono possibili 14 canali; i canali 1-11 sono legali per il Nord America, canali 1-13 per la maggior parte dell'Europa, canali 10-13 per la Francia, e solo il canale 14 per il Giappone. Per ulteriori chiarimenti si rimanda alla documentazione della propria scheda o dell'access point. Assicurarsi che il canale selezionato sia lo stesso canale dell'access point (o dell'altra scheda in una rete ad-hoc). L'impostazione predefinita per le schede vendute in Nord America e nella maggior parte dell'Europa è 3, quella predefinita per le schede vendute in Francia è 11, e quella predefinita per le schede vendute in Giappone è 14.

Risoluzione di problemi con Wireless Tools

Ci sono alcune variabili che possono aiutare a far funzionare la propria rete wireless, conseguentemente a problemi di driver o di ambiente. Ecco una tabella contenente altre opzioni che si possono provare.

Variabile Valore predefinito Descrizione
iwconfig_eth0 Vedere la pagina man di iwconfig per dettagli su cosa è possibile indicare a iwconfig
iwpriv_eth0 Vedere la pagina man di iwpriv per dettagli su cosa è possibile indicare a iwpriv
sleep_scan_eth0 0 Il numero di secondi che aspetta prima di fare la scansione. E' necessario quando il driver/firmware ha bisogno di più tempo per attivarsi prima che possa essere usato.
sleep_associate_eth0 5 Il numero di secondi che aspetta l'interfaccia per associarsi con l'Access Point prima di spostarsi al prossimo
associate_test_eth0 MAC Alcuni driver non resettano l'indirizzo MAC associato con uno invalido quando perdono o cercano di effettuare un'associazione. Alcuni driver non resettano il livello di qualità quando perdono o cercano di effettuare un'associazione. Impostazioni valide sono MAC, quality e all.
scan_mode_eth0 Alcuni driver devono fare la scansione nel modo ad-hoc, così se questa fallisce cercano di impostare ad-hoc qui
iwpriv_scan_pre_eth0 Manda alcuni comandi iwpriv all'interfaccia prima della scansione. Vedere la pagina man di iwpriv per altre informazioni
iwpriv_scan_post_eth0 Manda alcuni comandi iwpriv alla interfaccia dopo la scansione. Vedere la pagina man di iwpriv per altre informazioni

4.d. Definire la configurazione di rete per ESSID

Qualche volta quando ci si connette a ESSID1 si deve avere un IP statico e quando ci si connette a ESSID2 si deve avere DHCP. La maggior parte delle variabili dei moduli possono essere definite per ESSID. Ecco come farlo.

Nota: Funzionano se si usa WPA Supplicant o Wireless Tools.

Importante: Si deve consultare la guida nomi di variabili.

Codice 4.1: Sovrapporre le impostazioni di rete per ESSID

config_ESSID1="192.168.0.3/24 brd 192.168.0.255"
routes_ESSID1="default via 192.168.0.1"

config_ESSID2="dhcp"
fallback_ESSID2="192.168.3.4/24"
fallback_route_ESSID2="default via 192.168.3.1"

# Si possono definire nameserver e altre cose
# NOTARE: DHCP sovrappone queste impostazioni a meno che
# gli venga detto di non farlo
dns_servers_ESSID1="192.168.0.1 192.168.0.2"
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"

# Si sovrappone dall'indirizzo MAC dell'Access Point
# E' pratico se si va a posizioni differenti che hanno lo stesso ESSID
config_001122334455="dhcp"
dhcpcd_001122334455="-t 10"
dns_servers_001122334455="192.168.0.1 192.168.0.2"

[ << ] [ < ] [ Home ] [ > ] [ >> ]


Stampa

Visualizza tutto

Aggiornato il 11 settembre 2012

La versione originale di questo documento è più recente ed è stata aggiornata il 17 dicembre 2013

Oggetto: La configurazione delle reti Wireless potrebbe essere complessa, comunque questa guida cercherà di aiutare il lettore a farle funzionare!

Sven Vermeulen
Autore

Grant Goodyear
Autore

Roy Marples
Autore

Daniel Robbins
Autore

Chris Houser
Autore

Jerry Alexandratos
Autore

Seemant Kulleen
Sviluppo x86

Tavis Ormandy
Sviluppo Alpha

Jason Huebel
Sviluppo AMD64

Guy Martin
Sviluppo HPPA

Tim Yamin
Sviluppo IA64

Pieter Van den Abeele
Sviluppo PPC

Joe Kallar
Sviluppo SPARC

Mike Frysinger
Sviluppo

John P. Davis
Redazione

Pierre-Henri Jondot
Redazione

Eric Stockbridge
Redazione

Rajiv Manglani
Redazione

Jungmin Seo
Redazione

Stoyan Zhekov
Redazione

Jared Hudson
Redazione

Colin Morey
Redazione

Jorge Paulo
Redazione

Carl Anderson
Redazione

Jon Portnoy
Redazione

Zack Gilburd
Redazione

Jack Morgan
Redazione

Benny Chuang
Redazione

Erwin
Redazione

Joshua Kinard
Redazione

Stuart Longland
Redazione

Tobias Scherbaum
Redazione

Xavier Neys
Redazione

Joshua Saddler
Redazione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Pacella
Traduzione

Enrico Morelli
Traduzione

Davide Cendron
Traduzione

Sergio Vaccaro
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.