Slackware Wireless NetGear HOWTO: differenze tra le versioni
(→Configurazione del kernel) |
(→Configurazione AD-Hoc (punto-punto)) |
(8 versioni intermedie di un altro utente non mostrate) | |
(Nessuna differenza)
|
Versione attuale delle 10:01, 15 set 2007
Indice
- 1 Introduzione
- 2 Configurazione del kernel
- 3 Configurazione AD-Hoc (punto-punto)
- 4 Configurazione Managed: Linux HostAP (Host Access Point)
- 5 Sicurezza della rete WiFi
- 6 Connessioni wireless Winxp To Linux
- 7 Configurazione di un host Linux come bridge tra rete wired e rete wireless
- 8 Risorse
- 9 Note finali
Introduzione
Le reti wireless ovvero reti che utilizzano connessioni senza fili, sono in grande sviluppo,anche se la tecnologia su cui poggiano non si può certo ancora considerare totalmente affidabile, specie per strutture o sistemi critici. Però in alcuni casi possono davvero rivelarsi utili o addiritura indispensabili dove sia impossibile effettuare connessioni wired ovvero con cavo come nell'esempio qui sotto riportato. Infatti questo documento descrive le procedure necessarie alla creazione di una connessione senza fili tra due o più sistemi, in assenza di un vero e proprio access point, in modo da poter effettuare connessioni remote attraverso un notebook con PCCARD Wireless Netgear MA401 ed un server con scheda PCI Wireless Netgear MA311.
La scelta è caduta su schede Netgear perché dotate dell'affidabile chipset Prism2 e quindi ben supportate da Linux. Lo standard è 802.11b (una variante dell'802.11a) con velocità massime in presenza di ottime condizioni per segnale di 11Mb/s. Le sue caratteristiche in sintesi: - Frequenze intorno ai 2.4 GHz (microonde) - 11 canali prestabiliti - Massima velocità raggiungibile per ogni canale di 11Mbps - Tramissione in FHSS (Frequency Hopping Spread Spectrum) - In presenza di antenne sulle schede può arrivare fino a 100 metri (distanza che dipende poi da molti fattori, come i disturbi, i muri,visibilità tra le due antenne,etc...) - La teconologia ed il suo protocollo sono ancora inaffidabili ma si stanno faccendo rapidamente passi in avanti,sia per quanto riguarda le prestazioni che la sicurezza. - è fondato su due meccanismi basilari: lassociazione e l'autenticazione.
La distribuzione di base utilizzata è stata la Slackware 9.0 con versione del kernel 2.4.21
Esistono diferenti modalità di configurazione delle schede wireless, nella configrazione AD-HOC non c'è un nodo centrale ed ogni apparato utilizza un canale specifico per comunicare con l'altro. Può essere utilizzata nel caso in caso in cui l'unica necessità sia quella di far dialogare due sistemi isolati.
Nel caso invece di una rete wireless di tipo Managed, ovvero "Gestita" esiste un nodo centrale, un vero e proprio punto d'ingresso della rete (Access Point) Le comunicazioni tra i punti remoti avverranno attraverso il nodo centrale, che è in grado di aumentare le prestazioni e di limitare gli accessi solo ai nodi voluti. Ad esempio nel caso di nodi lontani da un punto remoto, la distanza effettiva di comunicazione sarà quella reale dalla posizione dell'access point e non da quella dell'altro punto remoto, come invece succede nel caso di connessioni Ad-Hoc
Configurazione del kernel
La configurazione del kernel per entrambi i sistemi prevede la compilazione dei moduli Hermes Chipset (Prism2) per poter utilizzare nativamente il device wifi, anche se è comunque possibile utilizzare i moduli forniti dall'HostAP driver.
Supporto kernel (pci) [*] Wireless LAN (non hamradio) <M> Hermes chipset 812.11b support (Orinoco/Prism2/Symbol) (NEW) Supporto kernel per notebook --- Wireless Pcmcia card support <M> Hermes PCMCIA card support
http://ildp.pluto.linux.it/HOWTO/Hardware-HOWTO-27.html
Configurazione AD-Hoc (punto-punto)
La configurazione proposta è del tipo punto a punto detta anche ad-hoc e non prevede la presenza di un access point come nodo centrale di smistamento del segnale. Questo comporta che ognugno dei due sistemi si appropria di un canale ed instrada i pacchetti per un altro. Ad ognugno dei due host viene assegnato un indirizzo IP. Nella Mia configurazione ho previsto che il server con la scheda PCI dotata di antenna funga da proxy e offra funzioni di masquerading per il notebook che si collaga.
La configurazione del device wifi può avvenire su entrambi i sistemi caricando i driver
notebook:~# modprobe hermes notebook:~# modprobe orinoco notebook:~# modprobe orinoco_cs
e poi configurando l'interfaccia wireless come un normale device di rete ethX. In questo caso su una RH9 abbiamo effettuato la configurazione usando l'interfaccia eth1
iwconfig eth1 mode Ad-Hoc iwconfig eth1 channel 11 iwconfig eth1 essid "Wifi Netlink" iwconfig eth1 nickname "Notebook_2" iwconfig eth1 key restricted 012456789 ifconfig eth1 192.168.1.2 up
root@localhost root#] iwconfig eth1 IEEE 802.11-DS ESSID:"Wifi Netlink" Nickname:"Notebook_2" Mode:Ad-Hoc Frequency;2.462GHz Cell: 02:09:59:4E:5F:87 Bit Rate=11Mb/s Tx-Power:15 dBm Sensitivity=1/3 Retry min limit:8 RTS thr:off Fragment thr:off Encryption key:0123-4567-87 Encryption mode:restricted Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:31 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
root@localhost root]# ifconfig eth1 Link encap:Ethernet HWaddr 00:09:5B:55:62:14 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNONG MULTICAST MTU:1500 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:880 (880.0 b) TX bytes:4416 (4.3 kb) Interrupt:3 Base address:0x100
In questo caso non è stato utilizzato l'HostAp driver che estende le funzioni dell'interfaccia WiFi come invece è stato fatto sul server con scheda PCI. La sua configurazione è rimasta invariata se no per il fatto che l'interfaccia wifi è la wlan0 invece di un normale device ethX.
In questo caso occore installare i moduli necessari dal pacchetto hostap-0-0.4.tar.gz reperibile su: http://hostap.epitest.fi
Una volta compilato ed installato, è possibile caricare i driver
notebook:~# modprobe hostap_pci notebook:~# modprobe hostap notebook:~# modprobe hostap_cs notebook:~# modprobe hostap_crypt
In entrambi i casi sono comunque necessari i wireless_tools.26.tar.gz reperibili su: http://www.hpl.hp.com/personal/Jean Tourrilhes/Linux/Tools.html
Abbiamo quindi optato per la seconda scelta che consente di espandere la potenzialità del driver wifi con alcune interessanti opzioni. I wireless tools:
[root@toshiba1:/usr/src#] iw iwconfig iwevent iwgetid iwlist iwpriv iwspy
sono essenziali per configurare e monitorare le interfacce wireless. Con iwconfig si possono configurare i parametri wireless della connessione, ovvero:
root@toshiba1:/usr/src# iwconfig --help Usage: iwconfig interface [essid {NN|on|off}] [nwid {NN|on|off}] [mode {managed|ad-hoc|...} [freq N.NNNN[k|M|G]] [channel N] [ap {N|off|auto}] [sens N] [nick N] [rate {N|auto|fixed}] [rts {N|auto|fixed|off}] [frag {N|auto|fixed|off}] [enc {NNNN-NNNN|off}] [power {period N|timeout N}] [txpower N {mW|dBm}] [commit]
Vediamo le più importanti:
- essid è una stringa in formato alfanumerico che dà il nome alla nostra rete
- nwid è una stringa in formato alfanumerico che rappresenta il Network ID
- mode consente di modificare il metodo di funzionamento del sistema:
- Ad-Hoc - Managed (node connects to a network composed of many access points, with roaming) - Repeater (the node foward packets between other wireless nodes - Secondary (the node act as a backup master/repeater) - Monitor ( the node act as a passive monitor and only receives packets) or Auto.
- freq/channel è la frequenza o il canale su cui funziona la rete
- nick imposta il nickname della scheda
- rate consente di specificare la velocità di connessione
- key/enc consente di gestire la sicurezza con l'abilitazione della crittografia e lo scambio di chiavi:
alcuni esempi:
iwconfig wlan0 essidf "Netlink Wifi" iwconfig wlan0 freq 2.422G iwconfig wlan0 rate 11M iwconfig wlan0 rate auto iwconfig wlan0 nick "Notebook Linux"
Utilizzando il comando iwconfig senza opzioni otteniamo lo stato dell'interfaccia wifi ad esempio:
eth1 IEEE 802.11-DS ESSID:"Wifi Netlink" Mode:Ad-Hoc Frequency;2.462GHz Cell: 02:09:59:4E:5F:87 Bit Rate=11Mb/s Tx-Power:15 dBm Sensitivity=1/3 Retry min limit:8 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:76/92 Signal level:-47 dbm Noise level:-98 dbm Rx invalid nwid:0 Rx invalid crypt:31 Rx invalid frag:0 Tx excessive retries:11 Invalid misc:16 Missed beacon:0
Come si può notare il Link Quality viene espresso da un rapporto indicante proprio la banda disponibile (Bit Rate) in relazione alla qualità del segnale.
Le configurazioni globali utilizzate sugli host sono state:
Notebook PCCARD
root@toshiba1:/# less /root/config_wireless ifconfig eth2 192.168.1.1 up iwconfig eth2 mode Ad-Hoc iwconfig eth2 channel 11 iwconfig eth2 essid "WiFi Netlink" iwconfig eth2 nickname "Notebook" iwconfig eth2 key restricted 0123456789
Server PCI
root@box:~# less config_wireless ifconfig wlan0 192.168.1.3 up iwconfig wlan0 Ad-Hoc iwconfig wlan0 channel 11 iwconfig wlan0 essid "WiFi Netlink" iwconfig wlan0 nickname "Box AP" iwconfig wlan0 key restricted 0123456789
Come test potete provare ad inviare delle richieste ICMP
Configurazione Managed: Linux HostAP (Host Access Point)
In questo caso il server linux dotato di una scheda wireless può sostituire integralmente un access point gestendo il trafioc ed il conseguente smistamento dei dati. In questo caso a differenze della connessione Ad-Hoc, ogni nodo comunica con AP centrale, che può decidere se escludere alcuni nodi in base al loro MAC address. La comunicazione avviene attraverso i così detti baecon e viene regolata da due fasi, quella detta di Associazione, in cui il nodo intercetta un AP e richiede il collegamento alla rete comunicando i suoi parametri come il MAC Address che possono essere accettati o meno nella fase di Autenticazione. Questa fase consente anche l'abilitazione della sicurezza come lo scambio di chiavi per la crittografazione delle comunicazioni. La chiave è cosiddtta chiave WEP che deve essere nota sia al client che la trasmette sia al server che la riceve. questo meccanismo non è comunque considerato sicuro ed esistono tool come Kismet e Airsnort che consentono con operazioni di sniffing di ricostruire la chiave WEP e intercettare quindi le comunicazioni introducendosi nella rete wireless.
Per entrambi i sistemi si è optato per l'utilizzo dell'HostAp driver che estende le normali potenzialità del driver wireless consentendo di configurare il sistema linux anche come access Point, passando dalla modalità client (Ad-Hoc per connessioni punto-punto) a quella master tipica dell'access point. L'interfaccia di tipo wlanX può quindi funzionare come interfaccia wireless standard ma con alcune interessante feature aggiuntive configurabili con i wireless tools. In pratica linux HostAP consente di emulare un access point agendo anche sulla sicurezza della rete, bloccando MAC Address di schede non riconosciute e consentendo il cambio di chiave Wep in modo automatizzato. Ovviamente fare questa scelta significa "sacrificare" una macchina coma AP con tutti i rischi connessi, come il blocco del sistema sicuramente più fragile di un compatto AP dedicato.
I servizi da predisporre dull'HostAP sono un server DHCP in ascolto sull'interfaccia wlan0, in grado di assegnare IP e parametri di rete ai client che ne fanno richiesta. Ovviamente i due sistemi avranno mode diversi: Managed per i client e Master per l'HostAP.
Server HOST AP - Master Mode
- Configurazione interfaccia wireless
ifconfig wlan0 192.168.1.3 up iwconfig wlan0 mode Ad-Hoc iwconfig wlan0 channel 11 iwconfig wlan0 essid "WiFi Netlink" iwconfig wlan0 nickname "Box AP" iwconfig wlan0 key restricted 0123456789
- Configurazione DHCP
# DHCP configuration ddns-update-style ad-hoc; subnet 192.168.1.0 netmask 255.255.255.0 {ddns-updates on; ddns-domainname "in.labtel.it"; ddns-rev-domain-name "named.rev"; default-lease-time 604800; max-lease-time 2592000; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.3; option domain-name-servers 192.168.17.9; option domain-name "in.labtel.it"; option netbios-name-servers 192.168.17.9; option netbios-nodes-type 8; range 192.168.1.10 192.168.17.20; allow unknown-clients; }
- esecuzione del server DHCP sul wlan0
dhcpd wlan0
Nel caso della modalità managed i parametri di channel e di Trasmission saranno forniti automaticamente dall'HostAP non appena questo viene rilevato e pertanto non è necessario specificarli manualmente come invece nel caso della connessione Ad-Hoc.
Client - Managed Mode
- Configurazione interfaccia wireless
iwconfig wlan0 mode Managed iwconfig wlan0 essid "WiFi Netlink" iwconfig wlan0 nickname "Box AP" iwconfig wlan0 key restricted 0123456789
- Configurazione IP e accesso alla Rete
dhcpd wlan0
Nel caso in cui la modalità sia managed è possibile cercare di utilizzare iwspy per raccogliere informazioni sui nodi che trasmettono in rete
root@box:/usr/src# iwspy
Esistono comunque molti tool in grado di sniffare le reti wireless e raccogliere informazioni sui client che trasmettono tra cui segnaliamo:
- wavemon
- Kismet
- AirSnort
- Airfart
sono tutti reperibili su Freshmeat.
Sicurezza della rete WiFi
- Gestione della chiave wep (Wired Equivalent Protocol)
La sicurezza delle LAN wireless è garantita da un protocollo di base: il WEP che prevede una procedura di autenticazione associata ad una procedura di crittografia. In pratica attraverso il WEP viene utilizzata una chiave segreta che deve essere scambiata tra le parti (AP e client) per poter ciffrare e deciffrare i frame trasmessi. E' possibile specificare una chiave personale che deve essere nota a priori oppure può far generare la chiave in automatico. La chiave può essere lunga 40 bit oppure 128 bit, si appoggia su un algoritmo RC4 ed è di tipo simetrico. La chiave a 128 bit rende più complesse le operazioni necessarie a ricostruire la chiave sulla base di un certo numero di pacchetti sniffati, ma può rallentare le connessioni.
Sull'HOST AP
iwconfig wlan0 key s:password //impostare una password
Sui client
iwconfig wlan0 key s:password //occore conoscere la password inpostata sull'HOST AP
Oppure restringendo il campo utilizzando una chiave su entrambi i sistemi
iwconfig wlan0 key restricted 0123456789
eth1 IEEE 802.11-DS ESSID:"Wifi Netlink" Nikname:"Box AP" Mode:Ad-Hoc Frequency;2.462GHz Cell: 02:09:59:4E:5F:87 Bit Rate=11Mb/s Tx-Power:15 dBm Sensitivity=1/3 Retry min limit:8 RTS thr:off Fragment thr:off ;Encryption key:0123-4567-89 Security mode:restricted Power Management:off Link Quality:76/92 Signal level:-47 dbm Noise level:-98 dbm Rx invalid nwid:0 Rx invalid crypt:31 Rx invalid frag:0 Tx excessive retries:11 Invalid misc:16 Missed beacon:0
- Abilitazione dei MAC Address
Come verificata da numeri test il protocollo WEP non è assolutamente sicuro. E' comunque possibile ridurre i rischi adottando alcune basilari norme di sicurezza:
1. modificando spesso le chiavi wep ridistribuendole ai client
2. impostare delle Access List per poter bloccare l'accesso alle rete wireless da parte di host non conosciuti. Questo limita i rischi di intrusione all'interno della nostra rete.In questo modo un intruso potrebbe ottenere la chiave wep con l'ascolto passivo(kismet e Airsnort)ma poi il suo indirizzo MAC sarebbe rifiutato dall'AP.
3. effettuare operazioni di tunneling per fare passare i dati abilitando la crittografia(IPSEC, VTUND, PPTP o semplicemente SSH)
4. Posizionare in modo corretto l'access point, lontano da finestre o sopra armadi la posizione forse migliuore è quella centrale rispetto alla propria struttura(stanza o edificio) e a una altezza intermedia, ne troppo bassa (pavimento) ne troppo alta (soffitto).
per attivare queste liste occore agire sull'indirizzo MAC delle schede e per fare questo si deve utilizzare iwpriv dulla postazione HostAP agendo su alcune delle sue estensioni:
root@box:/usr/src# iwpriv | grep mac maccmd (8BF0): set 1 int & get 0 addmac (8BF2): set 1 addr & get 0 delmac (8BF4): set 1 addr & get 0 kickmac (8BF6): set 1 addr & get 0
- maccmd <n>: stabilisce il metodo di selezione degli indirizzi MAC:
n=0: nessuna restrizione n=1: la lista contiene i MAC address autorizzati n=2: la lista contiene i MAC address non autorizzati n=3: cancella la lista
- addmac <addr>: aggiunge un indirizzo MAC alla lista
- delmac <addr>: cancella un indirizzo MAC dalla lista
- kickmac <addr>: disconnette il client con l'indirizzo MAC address
Nel nostro caso abbiamo eseguito il comando iwspy e identificato l'indirizzo di due client sulla rete wireless:
wlan0 Statistics collected: 00:09:5B:55:3F:97 : quality:244/92 Signal level:-26 dbm Noise level:-35 dbm 00:09:5A:30:85:DE : quality:244/92 Signal level:-36 dbm Noise level:-37 dbm
root@box:~# iwpriv wlan0 maccmd 1 imposta la lista di restizioni: gli indirizzi aggiunti vengono accettati
root@box:~# iwpriv wlan0 addmac 00:09:5A:30:85:DE autorizza il client con questo indirizzo Hardware
root@box:~# iwpriv wlan0 maccmd 3 svuota la lista
root@box:~# iwpriv wlan0 maccmd 2 imposta la lista di restrizioni: gli indirizzi aggiunti vengono esclusi
root@box:~# iwpriv wlan0 addmac 00:09:5A:30:85:DE esclude il client con il MAC address 00:09:5A:30:85:DE
root@box:~# iwpriv wlan0 kickmac 00:09:5A:30:85:DE disabilita (kick) il client con questo indirizzo Hardware
root@box:~# iwpriv wlan0 maccmd 0 disabilita le restrizioni
Risorse http://www.idg.it/networking/nwi2000/D12a0204.htm
- informazioni sull'interfaccia WiFi
Le informazioni sull'interfaccia e sui parametri possono essere reperibili sotto:
root@box:~# cat /proc/net/hostap/wlan0/ 00:09:5b:40:85:de ap ap_debug pda scan_results wds 00:09:5b:55:5f:87 ap_control debug registers stats
Le informazioni relative alla Acess List vengono salvate in:
root@box:~# cat /proc/net/hostap/wlan0/ap_control MAC policy: allow MAC entry: 1 MAC list: 00:09:5b:55:5f:87
Connessioni wireless Winxp To Linux
Volendo connettere sempre in modalità punto a punto, ovvero con connessione Ad-Hoc, un sistema equipaggiato con WinXp ed uno con Linux le operazioni sono abbastanza semplici. Sotto Linux configurare come visto in precedenza l'interfaccia wlan assegnandogli l'ESSID della rete, sotto Windows XP invece, dopo aver configurato la scheda (procedura che WinXp esegue automaticamente), è possibile assegnarli un indirizzo IP sotto le proprietà del TCP/IP. A questo punto dovrebbe essere presente un icona sotto le connessioni di rete per la connessione wireless, cliccando con il tasto dx del mouse si può scegliere "visualizza reti senza fili disponibili". In questo modo la scheda tenta di rilevare le reti o le postazioni dotate di interfaccia wireless mostrando l'ESSID della rete: cliccando sul bottone "Avanzate" si possono configurare i parametri mentre con il bottone "Connetti" si può accedere alla rete. Un semplice ping tra postazioni con IP della stessa LAN testimonia il buon funzionamento dell'interfaccia.
Per modificare le opzioni della rete occore invece accedere alle "Proprietà" della connessione e scegliere la voce "reti senza fili", a questo punto vengono mostrate le "reti disponibili" che opportunamente configurate vengono aggiunte alle "reti preferite". Con i relativi bottono "Configura" e "Proprietà" è possibile modificare i parametri delle connessioni e aggiornarle. Sotto la voce "Proprietà" è possibile modificare ESSID, impostare la password o abilitare il protocollo di crittografia wep.
Nel caso in cui si volesse impostare un accesso ristretto abilitando la crittografia, occore ad esempio sulla linux box impostare il valore key restricted:
iwconfig wlan0 key restricted 0123456789
e sul notebook con xp. In questo caso la chiave che deve essere nota a priori, viene specificato manualmente, inserendola nella casella "chiave di rete" in formato esadecimale.
Configurazione di un host Linux come bridge tra rete wired e rete wireless
Un'interessante configurazione prevede di poter associare l'interfaccia wired con quella wireless in modo da poter fare brdging tra i due segmenti di rete:
- Compilare il kernel abilitando il supporto per i bridging
Networking options ---> <*> 802.1d Ethernet Bridging
Verificare con il comamdo
root@box:/usr/src/linux# dmesg | grep -i bridge NET4: Ethernet Bridge 008 for NET4.0
installare i bridging utils http://bridge.sourceforge.net/download.html
Configurazione dell'interfaccia br0
brctl addbr br0 brctl addif br0 wlan0 brctl addif br0 eth1 ifconfig wlan0 0.0.0.0 promisc ifconfig eth1 0.0.0.0 promisc
Risorse
Un bell'insieme di risorse e tools sono disponibili all'indirizzo: http://www.tuxmobile.org/wireless_unix.html
Un bel documento su come aggiungere un'antenna esterna alla PCCARD si può trovare presso: http://www.nodomainname.co.uk/ma401/ma401.htm
Altra interessante tabella di configurazione per schede wireless http://seattlewireless.net/index.cgi/HardwareComparison?action=diff
Note finali
- Il presente documento è a semplice scopo divulgativo
- L'autore non si assume la reesponsabilità di eventuali danni diretti o indiretti dall'uso dei programmi o dall'applicazione delle configurazioni menzinate nel seguente articolo
- L'uso o il riutilizzo del presente articolo è liberamente consentito percopi didattici o informativi previa cittazione della fonte
- Sono possibili errori o imprecizioni, segnalatele a pavan@netlink.it
- Chi volesse integrare il presente documento, può scrivere a pavan@netlink.it