3 581
contributi
mNessun oggetto della modifica |
mNessun oggetto della modifica |
||
(20 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili|Jessie|Stretch|Buster}} | |||
__TOC__ | |||
== Introduzione== | |||
In questa guida un semplice script per la connessione a una rete wireless. Richiede di essere eseguito con [[privilegi di amministrazione]] e che non sia attivo alcun network manager. | |||
È possibile configurare la rete wireless senza script modificando opportunamente il file ''/etc/network/interfaces'' (si veda [[Configurazione_di_una_connessione_wireless|qui]]). E anche creare più profili diversi tra cui scegliere di volta in volta, installando il pacchetto switchconf (si veda [http://e-zine.debianizzati.org/web-zine/numero_2/?page=60 qui]).<br/> | |||
I comandi presentati nello script però possono essere d'aiuto anche per la configurazione da terminale. | |||
== Creazione script == | |||
Creare con [[privilegi di amministrazione]] un file chiamato <code>wireless</code> nella directory <code>/usr/local/sbin</code>, con il seguente contenuto: | |||
<pre> | <pre> | ||
#!/bin/sh | #! /bin/sh -e | ||
echo Abilitazione Scheda Wireless in corso... | |||
iwconfig | |||
iwconfig | ### PARTE DA MODIFICARE con i propri parametri | ||
iwconfig | |||
# specificare il nome della propria scheda di rete (eth0, eth1, wlan0, ecc... ) | |||
iwconfig | # (utilizzare il comando "/sbin/iwconfig 2> /dev/null", senza virgolette, mentre attiva) | ||
route add default gw | IFACE="eth0" | ||
echo Scheda Wireless abilitata | |||
# specificare l'essid della rete a cui si intende connettersi | |||
ESSID="vostro essid di rete" | |||
# È SCONSIGLIATO usare una variabile se si utilizza WPA, meglio lasciarla commentata e optare per: | |||
# 1- una richiesta interattiva (effettuata solo la prima volta che si avvia lo script) | |||
# 2- creare con wpa_passphrase il file /root/.wpaconfig (basta avviare questo script la prima volta) | |||
# È necessaria in caso si utilizzi come protezione WEP (obsoleto!) | |||
#PASSWORD="vostra password" | |||
# indirizzo (se non si utilizza DHCP, altrimenti commentare) | |||
ADDRESS="192.168.0.2" | |||
# gateway (se non si utilizza DHCP e si vuole un gateway, altrimenti commentare) | |||
GATEWAY="192.168.0.1" | |||
# netmask | |||
NETMASK="255.255.255.0" | |||
### MAIN | |||
echo Abilitazione Scheda Wireless in corso... | |||
# attiva la scheda | |||
ifconfig "$IFACE" up | |||
# assegna essid | |||
iwconfig "$IFACE" essid "$ESSID" | |||
# si possono scegliere altre modalità, tra cui ad-hoc | |||
# (supporta solo connessioni non criptate o criptate con WEP, e avviene senza access point) | |||
# managed è la default e serve per connettersi a un access point | |||
iwconfig "$IFACE" mode managed | |||
# decommentare la riga successiva (togliendo #) per connessioni non criptate | |||
# iwconfig "$IFACE" key open | |||
# decommentare la riga successiva (togliendo #) per connessioni criptate con WEP | |||
# iwconfig "$IFACE" key restricted "$PASSWORD" | |||
# commentare le righe successive se la rete non utilizza crittografia WPA2 | |||
# (WPA2 è l'impostazione consigliata per reti domestiche, dato che WEP è obsoleta e insicura) | |||
if ! [ -e /root/.wpaconfig ]; then | |||
# creo il file se non esiste | |||
umask 0077 && | |||
if [ -z "${PASSWORD:-}" ]; then | |||
# richiesta interattiva della password | |||
printf %s "Password: " | |||
stty -echo # non stampare a schermo la password | |||
wpa_passphrase "$ESSID" > /root/.wpaconfig | |||
stty echo # riprendi a stampare a schermo | |||
echo Ok | |||
else | |||
# uso la variabile (sconsigliato e *visibile* in chiaro nei processi!) | |||
wpa_passphrase "$ESSID" "$PASSWORD" > /root/.wpaconfig | |||
fi | |||
fi | |||
# leggo il file con ESSID e PASSWORD | |||
wpa_supplicant -i "$IFACE" -c /root/.wpaconfig -B | |||
# accende la scheda di rete e rendi effettive le modifiche | |||
# (non supportate da tutte le schede, per cui avviene già in automatico) | |||
iwconfig "$IFACE" power on || true | |||
iwconfig "$IFACE" commit || true | |||
if [ -n "${ADDRESS:-}" ]; then | |||
# assegnazione statica IP alla scheda | |||
ifconfig "$IFACE" "$ADDRESS" netmask "$NETMASK" | |||
else | |||
# assegnazione dinamica con DHCP | |||
dhclient "$IFACE" | |||
fi | |||
if [ -n "${ADDRESS:-}" ] && [ -n "${GATEWAY:-}" ]; then | |||
# aggiungi nuovo percorso alla tabella di routing | |||
route add default gw "$GATEWAY" | |||
fi | |||
# messaggio | |||
echo Scheda Wireless abilitata correttamente. | |||
# esci | |||
exit 0 | |||
</pre> | </pre> | ||
Le | E assegnargli i giusti permessi, utente e gruppo, per impedire modifiche da parte dell'utente senza privilegi (e una potenziale vulnerablità nel sistema): | ||
<pre># chmod 740 /usr/local/sbin/wireless | |||
# chown root:root /usr/local/sbin/wireless</pre> | |||
Ora sarà sempre possibile richiamare la configurazione con il comando: | |||
<pre># wireless</pre> | |||
== Approfondimento == | |||
Le variabili <code>IFACE</code>, <code>ESSID</code>, <code>ADDRESS</code> e <code>GATEWAY</code> vanno inizializzate con i vostri parametri. Si deve inoltre scegliere uno dei tre metodi per la crittografia, commentando gli altri (al momento lo script utilizza WPA2). La variabile <code>GATEWAY</code> può essere commentata se non ce n'è bisogno (il proprio PC si collega direttamente a Internet, per esempio, senza passare per un router/gateway), e se la variabile <code>ADDRESS</code> è commentata allora sarà usata un'assegnazione dinamica (con DHCP) anziché statica dell'indirizzo IP. | |||
La variabile <code>PASSWORD</code> serve a fornire la password in assenza di <code>/root/.wpaconfig</code>, ma l'uso è fortemente sconsigliato. | |||
Si noti che in caso di [http://it.wikipedia.org/wiki/Captive_portal captive portal], dove l'autenticazione tipicamente avviene in un secondo momento dal proprio browser, la rete può essere aperta e senza crittografia. | |||
Al file di configurazione <code>/root/.wpaconfig</code> creato (tra "network={" e "}") si può aggiungere anche la riga <code>scan_ssid=1</code> per permettere la connessione a reti protette da WPA2 con essid "nascosto". | |||
{{Autori | |||
|Autore=[[Utente:Noise|Noise]] | |||
|Verificata_da= | |||
: [[Utente:Grayhawk|Grayhawk]] | |||
: [[Utente:HAL 9000|HAL 9000]] | |||
|Estesa_da= | |||
: [[Utente:Grayhawk|Grayhawk]] (Aggiunto uso DHCP) | |||
: [[Utente:HAL 9000|HAL 9000]] (Aggiunta connessione a rete con WPA2) | |||
|Numero_revisori=2 | |||
}} | |||
[[Categoria: Schede Wireless]][[Categoria: Bash Scripting]] | |||
[[Categoria:Wireless]][[Categoria: |
contributi