Multi configurazione automatica wi-fi

From Linuzz

Dopo aver installato i rispettivi driver della vostra scheda wi-fi ed averne accertato il corretto funzionamento con almeno una singola configurazione, vi potrete creare più configurazione automatiche da usare in ambienti diversi come casa e ufficio... quindi a lavoro!

Accedo al terminale come utente root e creo due “copie” del file /etc/network/interfaces una per casa (/etc/network/interfaces_casa) l'altra per l'uffico seteck (/etc/network/interfaces_seteck)

Da terminale come utente root digito:

nano /etc/network/interfaces_casa

copio e incollo il contenuto

# This file describes the network interfaces available on your system
 # and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#allow-hotplug eth1
iface eth1 inet static
#auto eth2
iface eth2 inet dhcp
wpa-conf /etc/wpa_supplicant_casa.conf     
wireless-essid  (inserisco il nome della rete) 
wireless-key  (inserisco la password wpa)
#auto eth2

salvo e esco

Piccolo particolare: Fate attenzione a come viene identificata dal sistema la vostra periferica. Nel mio caso la scheda wi-fi è vista come: eth2 di conseguenza in tutti questi “script” la periferica wi-fi è indicata con eth2, se nel vostro pc risulta diverso basterà sostituire eth2 con il nome della vostra scheda. Es: eth0 Per svelare ciò da terminale basta digitare il comando:

ifconfig

e avrete l'elenco delle periferiche di rete e i relativi nomi.

Ora creo l'altro file di configurazione per l'ufficio seteck

Da terminale come utente root digito:

nano /etc/network/interfaces_seteck

copio e incollo il contenuto

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#allow-hotplug eth1
iface eth1 inet static
#auto eth2
iface eth2 inet static
address 192.168.X.XX
netmask 255.255.XXX.X
gateway 192.168.X.XXX
wpa-conf /etc/wpa_supplicant_seteck.conf    
wireless-essid  (inserisco il nome della rete)  
wireless-key  (inserisco la password wpa)
#auto eth2

salvo e esco

Creo i due nuovi wpa_supplicant.conf /etc/wpa_supplicant_casa.conf e /etc/wpa_supplicant_seteck.conf

Da terminale come utente root digito:

nano /etc/wpa_supplicant_casa.conf

copio e incollo

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=1000
update_config=1
network={
ssid=(inserisco il nome della rete rispettando maiuscole-minuscole ed eventuali virgolette-apici)
psk=(inserisco la password wpa)
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
}

salvo e esco

creo l'altro per l'uffico, da terminale come utente root digito:

nano /etc/wpa_supplicant_seteck.conf

copio e incollo

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=1000
update_config=1
network={
ssid=(il nome della rete rispettando maiuscole-minuscole ed eventuali virgolette presenti nel nome essid EX: "Seteck")
psk=(inserisco la password wpa) 
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
}

salvo e esco

Creo l' /etc/resolv.conf dell'ufficio, la salvo rinominandola /etc/resolv_seteck.conf facendo un cat di /etc/resolv_seteck.conf mi apparirà il resolv.conf dell'ufficio:

inspiron:/etc# cat resolv_seteck.conf
search fastwebnet.it
nameserver 213.XXX.X.XX (in modalità nano, inserite il numero del vostro server DNS)

Adesso creo lo script che permetterà il riconoscimento automatico, che poi andrò ad inserire in /etc/rc.local

ifdown eth2
var_a=`iwlist eth2 scan|grep Alice-12345678|sed -e 's/                    //'`
if [ "$var_a" = 'ESSID:"Alice-12345678"' ]; then
       cp /etc/network/interfaces_casa /etc/network/interfaces
else
       cp /etc/network/interfaces_seteck /etc/network/interfaces
       cp /etc/resolv_seteck.conf /etc/resolv.conf
fi
ifup eth2
exit 0

La funzione di questo script è: verificare il nome della rete rilevata, se la verifica da esito positivo, ad esempio viene rilevato il nome: ESSID:"Seteck" verrà copiata la configurazione /etc/network/interfaces_seteck nel file principale dell'interfaccia di rete ovvero: /etc/network/interfaces lo stesso per il file /etc/resolv.conf che contiene i dati del server DNS; successivamente verrà accesa la periferica wi-fi (ifup eth2). Lo stesso accade se viene rilevata la rete di casa ESSID:"Alice-12345678". In sostanza viene verificato il nome dell'ESSID delle reti rintracciate e se l'esito è positivo lo script procede nel cercare quale dei due file di configurazione permette alla periferica wi-fi di funzionare.

Ora lo copio e lo incollo in /etc/rc.local

Da terminale come utente root digito:

nano /etc/rc.local

copio e incollo

#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
ifdown eth2
var_a=`iwlist eth2 scan|grep Alice-12345678|sed -e 's/                    //'`
if [ "$var_a" = 'ESSID:"Alice-12345678"' ]; then
       cp /etc/network/interfaces_casa /etc/network/interfaces
else
       cp /etc/network/interfaces_seteck /etc/network/interfaces
       cp /etc/resolv_seteck.conf /etc/resolv.conf
fi
ifup eth2
exit 0

salvo e esco

P.s: se a casa usate un modem/router Alice Telecom, ricordatevi che oltre ad allinearvi con il “modem” inserendo la password WPA dovrete configurare ed effettuare anche una connessione di tipo pppoe altrimenti non vi collegate mai.

Per configurare una connessione Alice di tipo pppoe clickate sul seguente link: [1]

--marco.g 11:56, 18 June 2007 (EDT) Marco Graziotti, Michele Tatulli, Marco Moscini

Personal tools