Difference between revisions of "WPA supplicant (Italiano)"

From ArchWiki
Jump to: navigation, search
m
m (systemd)
(21 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 20: Line 16:
  
 
È 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}}.
 +
 +
==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:
 +
 +
* {{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}}
 +
 +
===dhcpcd===
 +
 +
[[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.
 +
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 {{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}}.
 +
 +
===Avvio manuale===
 +
 +
''wpa_supplicant'' accetta diversi parametri quando avviato a riga di comando; i più importanti sono:
 +
 +
* {{ic|-B}} - esegue il demone in background
 +
* {{ic|-c ''nomefile''}} - percorso al file di configurazione
 +
* {{ic|-i ''interfaccia''}} - interfaccia sulla quale avviare il demone
 +
 +
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 33: 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 foobarssid foobarspassword
+
===wpa_passphrase===
network={
+
 
    ssid="foobarssid"
+
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:
    #psk="foobarspassword"
+
 
 +
{{hc|$ wpa_passphrase ''essid'' ''passphrase''|2=
 +
network={
 +
  ssid=''essid''
 +
  #psk=''passphrase''
 
   psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
 
   psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
}
+
}
 +
}}
  
È 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_supplicant -B -i [interfaccia] -c <(wpa_passphrase [essid] [passphrase])
+
  $ wpa_passphrase ''essid'' < ''passphrase.txt''
  
Non resta che impostare un [[Configuring Network (Italiano)#Indirizzo IP Statico|indirizzo IP statico]] o utilizzare [[Configuring Network (Italiano)#Indirizzo IP Dinamico|DHCP]]. Ad esempio:
+
{{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'')
 +
}}
  
# dhcpcd -A [interfaccia]
+
===Specificare un driver===
  
===Gestire una configurazione personalizzata===
+
Potrebbe essere necessario specificare il driver da utilizzare: per una lista di quelli supportati, eseguire il comando {{ic|wpa_supplicant -h}}.
  
{{Nota|Per identificare il nome dell'interfaccia di rete in uso, utilizzare il comando {{ic|ip link}}.}}
+
* {{ic|nl80211}} è il driver standard attuale, ma non tutti i chip wireless lo supportano.
 +
* {{ic|wext}} è deprecato, ma maggiormente supportato.
  
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.
+
Il driver viene specificato tramite il parametro {{ic|-D}}:
  
Innanzitutto, si generi un file di configurazione minimale con {{ic|wpa_passphrase}}:
+
  # wpa_supplicant -B -i ''interfaccia'' -c ''file_di_configurazione'' -D ''driver''
  # wpa_passphrase foobarssid foobarspassword > /etc/wpa_supplicant/foobar.conf
 
  
{{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}}. Consentiremo inoltre a {{ic|wpa_supplicant}} di effettuare una scansione e selezione degli Access Points presenti con {{ic|1=ap-scan=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
+
ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel
  ap_scan=1
+
 
 +
È 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 {{ic|-p}}). È inoltre possibile specificare l'interfaccia da configurare con lo switch {{ic|-i}}; in caso contrario verrà utilizzata la prima interfaccia trovata.
 +
 
 +
Una volta invocato ''wpa_cli'', verrà visualizzato un prompt interattivo ({{ic|>}}). 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 {{ic|scan}} al prompt ({{ic|>}}). Verrà inviata una notifica una volta che la scansione è terminata:
 +
 
 +
> scan
 +
OK
 +
<3>CTRL-EVENT-SCAN-RESULTS
 +
>
 +
 
 +
Si esegua quindi {{ic|scan_results}} per visualizzare i risultati:
  
  network={
+
> scan_results
    ssid="foobarssid"
+
bssid / frequency / signal level / flags / ssid
    psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
+
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
</nowiki>}}
+
>
  
È possibile aggiungere network blocks multipli al file di configurazione di cui sopra.
+
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.
  
Per connettersi alla rete prescelta si eseguano i seguenti comandi:
+
> add_network
 +
0
 +
>
  
# ip link set [interfaccia] up
+
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:
# 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}} senza argomenti.}}
+
> set_network 0 psk "passkey"
 +
OK
 +
>
  
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 abiliti la rete:
  
===Avvio tramite systemd===
+
> enable_network 0
 +
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.
+
Si scrivano le modifiche sul file di configurazione:
  
I comandi da eseguire potrebbero essere simili ai seguenti:
+
> save_config
 +
OK
 +
>
  
# systemctl enable wpa_supplicant@wlp3s1
+
===Action script===
# systemctl enable dhcpcd
 
# 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.
+
È 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.
  
È necessario modificare il servizio {{ic|wpa_supplicant@.service}} per farlo puntare al file di configurazione corretto.
+
L'esempio che segue utilizza le [[desktop notifications|notifiche del desktop]] per informare l'utente sull'attivazione degli eventi.
Per ridefinire il valore della riga {{ic|1=ExecStart=}} si crei il seguente file:
 
  
{{hc|/etc/systemd/system/wpa_supplicant@.service.d/foo.conf|<nowiki>
+
{{bc|
  [Service]
+
#!/bin/bash
  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. 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.
+
case "$2" in
 +
    CONNECTED)
 +
        notify-send "WPA supplicant: connection established";
 +
        ;;
 +
    DISCONNECTED)
 +
        notify-send "WPA supplicant: connection lost";
 +
        ;;
 +
esac
 +
</nowiki>
 +
}}
  
[Install]
+
Ricordarsi di rendere eseguibile lo script, quindi si utilizzi lo switch {{ic|-a}} per passare lo script a ''wpa_cli''.
WantedBy=multi-user.target
 
  
Il problema è stato risolto in [http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=commitdiff;h=893a0a558cd8fd9a7dc5827f379e0f8a273a4fe5 questo] commit.
+
$ wpa_cli -a ''percorso allo script''
  
 
==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

zh-CN:WPA Supplicant

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