Difference between revisions of "WPA supplicant (Italiano)"

From ArchWiki
Jump to: navigation, search
(39 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Configurazione e connessione==
+
[[Category:Wireless Networking (Italiano)]]
 +
[[es:WPA supplicant]]
 +
[[en:WPA supplicant]]
 +
[[ru:WPA Supplicant]]
 +
[[zh-CN:WPA Supplicant]]
  
WPA Supplicant è pacchettizzato con un file di configurazione d'esempio: {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}}, il quale è ben commentato e fornisce numerose informazioni sulle meccaniche di rete. Tutte le variabili usate in questo articolo sono descritte in questo file, che contiene inoltre molte configurazioni d'esempio già preimpostate, pertanto ne è fortemente consigliata la lettura, assieme alle pagine di manuale {{ic|man wpa_supplicant}} e {{ic|man wpa_supplicant.conf}}.
+
{{Article summary start}}
 +
{{Article summary text|Installazione ed utilizzo di wpa_supplicant}}
 +
{{Article summary heading|Argomenti correlati}}
 +
{{Article summary wiki|Configuring Network (Italiano)|Configurazione della rete}}
 +
{{Article summary wiki|Wireless Setup (Italiano)|Installazione dispositivi wireless}}
 +
{{Article summary end}}
  
Il file di configurazione di WPA Supplicant contiene tutte le impostazioni relative a {{ic|wpa_supplicant}}. È possibile crearne quanti se ne vuole e posizionarli dove più vi aggrada, dal momento che è necessario specificare il file di configurazione da utilizzare ad ogni invocazione di {{ic|wpa_supplicant}}.
+
[http://hostap.epitest.fi/wpa_supplicant/ wpa_supplicant] è un [[Wikipedia:Supplicant_(computer) | Supplicant]] WPA con supporto a WEP, WPA e WPA2 ([[Wikipedia:IEEE_802.11i|IEEE 802.11i]] / RSN (Robust Secure Network)) adatto all'uso con PC desktop, portatili e persino in sistemi embedded. {{ic|wpa_supplicant}} è il componente IEEE 802.1X/WPA utilizzato dai client, implementa la negoziazione della chiave con un WPA Authenticator, controlla il roaming e l'associazione / autenticazione del driver wireless.
  
Il contenuto del file è molto semplice:
+
==Installazione==
  
* La prima parte riguarda la configurazione generale. È una serie di linee contenenti coppie ''chiave-valore''.
+
Si installi {{Pkg|wpa_supplicant}} dai [[Official Repositories (Italiano)|repository ufficiali]].
* La seconda parte è composta dai ''network blocks'', uno per ogni profilo che si desidera impostare.
+
  
Per semplificare, si lascerà invariato il file di configurazione d'esempio e si partirà da zero creando il file {{ic|/etc/wpa_supplicant.conf}}.
+
È inoltre possibile installare {{Pkg|wpa_supplicant_gui}}; un frontend grafico per {{ic|wpa_supplicant}} che utilizza il toolkit {{Pkg|qt4}}.
  
Ci sono molti modi per configurare {{ic|wpa_supplicant}}, ed è possibile scegliere tra quelli sotto elencati.
+
==Associazione==
  
===Metodo manuale===
+
Per associarsi ad un Access Point wireless utilizzando {{ic|wpa_supplicant}}, utilizzare il tool a riga di comando {{ic|wpa_cli}}, incluso nel pacchetto. Per utilizzare {{ic|wpa_cli}} è necessario specificare una interfaccia di controllo nel file di configurazione, aggiungendo una linea simile a {{ic|1=ctrl_interface=/var/run/wpa_supplicant}}.
  
====File di configurazione====
+
Per abilitare il salvataggio delle modifiche effettuate tramite {{ic|wpa_cli}}, si aggiunga {{ic|1=update_config=1}} al file di configurazione, quindi si avvii {{ic|wpa_supplicant}} come segue:
  
Innanzitutto è necessario essere in possesso di tutti i parametri relativi alla connessione al proprio Access Point, gran parte dei quali ottenibili con il tool {{ic|iwlist}}:
+
# wpa_supplicant -B -i ''interface'' -c ''/percorso/al/file/di/configurazione''
  
# iwlist wlan0 scan
+
Si invochi {{ic|wpa_cli}} senza argomenti per ottenere un prompt interattivo ({{ic|>}}). Il prompt supporta la tab completion e contiene le descrizioni dei comandi autocompletati. Ad esempio, il comando {{ic|scan}} avvia una scansione delle reti wireless vicine ed invia una notifica una volta che l'operazione è stata completata.
  
Ulteriori dettagli sono disponibili [https://wiki.archlinux.org/index.php/Wireless_Setup_%28Italiano%29#Ricerca_degli_Access_Points qui].
+
Si esegua quindi:
  
Ora dovreste conoscere i seguenti parametri necessari a {{ic|wpa_supplicant}} per funzionare:
+
{{bc|<nowiki>
 +
> scan_results
 +
bssid / frequency / signal level / flags / ssid
 +
00:00:00:00:00:00 2462 -49 [WPA2-PSK-CCMP][ESS] MYSSID
 +
11:11:11:11:11:11 2437 -64 [WPA2-PSK-CCMP][ESS] ANOTHERSSID
 +
</nowiki>}}
  
* SSID
+
Per associarsi con ''MYSSID'' sarà necessario informare {{ic|wpa_supplicant}}. Ogni rete è numerata a partire da zero ed è possibile inserire la [http://en.wikipedia.org/wiki/Pre-shared_key PSK] senza apici, alternativamente all'inserimento della passphrase proposto nell'esempio sotto:
* proto (opzionale su reti non protette)
+
* key_mgmt
+
* pairwise
+
* group
+
  
Inoltre, si potrebbe aver bisogno dei parametri di autenticazione (EAP, PEAP, ecc.) se si è su reti particolari, come quelle universitarie, ad esempio.
+
{{bc|<nowiki>
 +
> add_network
 +
0
 +
> set_network 0 ssid "MYSSID"
 +
> set_network 0 psk "passphrase"
 +
> enable_network 0
 +
<2>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed (reauth) [id=0 id_str=]
 +
</nowiki>}}
  
=====Primi ritocchi=====
+
Il messaggio di notifica indica l'avvenuta associazione con l'Access Point scelto: sarà ora possibile ottenere un indirizzo IP tramite {{Pkg|dhcpcd}} o {{Pkg|iproute2}}.
  
È ora possibile procedere con la creazione di un network block nel file di configurazione:
+
Si leggano gli articoli correlati per ulterori informazioni.
  
{{hc|wpa_supplicant.conf|
+
Per salvare le informazioni di rete nel file di configurazione si esegua:
<nowiki>
+
network={
+
        ssid="mywireless_ssid"
+
        psk="secretpassphrase"
+
        # parametri aggiuntivi (proto, key_mgmt, etc.)
+
}
+
</nowiki>}}
+
  
Questo è il file di configurazione di base necessario affinchè l'autenticazione WPA funzioni. La prima riga è la dichiarazione d'apertura del network block, la seconda contiene l'SSID dell'Access Point al quale si vuole connetterti, mentre la terza è la passphrase.
+
> save_config
 +
OK
  
{{Attenzione|Ci si ricordi di usare i doppi apici alle voci ssid e psk!}}
+
==Configurazione==
  
=====Passphrase e PSK=====
+
{{Pkg|wpa_supplicant}} fornisce un file di configurazione d'esempio situato in {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}} che documenta in modo dettagliato tutte le opzioni disponibili e relative configurazioni.
  
Il lettore attento avrà notato che la PSK dovrebbe essere una stringa esadecimale. Infatti, la passphrase e la PSK non sono esattamente la stessa cosa: la passphrase è una chiave leggibile dall'utente che viene usata in combinazione con il SSID per generare la chiave di rete "machine friendly" conosciuta come "PSK". A livello di rete, la passphrase non viene mai usata, e rappresenta solamente un modo comodo per gestire la chiave da parte degli utenti.
+
Il contenuto minimo richiesto dal file di configurazione è un network block; ad esempio:
  
Se si vuole risparmiare tempo, è possibile fornire direttamente la versione esadecimale della passphrase, usando l'utility {{ic|wpa_passphrase}}, che è fornita dal pacchetto {{Pkg|wpa_supplicant}} stesso. Si utilizzi la sintassi {{ic|wpa_passphrase [ssid] [passphrase]}}.
+
{{hc|/etc/wpa_supplicant/foobar.conf|<nowiki>
 +
network={
 +
    ssid="..."
 +
  }
 +
</nowiki>}}
  
* Un esempio:
+
Quanto sopra può essere facilmente generato utilizzando il tool {{ic|wpa_passphrase}}:
  
# wpa_passphrase mywireless_ssid "secretpassphrase"
+
{{hc|$ wpa_passphrase ''essid'' ''passphrase''|2=
 +
network={
 +
  ssid=''essid''
 +
  #psk=''passphrase''
 +
  psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
 +
}
 +
}}
  
Il comando dovrebbe generare il seguente network block:
+
{{Suggerimento|È possibile utilizzare un file di testo come input per l'inserimento di alcune passphrase particolarmente complesse:
 +
# wpa_passphrase essid < ''passphrase''.txt > /etc/wpa_supplicant/wpa_supplicant-''interfaccia''.conf
 +
}}
  
network={
+
Una volta ottenuto un file di configurazione, sarà possibile avviare il demone ''wpa_supplicant'' e collegarsi alla rete wireless richiesta:
        ssid="mywireless_ssid"
+
        #psk="secretpassphrase"
+
        psk=7b271c9a7c8a6ac07d12403a1f0792d7d92b5957ff8dfd56481ced43ec6a6515
+
}
+
  
La terza linea è la passphrase (la chiave leggibile dall'utente) e la quarta la PSK (la chiave esadecimale), che è richiesta per la connessione. Il {{ic|#}} commenta la linea relativa alla passphrase, dal momento che utilizzeremo la PSK per la connessione.
+
# wpa_supplicant -B -i ''interfaccia'' -c ''file_di_configurazione''
  
{{Nota|La PSK esadecimale non deve essere inclusa tra doppi apici.}}
+
Potrebbe essere necessario specificare il driver da utilizzare: per una lista di quelli supportati, eseguire il comando {{ic|wpa_supplicant -h}}. Si noti che il driver {{ic|nl80211}} è da preferirsi rispetto al vecchio {{ic|wext}}, da ritenersi deprecato.
 +
Il driver viene specificato tramite il parametro {{ic|-D}}:
  
* Utilizzando {{ic|wpa_passphrase}} si specifichi il proprio SSID reale e la propria passphrase, e si rediriga l'output su {{ic|/etc/wpa_supplicant.conf}}:
+
# wpa_supplicant -B -i ''interfaccia'' -c ''file_di_configurazione'' -D ''driver''
  
  # wpa_passphrase mywireless_ssid "secretpassphrase" >> /etc/wpa_supplicant.conf
+
{{Suggerimento|È possibile combinare l'utilizzo di ''wpa_supplicant'' e ''wpa_passphrase'' per connettersi a quasi tutte le reti WPA2 (Personal):
 +
  # wpa_supplicant -B -i ''interfaccia'' -c <(wpa_passphrase ''essid'' ''passphrase'')
 +
}}
  
Il {{ic|>>}} redirigerà l'output su {{ic|/etc/wpa_supplicant.conf}}, aggiungendolo ad eventuali righe preesistenti. È possibile aggiungere un numero illimitato di network blocks, e wpa_supplicant saprà quale utilizzare in base agli SSID trovati nell'area.
+
Una volta autenticati, non rimane che connettersi utilizzando un [[Configuring Network (Italiano)#Indirizzo_IP_Statico|IP statico]] oppure tramite [[Configuring Network (Italiano)#Indirizzo_IP_dinamico|DHCP]]. Ad esempio:
  
=====Opzioni del network block=====
+
# dhcpcd ''interfaccia''
  
Tutti i parametri di sicurezza devono essere specificati qui. Si noti che se si è insicuri sui valori richiesti dal proprio Access Point, è possibile utilizzarne diversi contemporaneamente, e {{ic|wpa_supplicant}} sceglierà automaticamente quello funzionante.
+
==Avvio tramite systemd==
  
Ad esempio, è possibile aggiungere:
+
Una possibile configurazione consiste nell'abilitazione di ''wpa_supplicant'' e ''dhcpcd'' su un'interfaccia specifica (si veda a tal proposito [[Systemd (Italiano)#Usare le unità]]):
  
  proto=WEP WPA
+
  # systemctl enable wpa_supplicant@''interfaccia''
 +
# systemctl enable dhcpcd@''interfaccia''
  
in modo che il se prorpio Access Point utilizza WEP o WPA, il tutto funzionerà in entrambi i casi. Se però lo stesso utilizza RSN (ovvero WPA2), sarà necessario aggiungerlo agli altri valori.
+
La sezione {{ic|[Install]}} del servizio di systemd fornito da ''wpa_supplicant'' è sbagliata (si veda [http://w1.fi/bugz/show_bug.cgi?id=477 questo] bug report). Se la propria interfaccia di rete non si chiama {{ic|wlan0}}, sarà necessario copiare il servizio in {{ic|/etc/systemd/system}} e modificare la sezione {{ic|[Install]}} in questo modo:
  
Se il SSID è nascosto, si aggiunga la seguente opzione al network block:
+
[Install]
 +
WantedBy=multi-user.target
  
scan_ssid=1
+
Si consulti [[Systemd (Italiano)#Rimpiazzare le unità fornite]] per ulteriori informazioni sulla modifica delle unità.
  
Se è necessario connettersi a più reti, si definisca un altro network block nello stesso file. È possibile specificare la priorità per ognuno di essi:
+
{{Nota|Se si utilizza il servizio {{ic|dhcpcd@.service}} è possibile sostituire il parametro {{ic|-w}} con {{ic|-b}}, in modo che {{ic|dhcpcd}} non aspetti di ricevere un indirizzo prima di essere messo in background.}}
  
priority=17
+
{{Suggerimento|{{Pkg|dhcpcd}} contiente un hook (abilitato di default) per l'avvio automatico di ''wpa_supplicant'' su tutte le interfacce wireless, che viene attivato solamente se è presente il file di configurazione {{ic|/etc/wpa_supplicant.conf}} e se non vi è nessun processo di ''wpa_supplicant'' in ascolto su quella specifica interfaccia. Per questo motivo è possibile utilizzare semplicemente il servizio {{ic|dhcpcd@''interfaccia''}} per la configurazione della rete, senza abilitare {{ic|wpa_supplicant@''interfaccia''}}.}}
  
Si cambi la priorità a piacere, ricordandosi che i numeri più grandi avranno la precedenza.
+
==Link correlati==
  
Ci sono inoltre numerose altre opzioni di configurazioni impostabili nel network block che è possibile trovare nel file di configurazione originale.
+
* [http://wireless.kernel.org/en/users/Documentation/wpa_supplicant documentazione di wpa_supplicant su kernel.org]
Nella maggior parte dei casi non si avrà bisogno di specificare nulla oltre ai paremetri di default.
+

Revision as of 18:41, 16 October 2013


Summary help replacing me
Installazione ed utilizzo di wpa_supplicant
Argomenti correlati
Configuring Network (Italiano)
Wireless Setup (Italiano)

wpa_supplicant è un Supplicant WPA con supporto a WEP, WPA e WPA2 (IEEE 802.11i / RSN (Robust Secure Network)) adatto all'uso con PC desktop, portatili e persino in sistemi embedded. wpa_supplicant è il componente IEEE 802.1X/WPA utilizzato dai client, implementa la negoziazione della chiave con un WPA Authenticator, controlla il roaming e l'associazione / autenticazione del driver wireless.

Installazione

Si installi wpa_supplicant dai repository ufficiali.

È inoltre possibile installare wpa_supplicant_gui; un frontend grafico per wpa_supplicant che utilizza il toolkit qt4.

Associazione

Per associarsi ad un Access Point wireless utilizzando wpa_supplicant, utilizzare il tool a riga di comando wpa_cli, incluso nel pacchetto. Per utilizzare wpa_cli è necessario specificare una interfaccia di controllo nel file di configurazione, aggiungendo una linea simile a ctrl_interface=/var/run/wpa_supplicant.

Per abilitare il salvataggio delle modifiche effettuate tramite wpa_cli, si aggiunga update_config=1 al file di configurazione, quindi si avvii wpa_supplicant come segue:

# wpa_supplicant -B -i interface -c /percorso/al/file/di/configurazione

Si invochi wpa_cli senza argomenti per ottenere un prompt interattivo (>). Il prompt supporta la tab completion e contiene le descrizioni dei comandi autocompletati. Ad esempio, il comando scan avvia una scansione delle reti wireless vicine ed invia una notifica una volta che l'operazione è stata completata.

Si esegua quindi:

> scan_results
bssid / frequency / signal level / flags / ssid
00:00:00:00:00:00 2462 -49 [WPA2-PSK-CCMP][ESS] MYSSID
11:11:11:11:11:11 2437 -64 [WPA2-PSK-CCMP][ESS] ANOTHERSSID

Per associarsi con MYSSID sarà necessario informare wpa_supplicant. Ogni rete è numerata a partire da zero ed è possibile inserire la PSK senza apici, alternativamente all'inserimento della passphrase proposto nell'esempio sotto:

> add_network
0
> set_network 0 ssid "MYSSID"
> set_network 0 psk "passphrase"
> enable_network 0
<2>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed (reauth) [id=0 id_str=]

Il messaggio di notifica indica l'avvenuta associazione con l'Access Point scelto: sarà ora possibile ottenere un indirizzo IP tramite dhcpcd o iproute2.

Si leggano gli articoli correlati per ulterori informazioni.

Per salvare le informazioni di rete nel file di configurazione si esegua:

> save_config
OK

Configurazione

wpa_supplicant fornisce un file di configurazione d'esempio situato in /etc/wpa_supplicant/wpa_supplicant.conf che documenta in modo dettagliato tutte le opzioni disponibili e relative configurazioni.

Il contenuto minimo richiesto dal file di configurazione è un network block; ad esempio:

/etc/wpa_supplicant/foobar.conf
network={
    ssid="..."
  }

Quanto sopra può essere facilmente generato utilizzando il tool wpa_passphrase:

$ wpa_passphrase essid passphrase
network={
   ssid=essid
   #psk=passphrase
   psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
}
Suggerimento: È possibile utilizzare un file di testo come input per l'inserimento di alcune passphrase particolarmente complesse:
# wpa_passphrase essid < passphrase.txt > /etc/wpa_supplicant/wpa_supplicant-interfaccia.conf

Una volta ottenuto un file di configurazione, sarà possibile avviare il demone wpa_supplicant e collegarsi alla rete wireless richiesta:

# wpa_supplicant -B -i interfaccia -c file_di_configurazione

Potrebbe essere necessario specificare il driver da utilizzare: per una lista di quelli supportati, eseguire il comando wpa_supplicant -h. Si noti che il driver nl80211 è da preferirsi rispetto al vecchio wext, da ritenersi deprecato. Il driver viene specificato tramite il parametro -D:

# wpa_supplicant -B -i interfaccia -c file_di_configurazione -D driver
Suggerimento: È possibile combinare l'utilizzo di wpa_supplicant e wpa_passphrase per connettersi a quasi tutte le reti WPA2 (Personal):
# wpa_supplicant -B -i interfaccia -c <(wpa_passphrase essid passphrase)

Una volta autenticati, non rimane che connettersi utilizzando un IP statico oppure tramite DHCP. Ad esempio:

# dhcpcd interfaccia

Avvio tramite systemd

Una possibile configurazione consiste nell'abilitazione di wpa_supplicant e dhcpcd su un'interfaccia specifica (si veda a tal proposito Systemd (Italiano)#Usare le unità):

# systemctl enable wpa_supplicant@interfaccia
# systemctl enable dhcpcd@interfaccia

La sezione [Install] del servizio di systemd fornito da wpa_supplicant è sbagliata (si veda questo bug report). Se la propria interfaccia di rete non si chiama wlan0, sarà necessario copiare il servizio in /etc/systemd/system e modificare la sezione [Install] in questo modo:

[Install]
WantedBy=multi-user.target

Si consulti Systemd (Italiano)#Rimpiazzare le unità fornite per ulteriori informazioni sulla modifica delle unità.

Nota: Se si utilizza il servizio dhcpcd@.service è possibile sostituire il parametro -w con -b, in modo che dhcpcd non aspetti di ricevere un indirizzo prima di essere messo in background.
Suggerimento: dhcpcd contiente un hook (abilitato di default) per l'avvio automatico di wpa_supplicant su tutte le interfacce wireless, che viene attivato solamente se è presente il file di configurazione /etc/wpa_supplicant.conf e se non vi è nessun processo di wpa_supplicant in ascolto su quella specifica interfaccia. Per questo motivo è possibile utilizzare semplicemente il servizio dhcpcd@interfaccia per la configurazione della rete, senza abilitare wpa_supplicant@interfaccia.

Link correlati