Difference between revisions of "WPA supplicant (Italiano)"

From ArchWiki
Jump to: navigation, search
m (Configurazione)
m (systemd)
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Wireless Networking (Italiano)]]
 
[[Category:Wireless Networking (Italiano)]]
 +
[[en:WPA supplicant]]
 
[[es:WPA supplicant]]
 
[[es:WPA supplicant]]
[[en:WPA supplicant]]
 
 
[[ru:WPA Supplicant]]
 
[[ru:WPA Supplicant]]
 
[[zh-CN:WPA Supplicant]]
 
[[zh-CN:WPA Supplicant]]
 +
{{Related articles start (Italiano)}}
 +
{{Related|Configuring Network (Italiano)}}
 +
{{Related|Wireless Setup (Italiano)}}
 +
{{Related articles end}}
  
{{Article summary start}}
+
[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.
{{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}}
+
 
+
 
+
[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 21: Line 17:
 
È 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==
+
==Avvio==
  
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}}.
+
Questo paragrafo descrive i metodi più comuni per l'avvio di ''wpa_supplicant''; si scelga quello più adatto alle proprie esigenze.
  
{{Suggerimento|Si faccia riferimento al file {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}} per ulteriori informazioni.}}
+
===systemd===
  
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'' fornisce diversi servizi per l'avvio:
  
# wpa_supplicant -B -i ''interface'' -c ''/percorso/al/file/di/configurazione''
+
* {{ic|wpa_supplicant.service}} - utilizza [[D-Bus|D-Bus]], raccomandato per gli utilizzatori di [[NetworkManager (Italiano)|NetworkManager]].
 +
* {{ic|wpa_supplicant@.service}} - accetta il nome dell'interfaccia come parametro ed avvia il demone ''wpa_supplicant'' su quest'ultima. Legge il file di configurazione {{ic|/etc/wpa_supplicant/wpa_supplicant-''interfaccia''.conf}}.
 +
* {{ic|wpa_supplicant-nl80211@.service}} - anche questo servizio è specifico per interfaccia, ma forza l'utlilizzo del driver {{ic|nl80211}} (si veda sotto). Il percorso del file di configurazione è {{ic|/etc/wpa_supplicant/wpa_supplicant-nl80211-''interfaccia''.conf}}.
 +
* {{ic|wpa_supplicant-wired@.service}} - specifico per interfaccia, utilizza il driver {{ic|wired}}. Il file di configurazione si trova in {{ic|/etc/wpa_supplicant/wpa_supplicant-wired-interface.conf}}
  
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.
+
===dhcpcd===
  
Si esegua quindi:
+
[[Configuring_Network_(Italiano)#Indirizzo_IP_dinamico|dhcpcd]] contiene un hook (abilitato di default) per l'avvio automatico di ''wpa_supplicant'' su tutte le interfacce wireless.
{{bc|<nowiki>
+
Quest'ultimo viene avviato solo se:
> 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:
+
* Non vi è un altro processo di ''wpa_supplicant'' in ascolto su una determinata interfaccia.
 +
* Esiste un file di configurazione per ''wpa_supplicant''. ''dhcpcd'' controlla di default i percorsi {{ic|/etc/wpa_supplicant.conf}} e {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}}, ma è possibile impostare un percorso personalizzato inserendo {{ic|1=env wpa_supplicant_conf=''percorso_al_file_di_configurazione''}} in {{ic|/etc/dhcpcd.conf}}.
  
{{bc|<nowiki>
+
===Avvio manuale===
> 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:
+
''wpa_supplicant'' accetta diversi parametri quando avviato a riga di comando; i più importanti sono:
  
> save_config
+
* {{ic|-B}} - esegue il demone in background
OK
+
* {{ic|-c ''nomefile''}} - percorso al file di configurazione
 +
* {{ic|-i ''interfaccia''}} - interfaccia sulla quale avviare il demone
  
Sarà ora possibile ottenere un indirizzo IP tramite {{Pkg|dhcpcd}} o {{Pkg|iproute2}}.
+
Si consulti {{ic|man 8 wpa_supplicant}} per l'elenco completo degli argomenti.
 +
L'utilizzo classico del comando è come segue:
 +
 
 +
# wpa_supplicant -B -i ''interfaccia'' -c ''file di configurazione''
  
 
==Configurazione==
 
==Configurazione==
  
 
{{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.
 
{{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.
 +
È quindi consigliabile effettuarne un backup, poichè i metodi per l'aggiunta automatica delle reti descritti sotto eliminano qualsiasi commento dal {{ic|wpa_supplicant.conf}}.
  
 
Il contenuto minimo richiesto dal file di configurazione è un network block; ad esempio:
 
Il contenuto minimo richiesto dal file di configurazione è un network block; ad esempio:
Line 71: Line 64:
 
</nowiki>}}
 
</nowiki>}}
  
Quanto sopra può essere facilmente generato utilizzando il tool {{ic|wpa_passphrase}}:
+
Una volta generato un file di configurazione è possibile [[#Avvio|avviare]] ''wpa_supplicant'' come spiegato nella sezione precedente e connettersi ad una rete wireless utilizzando un [[Configuring_Network_(Italiano)#Indirizzo_IP_Statico|IP statico]] o [[Configuring_Network_(Italiano)#Indirizzo_IP_dinamico|DHCP]].
 +
 
 +
===wpa_passphrase===
 +
 
 +
La configurazione per una data rete wireless può essere facilmente generata utilizzando il tool ''wpa_passphrase'' e aggiunta al file di configurazione. Questa configurazione è utile per connettersi a rete protette tramite passphrase. Ad esempio:
  
 
{{hc|$ wpa_passphrase ''essid'' ''passphrase''|2=
 
{{hc|$ wpa_passphrase ''essid'' ''passphrase''|2=
Line 80: Line 77:
 
}
 
}
 
}}
 
}}
È ora possibile combinare l'utilizzo di {{ic|wpa_supplicant}} e {{ic|wpa_passphrase}} per collegarsi a praticamente tutte le reti WPA2 personali:
 
  
 +
Alcune passphrase insolitamente complesse potrebbero dover essere immesse prima in un file di testo:
 +
 +
$ wpa_passphrase ''essid'' < ''passphrase.txt''
 +
 +
{{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'')
# dhcpcd ''interfaccia''
+
}}
  
===Gestire una configurazione personalizzata===
+
===Specificare un driver===
  
{{Nota|Per identificare il nome dell'interfaccia di rete in uso, utilizzare il comando {{ic|ip link}}.}}
+
Potrebbe essere necessario specificare il driver da utilizzare: per una lista di quelli supportati, eseguire il comando {{ic|wpa_supplicant -h}}.
  
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.
+
* {{ic|nl80211}} è il driver standard attuale, ma non tutti i chip wireless lo supportano.
 +
* {{ic|wext}} è deprecato, ma maggiormente supportato.
  
Innanzitutto, si generi un file di configurazione minimale con {{ic|wpa_passphrase}}:
+
Il driver viene specificato tramite il parametro {{ic|-D}}:
  
  # wpa_passphrase ''essid'' ''passphrase'' > /etc/wpa_supplicant/foobar.conf
+
  # wpa_supplicant -B -i ''interfaccia'' -c ''file_di_configurazione'' -D ''driver''
  
{{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}}. }}
+
==Utilizzare wpa_cli==
  
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}}.  
+
È possibile controllare ''wpa_supplicant'' manualmente a runtime, utilizzando il tool a riga di comando ''wpa_cli''. Per utilizzare 'wpa_cli'' è necessario che ''wpa_supplicant'' venga configurato per creare una interfaccia di controllo (socket) attraverso la variabile ''ctrl_interface'', da inserire nel relativo file di configurazione (percorso di default {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}}).
  
{{hc|/etc/wpa_supplicant/foobar.conf|<nowiki>
+
Quanto segue creerà il socket in {{ic|/run/wpa_supplicant}} e permetterà ai membri del gruppo {{ic|wheel}} di accedervi:
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={
+
ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel
    ssid="foobarssid"
+
    psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
+
  }
+
</nowiki>}}
+
  
È possibile aggiungere network blocks multipli al file di configurazione di cui sopra.
+
È possibile modificare il file di configurazione di ''wpa_supplicant'' direttamente da ''wpa_cli'', il chè potrebbe essere utile nel caso si abbia la necessità di aggiungere nuove reti manualmente senza riavviare il demone ''wpa_supplicant''.
 +
Per abilitare questo comportamento, si imposti il valore della variabile ''update_config'' ad ''1'':
  
Per connettersi alla rete prescelta si eseguano i seguenti comandi:
+
update_config=1
  
# ip link set ''interfaccia'' up
+
È necessario avviare ''wpa_supplicant'' prima di ''wpa_cli'' (si veda [[#Avvio]] per ulteriori informazioni). Si esegua poi:
# 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}}.}}
+
$ wpa_cli
  
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}}.
+
Una volta avviato, ''wpa_cli'' cercherà il socket di controllo specificato nel file di configurazione (oppure passato come argomento tramiete lo switch {{ic|-p}}). È inoltre possibile specificare l'interfaccia da configurare con lo switch {{ic|-i}}; in caso contrario verrà utilizzata la prima interfaccia trovata.
  
===Avvio tramite systemd===
+
Una volta invocato ''wpa_cli'', verrà visualizzato un prompt interattivo ({{ic|>}}). Il prompt supporta l'autocompletamento e fornisce una descrizione dei comandi completati.
  
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.
+
===Aggiungere una nuova rete utilizzando wpa_cli===
  
I comandi da eseguire potrebbero essere simili ai seguenti:
+
Per effettuare una scansione delle reti disponibili si scriva {{ic|scan}} al prompt ({{ic|>}}). Verrà inviata una notifica una volta che la scansione è terminata:
  
  # systemctl enable wpa_supplicant@wlp3s1
+
  > scan
  # systemctl enable dhcpcd
+
  OK
  # systemctl enable ifplugd@enp5s2
+
  <3>CTRL-EVENT-SCAN-RESULTS
 +
>
  
{{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.
+
Si esegua quindi {{ic|scan_results}} per visualizzare i risultati:
  
È necessario modificare il servizio {{ic|wpa_supplicant@.service}} per farlo puntare al file di configurazione corretto.
+
> scan_results
Per ridefinire il valore della riga {{ic|1=ExecStart=}} si crei il seguente file:
+
bssid / frequency / signal level / flags / ssid
 +
00:00:00:00:00:00 2462 -49 [WPA2-PSK-CCMP][ESS] MIOSSID
 +
11:11:11:11:11:11 2437 -64 [WPA2-PSK-CCMP][ESS] ALTROSSID
 +
>
  
{{hc|/etc/systemd/system/wpa_supplicant@.service.d/foo.conf|<nowiki>
+
Per associarsi con ''MIOSSID'', passare il nome della rete a ''wpa_supplicant''.
  [Service]
+
Ad ogni rete specificata nel file di configurazione viene assegnato un numero progressivo partendo da zero. Ogni nuova rete avrà quindi un numero assegnato di conseguenza.
  ExecStart=
+
 
  ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/bar.conf -i%i
+
> add_network
</nowiki>}}
+
0
 +
>
 +
 
 +
Si utilizzi questo numero per specificare quale rete si desidera conifigurare. In caso si stia aggiungendo una nuova rete, impostare anche il SSID, racchiuso da virgolette:
 +
 
 +
> set_network 0 psk "passkey"
 +
OK
 +
>
 +
 
 +
Si abiliti la rete:
 +
 
 +
> enable_network 0
 +
OK
 +
>
 +
 
 +
Si scrivano le modifiche sul file di configurazione:
 +
 
 +
> save_config
 +
OK
 +
>
 +
 
 +
===Action script===
 +
 
 +
È possibile lanciare ''wpa_cli'' come demone e fargli eseguire degli script basati su eventi provenienti da ''wpa_supplicant''. Sono supportate due tipologie di eventi: {{ic|CONNECTED}} e {{ic|DISCONNECTED}}. Alcune [[environment variables |variabili d'ambiente]] possono essere utilizzate negli script; si consulti {{ic| man 8 wpa_cli}} per ulteriori dettagli.
 +
 
 +
L'esempio che segue utilizza le [[desktop notifications|notifiche del desktop]] per informare l'utente sull'attivazione degli eventi.
 +
 
 +
{{bc|
 +
#!/bin/bash
 +
 
 +
case "$2" in
 +
    CONNECTED)
 +
        notify-send "WPA supplicant: connection established";
 +
        ;;
 +
    DISCONNECTED)
 +
        notify-send "WPA supplicant: connection lost";
 +
        ;;
 +
esac
 +
</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.
+
Ricordarsi di rendere eseguibile lo script, quindi si utilizzi lo switch {{ic|-a}} per passare lo script a ''wpa_cli''.
  
  [Install]
+
  $ wpa_cli -a ''percorso allo script''
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 18:40, 11 March 2014

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.

Avvio

Questo paragrafo descrive i metodi più comuni per l'avvio di wpa_supplicant; si scelga quello più adatto alle proprie esigenze.

systemd

wpa_supplicant fornisce diversi servizi per l'avvio:

  • wpa_supplicant.service - utilizza D-Bus, raccomandato per gli utilizzatori di NetworkManager.
  • wpa_supplicant@.service - accetta il nome dell'interfaccia come parametro ed avvia il demone wpa_supplicant su quest'ultima. Legge il file di configurazione /etc/wpa_supplicant/wpa_supplicant-interfaccia.conf.
  • wpa_supplicant-nl80211@.service - anche questo servizio è specifico per interfaccia, ma forza l'utlilizzo del driver nl80211 (si veda sotto). Il percorso del file di configurazione è /etc/wpa_supplicant/wpa_supplicant-nl80211-interfaccia.conf.
  • wpa_supplicant-wired@.service - specifico per interfaccia, utilizza il driver wired. Il file di configurazione si trova in /etc/wpa_supplicant/wpa_supplicant-wired-interface.conf

dhcpcd

dhcpcd contiene un hook (abilitato di default) per l'avvio automatico di wpa_supplicant su tutte le interfacce wireless. Quest'ultimo viene avviato solo se:

  • Non vi è un altro processo di wpa_supplicant in ascolto su una determinata interfaccia.
  • Esiste un file di configurazione per wpa_supplicant. dhcpcd controlla di default i percorsi /etc/wpa_supplicant.conf e /etc/wpa_supplicant/wpa_supplicant.conf, ma è possibile impostare un percorso personalizzato inserendo env wpa_supplicant_conf=percorso_al_file_di_configurazione in /etc/dhcpcd.conf.

Avvio manuale

wpa_supplicant accetta diversi parametri quando avviato a riga di comando; i più importanti sono:

  • -B - esegue il demone in background
  • -c nomefile - percorso al file di configurazione
  • -i interfaccia - interfaccia sulla quale avviare il demone

Si consulti man 8 wpa_supplicant per l'elenco completo degli argomenti. L'utilizzo classico del comando è come segue:

# wpa_supplicant -B -i interfaccia -c file di configurazione

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. È quindi consigliabile effettuarne un backup, poichè i metodi per l'aggiunta automatica delle reti descritti sotto eliminano qualsiasi commento dal wpa_supplicant.conf.

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

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

Una volta generato un file di configurazione è possibile avviare wpa_supplicant come spiegato nella sezione precedente e connettersi ad una rete wireless utilizzando un IP statico o DHCP.

wpa_passphrase

La configurazione per una data rete wireless può essere facilmente generata utilizzando il tool wpa_passphrase e aggiunta al file di configurazione. Questa configurazione è utile per connettersi a rete protette tramite passphrase. Ad esempio:

$ wpa_passphrase essid passphrase
network={
   ssid=essid
   #psk=passphrase
   psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
}

Alcune passphrase insolitamente complesse potrebbero dover essere immesse prima in un file di testo:

$ wpa_passphrase essid < passphrase.txt
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)

Specificare un driver

Potrebbe essere necessario specificare il driver da utilizzare: per una lista di quelli supportati, eseguire il comando wpa_supplicant -h.

  • nl80211 è il driver standard attuale, ma non tutti i chip wireless lo supportano.
  • wext è deprecato, ma maggiormente supportato.

Il driver viene specificato tramite il parametro -D:

# wpa_supplicant -B -i interfaccia -c file_di_configurazione -D driver

Utilizzare wpa_cli

È possibile controllare wpa_supplicant manualmente a runtime, utilizzando il tool a riga di comando wpa_cli. Per utilizzare 'wpa_cli è necessario che wpa_supplicant venga configurato per creare una interfaccia di controllo (socket) attraverso la variabile ctrl_interface, da inserire nel relativo file di configurazione (percorso di default /etc/wpa_supplicant/wpa_supplicant.conf).

Quanto segue creerà il socket in /run/wpa_supplicant e permetterà ai membri del gruppo wheel di accedervi:

ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel

È possibile modificare il file di configurazione di wpa_supplicant direttamente da wpa_cli, il chè potrebbe essere utile nel caso si abbia la necessità di aggiungere nuove reti manualmente senza riavviare il demone wpa_supplicant. Per abilitare questo comportamento, si imposti il valore della variabile update_config ad 1:

update_config=1

È necessario avviare wpa_supplicant prima di wpa_cli (si veda #Avvio per ulteriori informazioni). Si esegua poi:

$ wpa_cli

Una volta avviato, wpa_cli cercherà il socket di controllo specificato nel file di configurazione (oppure passato come argomento tramiete lo switch -p). È inoltre possibile specificare l'interfaccia da configurare con lo switch -i; in caso contrario verrà utilizzata la prima interfaccia trovata.

Una volta invocato wpa_cli, verrà visualizzato un prompt interattivo (>). Il prompt supporta l'autocompletamento e fornisce una descrizione dei comandi completati.

Aggiungere una nuova rete utilizzando wpa_cli

Per effettuare una scansione delle reti disponibili si scriva scan al prompt (>). Verrà inviata una notifica una volta che la scansione è terminata:

> scan
OK
<3>CTRL-EVENT-SCAN-RESULTS
>

Si esegua quindi scan_results per visualizzare i risultati:

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

Per associarsi con MIOSSID, passare il nome della rete a wpa_supplicant. Ad ogni rete specificata nel file di configurazione viene assegnato un numero progressivo partendo da zero. Ogni nuova rete avrà quindi un numero assegnato di conseguenza.

> add_network
0
>

Si utilizzi questo numero per specificare quale rete si desidera conifigurare. In caso si stia aggiungendo una nuova rete, impostare anche il SSID, racchiuso da virgolette:

> set_network 0 psk "passkey"
OK
>

Si abiliti la rete:

> enable_network 0
OK
>

Si scrivano le modifiche sul file di configurazione:

> save_config
OK
>

Action script

È possibile lanciare wpa_cli come demone e fargli eseguire degli script basati su eventi provenienti da wpa_supplicant. Sono supportate due tipologie di eventi: CONNECTED e DISCONNECTED. Alcune variabili d'ambiente possono essere utilizzate negli script; si consulti man 8 wpa_cli per ulteriori dettagli.

L'esempio che segue utilizza le notifiche del desktop per informare l'utente sull'attivazione degli eventi.

#!/bin/bash

case "$2" in
    CONNECTED)
        notify-send "WPA supplicant: connection established";
        ;;
    DISCONNECTED)
        notify-send "WPA supplicant: connection lost";
        ;;
esac
</nowiki>

Ricordarsi di rendere eseguibile lo script, quindi si utilizzi lo switch -a per passare lo script a wpa_cli.

$ wpa_cli -a percorso allo script

Link correlati