3 581
contributi
mNessun oggetto della modifica |
(aggiornamento) |
||
Riga 1: | Riga 1: | ||
{{Versioni compatibili}} | {{Versioni compatibili}} | ||
== Introduzione== | |||
In questa guida un semplice script per la connessione a una rete wireless. Richiede di essere eseguito con [[privilegi di amministratore]] 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/> | È 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. | I comandi presentati nello script però possono essere d'aiuto anche per la configurazione da terminale. | ||
Creare | == Creazione script == | ||
Creare con [[privilegi di amministratore]] un file <code>wireless</code> in <code>/usr/local/sbin</code>, con questo contenuto: | |||
<pre> | <pre> | ||
Riga 20: | Riga 23: | ||
ESSID="vostro essid di rete" | ESSID="vostro essid di rete" | ||
# È SCONSIGLIATO usare una variabile, 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) | |||
# password (se utilizzata) per WEP o WPA | # password (se utilizzata) per WEP o WPA | ||
PASSWORD="vostra password" | #PASSWORD="vostra password" | ||
# indirizzo (se non si utilizza DHCP) | # indirizzo (se non si utilizza DHCP, altrimenti commentare) | ||
ADDRESS="192.168.0.2" | ADDRESS="192.168.0.2" | ||
# gateway (se non si utilizza DHCP) | # gateway (se non si utilizza DHCP e si vuole un gateway, altrimenti commentare) | ||
GATEWAY="192.168.0.1" | GATEWAY="192.168.0.1" | ||
Riga 56: | Riga 62: | ||
# commentare le righe successive se la rete non utilizza crittografia WPA2 | # commentare le righe successive se la rete non utilizza crittografia WPA2 | ||
# (WPA2 è l'impostazione consigliata per reti domestiche, dato che WEP è obsoleta e insicura) | # (WPA2 è l'impostazione consigliata per reti domestiche, dato che WEP è obsoleta e insicura) | ||
umask 0077 && | if ! [ -e /root/.wpaconfig ]; then | ||
wpa_passphrase "$ESSID" "$PASSWORD" > / | # creo il file se non esiste | ||
wpa_supplicant -i "$IFACE" -c / | 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 | # accende la scheda di rete e rendi effettive le modifiche | ||
Riga 65: | Riga 85: | ||
iwconfig "$IFACE" commit || true | iwconfig "$IFACE" commit || true | ||
# assegnazione IP alla scheda | if [ -n "${ADDRESS:-}" ]; then | ||
ifconfig "$IFACE" "$ADDRESS" netmask "$NETMASK" | # assegnazione statica IP alla scheda | ||
ifconfig "$IFACE" "$ADDRESS" netmask "$NETMASK" | |||
else | |||
# assegnazione dinamica con DHCP | |||
dhclient "$IFACE" | |||
fi | |||
# aggiungi nuovo percorso alla tabella di routing | if [ -z "${ADDRESS:-}" ] || [ -z "${GATEWAY:-}" ]; then | ||
route add default gw "$GATEWAY" | # aggiungi nuovo percorso alla tabella di routing | ||
route add default gw "$GATEWAY" | |||
fi | |||
# messaggio | # messaggio | ||
echo Scheda Wireless abilitata correttamente. | echo Scheda Wireless abilitata correttamente. | ||
# esci | |||
exit 0 | |||
</pre> | </pre> | ||
Le variabili IFACE, ESSID, | 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. | 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 | {{Autori |
contributi