Script Bash abilitazione scheda wireless: differenze tra le versioni

m
nessun oggetto della modifica
Nessun oggetto della modifica
mNessun oggetto della modifica
 
(18 versioni intermedie di 3 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 eth0 essid (vostro essid di rete)
 
iwconfig eth0 mode Ad-Hoc (managed) vedete voi
### PARTE DA MODIFICARE con i propri parametri
iwconfig eth0 key restricted (vostra key di rete)
 
ifconfig eth0 (ip che volete asegnare alla scheda) up
# specificare il nome della propria scheda di rete (eth0, eth1, wlan0, ecc... )
iwconfig eth0 power on
# (utilizzare il comando "/sbin/iwconfig 2> /dev/null", senza virgolette, mentre attiva)
route add default gw (indirizzo ip del gw)
IFACE="eth0"
echo Scheda Wireless abilitata Correttamente....
 
# 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 parti tra parentesi sono quelle da modificare con i vostri parametri.
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".


So che è uno scriptino minimale ma per qualcuno alle prime armi può sempre essere utile.
{{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
}}


Autore: debian
[[Categoria: Schede Wireless]][[Categoria: Bash Scripting]]
[[Categoria:Wireless]][[Categoria:Tips&Tricks]][[Categoria:Script]]
3 581

contributi