Perche' BASH VINCE

Ipotesi di script

TODO

Scan delle reti wifi presenti

iw wlan0 scan e un colpo di grep

Andiamo di awk, andiamo affanculo

$1 ~ /^BSS/ {
    if($2 !~ /Load:/) { #< Escape "BBS Load:" line
        gsub("(\\(.*|:)", "", $2)
        MAC = toupper($2)
        wifi[MAC]["enc"] = "OPEN"
        wifi[MAC]["WPS"] = "no"
        wifi[MAC]["wpa1"] = ""
        wifi[MAC]["wpa2"] = ""
        wifi[MAC]["wep"] = ""
    }
}
$1 == "SSID:" {
    # Workaround spaces in SSID
    FS=":" #< Changing field separator on ":", it should be
           #  forbidded sign for SSID name
    $0=$0
    sub(" ", "", $2) #< remove first whitespace
    wifi[MAC]["SSID"] = $2
    FS=" "
    $0=$0
}
$1 == "capability:" {
    for(i=2; i<=NF; i++) {
        if($i ~ /0x[0-9]{4}/) {
            gsub("(\\(|\\))", "", $i)
            if (and(strtonum($i), 0x10)) 
                wifi[MAC]["wep"] = "WEP"
        }
    }
}
$1 == "WPA:" {
    wifi[MAC]["wpa1"] = "WPA1"
}
$1 == "RSN:" {
    wifi[MAC]["wpa2"] = "WPA2"
}
$1 == "WPS:" {
    wifi[MAC]["WPS"] = "yes"
}
$1 == "DS" {
    wifi[MAC]["Ch"] = $5
}
$1 == "signal:" {
    match($2, /-([0-9]{2})\.00/, m)
    wifi[MAC]["Sig"] = m[1]
}
$1 == "TSF:" {
    gsub("(\\(|d|,)", "", $4)
    match($5, /([0-9]{2}):([0-9]{2}):/, m)
    day = $4
    hour = m[1]
    min = m[2]
    wifi[MAC]["TSF"] = day"d"hour"h"min"m"
}
END {
    for (w in wifi) {
        if (wifi[w]["wep"]) {
            if (wifi[w]["wpa1"] || wifi[w]["wpa2"])
                wifi[w]["enc"] = wifi[w]["wpa1"]wifi[w]["wpa2"]
            else
                wifi[w]["enc"] = "WEP"
        }
        printf "%s:%s:%s:%s:%s:%s:%s\n", w, wifi[w]["SSID"], wifi[w]["enc"], \
               wifi[w]["WPS"], wifi[w]["Ch"], wifi[w]["Sig"], wifi[w]["TSF"]
    }
}

il risultato soddisfa:

root@rover:/home/asbesto# iw wlan0 scan | awk -f parsa.awk
1C497B51F02D:Linkem2.4GHz_51F02C:WPA2:yes:11:76:12d23h25m
E48F34776815:Vodafone-A46124408:WPA2:yes:12:70:1d07h59m
A491B178032E:FASTWEB-78032E:WPA2:yes:1:82:0d11h45m
121331D67AA8:WOW FI - FASTWEB:WPA2:no:1:52:27d15h05m
5CE28C90FA0E:Infostrada-90FA0D:WPA1WPA2:yes::86:6d10h53m
64700239143D:Home:WPA1WPA2:yes:1:67:5d18h35m
BA9E639DB4E7:Wiremore:WPA2:no:6:27:0d01h35m
101331D67AA9:FASTWEB-D67AA9(2.4ghz):WPA2:yes:1:51:27d15h05m
30918F9DAD43:Telecom-61991747:WPA1WPA2:yes:11:76:40d15h04m
04F0211B577E:tvccSiracusa:WPA2:no::78:119d10h29m
E48F34564F0C:VodafoneMontedoro:WPA2:yes:7:58:1d03h07m
4C5E0C61E196:mynetworch23:WPA2:no::82:119d10h31m
121331D67AB1:FASTWEB-D67AA9(5ghz):WPA2:yes::66:28d04h46m
E48F34564F0E:Vodafone-WiFi:OPEN:no:7:58:1d03h07m
A691B178032D:WOW FI - FASTWEB:WPA2:no:1:72:0d11h45m
628F34776816:Vodafone-WiFi:OPEN:no:12:70:1d07h59m
root@rover:/home/asbesto#

da qui, capire se uno degli ESSID / MAC ADDRESS esiste nelle conf -> collegarsi automaticamente e vaffanculo

Verifica con db esistente

confronto e ricerca file /etc/network/interface.ESSID bello e pronto

Reta

RETA, voce del verbo RETARE: mi connetto

service networking stop
cp /etc/network/interfaces.ESSIDDELCAZZO /etc/network/interfaces
service networking start

interfaces

GENERICO WPA DEL CAZZO:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0
allow-hotplug
iface wlan0 inet dhcp
        wpa-ssid wifi-del-cazzo
        wpa-psk sucaminchia

GENERICO RETE APERTA SOLO SSID

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0
allow-hotplug
iface wlan0 inet dhcp
 wireless-ap E4:8F:34:56:4F:0E
 wireless-essid Vodafone-WiFi

NOTA: wireless-ap trovato miracolosamente, capito da:

gli initscripts di Debian passano le opzioni wireless-sarcazzo direttamente a iwconfig, quindi la lista di opzioni sta in https://linux.die.net/man/8/iwconfig

vedi il contenuto del merdoso file /etc/network/if-pre-up.d/wireless-tools

docs sparpagliati ovunque porcoddio

Parametri WPA senza wpasupplicant.conf
Almeno a partire da Lenny (Debian 5) è possibile configurare wpa_supplicant direttamente dal file /etc/network/interfaces; per fare ciò sarà però necessario modificare un poco la sintassi. Rifacendomi all'esempio sopra riportato (nel caso con DHCP, ma vale la stessa cosa per un indirizzo statico), il file unico di configurazione andrebbe scritto nel modo seguente:

auto wlan0
iface wlan0 inet dhcp
wpa-ssid NOME_RETE_WIRELESS
wpa-psk cc989812bc2cd489f960d8c1b2428d98d3c5555dac62d70ff691762fb4cc418a
evitando appunto la linea "pre-up wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B" e dunque l'utilizzo del file "etc/wpa_supplicant.conf. Alla fine i due metodi di configurazione sono da considerarsi equivalenti; sarà infine solo la filosofia dell'utente ad indicare quale metodo sia il migliore (c'è chi preferisce configurare un file in meno nel sistema operativo e chi preferisce avere un file di configurazione "dedicato" per ogni funzione del sistema). In ogni caso, come sempre, prima viene la conoscenza delle possibilità e poi si potrà decidere in tutta calma :-).

Info.png        Nota 
È possibile che in alcune guide troverete la linea "wpa-driver wext" a seguire o a precedere le due citate; nonostante quest'opzione sia effettivamente necessaria, se la si tralascia è ciò che viene comunque selezionato per default: tanto vale allora dimenticarcela ;-).

Oltre alle opzioni "wpa-ssid" e "wpa-psk" (e "wpa-driver"), nel file /usr/share/doc/wpasupplicant/README.Debian.gz troverete tutte le altre possibilità che vi riportiamo qui sotto e utilizzabili a seconda dell'esigenza.

Element        Example Value            Description
=======        =============            ===========
wpa-ssid       plaintextstring          sets the ssid of your network

wpa-bssid      00:1a:2b:3c:4d:5e        the bssid of your AP

wpa-psk        0123456789......         your preshared wpa key. Use
                                        wpa_passphrase(8) to generate your psk
                                        from a passphrase and ssid pair

wpa-key-mgmt   NONE, WPA-PSK, WPA-EAP,  list of accepted authenticated key
               IEEE8021X                management protocols

wpa-group      CCMP, TKIP, WEP104,      list of accepted group ciphers for WPA
               WEP40

wpa-pairwise   CCMP, TKIP, NONE         list of accepted pairwise ciphers for
                                        WPA

wpa-auth-alg   OPEN, SHARED, LEAP       list of allowed IEEE 802.11
                                        authentication algorithms

wpa-proto      WPA, RSN                 list of accepted protocols

wpa-identity   myplaintextname          administrator provided username
                                        (EAP authentication)

wpa-password   myplaintextpassword      your password (EAP authentication)

wpa-scan-ssid  0 or 1                   toggles scanning of ssid with specific
                                        Probe Request frames

wpa-ap-scan    0 or 1 or 2              adjusts the scanning logic of
                                        wpa_supplicant


CategoryMuseo

MyConnectionManager (last edited 2019-09-18 14:55:20 by asbesto)