Difference between revisions of "WPA supplicant (Italiano)"

From ArchWiki
Jump to: navigation, search
m (Configurazione)
Line 12: Line 12:
 
{{Article summary end}}
 
{{Article summary end}}
  
 
+
[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.
[http://hostap.epitest.fi/wpa_supplicant/ wpa_supplicant] è un [[Wikipedia:Supplicant_(computer) | Supplicant WPA]] con supporto a WPA e WPA2 ([[Wikipedia:IEEE_802.11i|IEEE 802.11i]] / RSN (Robust Secure Network)) adatto all'uso con PC desktop e portatili e 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 wlan.
+
  
 
==Installazione==
 
==Installazione==
Line 20: Line 19:
  
 
È inoltre possibile installare {{Pkg|wpa_supplicant_gui}}; un frontend grafico per {{ic|wpa_supplicant}} che utilizza il toolkit {{Pkg|qt4}}.
 
È inoltre possibile installare {{Pkg|wpa_supplicant_gui}}; un frontend grafico per {{ic|wpa_supplicant}} che utilizza il toolkit {{Pkg|qt4}}.
 
==Connessione tramite wpa_cli==
 
 
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}}.
 
 
{{Suggerimento|Si faccia riferimento al file {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}} per ulteriori informazioni.}}
 
 
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:
 
 
# wpa_supplicant -B -i ''interface'' -c ''/percorso/al/file/di/configurazione''
 
 
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.
 
 
Si esegua quindi:
 
{{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>}}
 
 
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:
 
 
{{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>}}
 
 
Per salvare le informazioni di rete nel file di configurazione si esegua:
 
 
> save_config
 
OK
 
 
Sarà ora possibile ottenere un indirizzo IP tramite {{Pkg|dhcpcd}} o {{Pkg|iproute2}}.
 
  
 
==Configurazione==
 
==Configurazione==
Line 80: Line 41:
 
}
 
}
 
}}
 
}}
È ora possibile combinare l'utilizzo di {{ic|wpa_supplicant}} e {{ic|wpa_passphrase}} per collegarsi a praticamente tutte le reti WPA2 personali:
 
  
 +
{{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 {{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}}:
 +
 +
# 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'')
 
  # wpa_supplicant -B -i ''interfaccia'' -c <(wpa_passphrase ''essid'' ''passphrase'')
 +
}}
 +
 +
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:
 +
 
  # dhcpcd ''interfaccia''
 
  # dhcpcd ''interfaccia''
  
===Gestire una configurazione personalizzata===
+
===Utilizzare wpa_cli===
  
{{Nota|Per identificare il nome dell'interfaccia di rete in uso, utilizzare il comando {{ic|ip link}}.}}
+
È possibile controllare ''wpa_supplicant'' a runtime utilizzando l'utility ''wpa_cli'' e per farlo, sarà necessario configurare ''wpa_supplicant'' affinchè crei un'interfaccia di controllo (socket).
 +
Questo comportamento è ottenibile agendo sulla variabile {{ic|ctrl_interface}}. L'esempio che segue creerà un socket in {{ic|/run/wpa_supplicant/}} e permetterà ai membri del gruppo {{ic|adm}} di accedervi:
  
Come si è visto sopra, è possibile utilizzare {{ic|wpa_passphrase}} per generare una configurazione di base a cui aggiungere poi reti aggiuntive ed opzioni di propria scelta, che potrebbero essere necessarie in caso di configurazioni di rete avanzate che utilizzano [[Wikipedia:Extensible_Authentication_Protocol|EAP]] in modo estensivo.
+
ctrl_interface=DIR=/run/wpa_supplicant GROUP=adm
  
Innanzitutto, si generi un file di configurazione minimale con {{ic|wpa_passphrase}}:
+
È possibile consentire a ''wpa_supplicant'' di modificare il proprio file di configurazione tramite le direttive impartite da ''wpa_cli''. Questo comportamento è particolarmente utile qualora si desideri aggiungere nuove reti wireless al file di configurazione senza riavviare il demone.
 +
Si aggiunga quanto segue al file di configurazione:
  
  # wpa_passphrase ''essid'' ''passphrase'' > /etc/wpa_supplicant/foobar.conf
+
  update_config=1
  
{{Suggerimento|Alcune passphrase particolarmente complesse potrebbero dover essere immesse in un file prima dell'utilizzo: {{ic|# wpa_passphrase foobarssid < passphrase.txt > /etc/wpa_supplicant/foobar.conf}}. }}
+
Una volta avviato ''wpa_supplicant'', sarà possibile avviare anche ''wpa_cli}}. Se quest'ultimo non è in grado di individuare il socket, si utilizzi il parametro {{ic|-p}} per specificarlo manualmente. È inoltre possibile specificare l'interfaccia da utilizzare tramite l'opzione {{ic|-i}}; in caso contrario sarà controllata quella in uso da ''wpa_supplicant''.
 +
Dopo l'avvio di ''wpa_cli'' si otterrà un prompt interattivo ({{ic|>}}) con supporto alla tab completion e descrizione dei comandi autocompletatai.
  
Si aggiunga quindi l'opzione {{ic|ctrl_interface}}, in modo da poter controllare il demone {{ic|wpa_supplicant}}. È possibile autorizzare {{ic|wpa_cli}} ad effettuare modifiche al file con l'opzione {{ic|1=update_config=1}}.
+
====Aggiungere una nuova rete====
  
{{hc|/etc/wpa_supplicant/foobar.conf|<nowiki>
+
Si inizi una scansione delle reti disponibili; verrà inviata una notifica una volta che il processo sarà terminato:
ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel # consente ai membri del gruppo 'wheel' di controllare il demone
+
  update_config=1
+
  ap_scan=1
+
  
  network={
+
> scan
    ssid="foobarssid"
+
    psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
+
  }
+
</nowiki>}}
+
  
È possibile aggiungere network blocks multipli al file di configurazione di cui sopra.
+
Si esaminino i risultati della scansione:
  
Per connettersi alla rete prescelta si eseguano i seguenti comandi:
+
> 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
  
# ip link set ''interfaccia'' up
+
Per associarsi con ''MYSSID'', si istruisca ''wpa_supplicant'' di conseguenza. Ogni rete è identificata da un numero crescente, con l'indice che parte da zero. È possibile fornire la [[Wikipedia:Pre-shared key|PSK]] senza i doppi apici, oppure è possibile inserire direttamente la passphrase, come nell'esempio di cui sotto:
# wpa_supplicant -B -D nl80211 -i ''interfaccia'' -c /etc/wpa_supplicant/foobar.conf
+
# dhcpcd -A ''interfaccia''
+
  
{{Nota|È preferibile utilizzare {{ic|nl80211}} rispetto al driver {{ic|wext}}, da considerarsi deprecato. Per ottenere un elenco dei driver supportati, si esegua {{ic|wpa_supplicant -h}}.}}
+
> 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=]
  
Per reti di complessità crescente si studino gli esempi forniti nel file di configurazione di default sito in {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}}.
+
Si scrivano le modifiche sul file di configurazione:
  
===Avvio tramite systemd===
+
> save_config
 +
OK
  
Per avviare la connessione wireless automaticamente al boot, si abiliti il servizio {{ic|wpa_supplicant}} sull'interfaccia interessata. Se la propria connessione ottiene gli indirizzi tramite DHCP, abilitare anche {{ic|dhcpcd.service}}. Per gestire eventuali connessioni ethernet si installi {{Pkg|ifplugd}} e si abiliti il relativo servizio sull'interfaccia interessata.
+
==Avvio tramite systemd==
  
I comandi da eseguire potrebbero essere simili ai seguenti:
+
La configurazione più comune 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@wlp3s1
+
  # systemctl enable wpa_supplicant@''interfaccia''
  # systemctl enable dhcpcd
+
  # systemctl enable dhcpcd@''interfaccia''
# systemctl enable ifplugd@enp5s2
+
  
{{ic|wpa_supplicant}} gestirà il roaming per tutti i SSID contenuti nel suo file di configurazione e {{ic|ifplugd}} configurerà automaticamente l'interfaccia ethernet spegnendo quella wireless all'inserimento di un cavo ethernet nella macchina, mentre {{ic|dhcpcd}} si occuperà dell'asegnazione degli indirizzi IP alle varie interfacce.
+
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:
  
È necessario modificare il servizio {{ic|wpa_supplicant@.service}} per farlo puntare al file di configurazione corretto.
+
[Install]
Per ridefinire il valore della riga {{ic|1=ExecStart=}} si crei il seguente file:
+
WantedBy=multi-user.target
  
{{hc|/etc/systemd/system/wpa_supplicant@.service.d/foo.conf|<nowiki>
+
Si consulti [[Systemd (Italiano)#Rimpiazzare le unità fornite]] per ulteriori informazioni sulla modifica delle unità.
  [Service]
+
  ExecStart=
+
  ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/bar.conf -i%i
+
</nowiki>}}
+
  
La direttva {{ic|WantedBy}} del .service correntemente fornito non è corretta (si veda [http://w1.fi/bugz/show_bug.cgi?id=477 questo] bug report). Se la riga nel servizio {{ic|wpa_supplicant@.service}} non corrisponde al nome della propria interfaccia di rete (wlan0), sarà necessario copiare il servizio in {{ic|/etc/systemd/system}} ed apportare le dovute modifiche.
+
{{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.}}
  
[Install]
+
{{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''}}.}}
WantedBy=multi-user.target
+
  
 
==Link correlati==
 
==Link correlati==
  
 
* [http://wireless.kernel.org/en/users/Documentation/wpa_supplicant documentazione di wpa_supplicant su kernel.org]
 
* [http://wireless.kernel.org/en/users/Documentation/wpa_supplicant documentazione di wpa_supplicant su kernel.org]

Revision as of 16:58, 15 October 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

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.

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

Utilizzare wpa_cli

È possibile controllare wpa_supplicant a runtime utilizzando l'utility wpa_cli e per farlo, sarà necessario configurare wpa_supplicant affinchè crei un'interfaccia di controllo (socket). Questo comportamento è ottenibile agendo sulla variabile ctrl_interface. L'esempio che segue creerà un socket in /run/wpa_supplicant/ e permetterà ai membri del gruppo adm di accedervi:

ctrl_interface=DIR=/run/wpa_supplicant GROUP=adm

È possibile consentire a wpa_supplicant di modificare il proprio file di configurazione tramite le direttive impartite da wpa_cli. Questo comportamento è particolarmente utile qualora si desideri aggiungere nuove reti wireless al file di configurazione senza riavviare il demone. Si aggiunga quanto segue al file di configurazione:

update_config=1

Una volta avviato wpa_supplicant, sarà possibile avviare anche wpa_cli}}. Se quest'ultimo non è in grado di individuare il socket, si utilizzi il parametro -p per specificarlo manualmente. È inoltre possibile specificare l'interfaccia da utilizzare tramite l'opzione -i; in caso contrario sarà controllata quella in uso da wpa_supplicant. Dopo l'avvio di wpa_cli si otterrà un prompt interattivo (>) con supporto alla tab completion e descrizione dei comandi autocompletatai.

Aggiungere una nuova rete

Si inizi una scansione delle reti disponibili; verrà inviata una notifica una volta che il processo sarà terminato:

> scan

Si esaminino i risultati della scansione:

> 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, si istruisca wpa_supplicant di conseguenza. Ogni rete è identificata da un numero crescente, con l'indice che parte da zero. È possibile fornire la PSK senza i doppi apici, oppure è possibile inserire direttamente la passphrase, come nell'esempio di cui 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=]

Si scrivano le modifiche sul file di configurazione:

> save_config
OK

Avvio tramite systemd

La configurazione più comune 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