Repository 32bit  Forum
Repository 64bit  Wiki

Wi-Fi Ad-Hoc tra Linux e Windows: differenze tra le versioni

Da Slacky.eu.
 
Riga 1: Riga 1:
  +
[[Category:Networking]]
  +
== Introduzione ==
== Introduzione ==

Versione delle 14:58, 7 set 2006


Indice

Introduzione

Premetto che non sono affatto un esperto di reti e questa guida vuole semplicemente essere un resoconto di quanto fatto per far funzionare il tutto.Perdonatemi e segnalatemi eventuali errori. Lo scopo di questo breve HOW-TO è quello di permettere la condivisione di una connessione ad Internet tra un gateway Linux e un client Windows utilizzando una rete wireless Ad-Hoc a bassissimo costo.La connessione Ad-Hoc permette di connettere direttamante tra loro 2 PC senza passare per un router,più o meno quanto accade per con una connessione diretta con un cavo di rete incrociato (cross). Il passo successivo sarà quello di condividere anche cartelle e stampanti.

Specifiche dei PC

PC fisso

  • SO:Linux Slackware,kernel 2.6.13
  • Connesso ad Internet mediante modem ethernet sulla porta eth0,nome della connessione ppp0.
  • SCHEDA WIRELESS:Philips SNU6500 USB

PC portatile

  • SO:Windows XP Home Edition
  • SCHEDA WIRELESS:Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g

Configurazione del server Linux

Requisiti hardware e software

  • Hardware
  1. Un PC dotato di porte USB
  2. Un adattatore Wireless USB Philips SNU6500 con relativo CD di installazione
  3. Una connessione ad Internet
  4. Un'installazione di Windows funzionante,altrimenti il vostro adattatore USB non si accenderà!
  • Software utilizzati
  1. NDISwrapper per far funzionare la periferica wireless con i driver di Windows
  2. Samba per condividere con il Client Windows files e cartelle
  3. CUPS per stampare
  4. Wireless-tools
  5. Iptables

Per informazioni più dettagliate sui software utilizzati vi rimando alla linkografia.

Ndiswrapper

NDISwrapper crea un modulo per il Kernel di Linux che è in grado di caricare ed eseguire i drivers NDIS (Windows Network Driver API) in sostituzione dei driver nativi mal funzionanti o proprio non rilasciati. L'installazione di NDISwrapper può essere effettuata da sorgenti oppure dai più comodi pacchetti precompilati. Personalmente ho preferito l'installazione del pacchetto in quanto il modulo creato dalla compilazione non veniva caricato correttamente. Una volta installato il programma deve essere lanciato da root

ndiswrapper

 Usage: ndiswrapper OPTION
 Manage ndis drivers for ndiswrapper. 
-i inffile Install driver described by 'inffile'
-d devid driver Use installed 'driver' for 'devid'
-e driver Remove 'driver'
-l List installed drivers
-m Write configuration for modprobe
-da Write module alias configuration for all devices
-di Write module install configuration for all devices
-v Report version information
where 'devid' is either PCIID or USBID of the form XXXX:XXXX

Copiate ora la directory dei driver dal CD di installazione fornito in una qualsiasi directory del vostro disco fisso. Si procede poi all'installazione dei driver vera e propria con il comando

ndiswrapper - i /percorso/dei/driver/CPWUA6D.INF

e verificate con il comando

ndiswrapper -l

che i driver siano stati effettivamente caricati

 Installed drivers:
cpwua6d driver installed

Il passo successivo è quello di lanciare

ndiswrapper -m

per dare le corrette direttive a modprobe.
Per il momento basta così.Riavviate il PC su Windows e vedrete la spia luminosa dell'adattatore lampeggiare (questa operazione deve essere fatta ogni volta che si riavvia o si spegne Linux!!!!).Riavviate,lanciate Linux e caricate il modulo ndiswrapper con

modprobe ndiswrapper

Ora la spia dovrebbe lampeggiare. Date nuovamente da root il comando

ndiswrapper -l

e verificate che la risposta questa volta sia

 Installed drivers:
cpwua6d driver installed, hardware present

Se fino a qui tutto va bene siamo già a buon punto.Altrimenti non scoraggiatevi e riprovate.

Configurazione delle schede di rete

Utilizzeremo ora il programma iwconfig che fa parte del pacchetto wireless-tools incluso in quasi tutte le distribuzioni.Si tratta di un analogo del più celebre ed utilizzato ifconfig dedicato però alla configurazione di reti wireless. Devo essere sincero che questi passaggi sono aleatori,ma funzionano.Anche qui,se qualcosa non va riprovate. Qui fornisco solo una rapida descrizione di ciò che serve alla configurazione dell'interfaccia wireless.Alla fine dell'HOW-TO fornirò comunque un piccolo script che modificato a dovere dovrebbe funzionare. Il primo passo è quello di verificare che il dispositivo sia funzionante.Lanciate da root

iwconfig

ed assicuratevi che compaia tra le interfacce wlan0.
Bisogna adesso inserire i parametri della rete.
In particolare

  • il tipo di connessione e la sua chiave WEP (key)
  • il nome della connessione (essid)
  • il "soprannome" dela vostra scheda (nickname)

La sintassi sarà

iwconfig wlan0 key open chiave-wep
iwconfig wlan0 essid nomeconnessione
iwconfig wlan0 nickname quellochevolete

E'consigliabile lanciare dopo ogni comando iwconfig senza altri parametri per verificare che sia effettivamente cambiato qualcosa. Bisogna talvolta specificare il rate a cui lavorare,cioè la velocità a cui vengono scambiati i dati.Purtroppo nel mio caso non si può lavorare a più di 11 Mb/S,più che sufficienti comunque per guardare un film del computer della camera sul portatile in soggiorno o navigare in internet comodamente distesi sul divano.Si procede poi specificando che vogliamo una connessione Ad-Hoc

iwconfig wlan0 rate 11M
iwconfig wlan0 mode Ad-Hoc

Lanciate adesso

iwlist scan

e verificate (o meglio sperate!) che vi ritorni qualcosa del genere

wlan0    Scan completed : 
Cell 01 - Address: E2:EF:C0:94:E5:FD
ESSID:"philips"
Protocol:IEEE 802.11b
Mode:Ad-Hoc
Frequency:2.462 GHz (Channel 11)
Quality:0/100 Signal level:-24 dBm Noise level:-256 dBm
Encryption key:on
Bit Rate:1 Mb/s
Bit Rate:2 Mb/s
Bit Rate:5.5 Mb/s
Bit Rate:11 Mb/s
Extra:bcn_int=100
Extra:atim=0

E' possibile che venga ritornato

wlan0 No scan results

Non preoccupatevi,smanettate con i comandi che vi ho indicato in precedenza e il problema dovrebbe risolversi. Bisogna poi attivare le interfacce di rete.Supponendo che eth0 sia connessa ad internet direttamente mediante un modem ethernet,lanciate da root

ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 up

Ovviamente al posto di 192.168.0.1 e 192.168.1.1 mettete,se ritente opportuno,altri indirizi IP.

Il passaggio successivo è

Condividere la connessione ad Internet

Da root lanciate

chmod +x /etc/rc.d/rc.ip_forward
/etc/rc.d/rc.ip_forward restart

per abilitare la condivisione della connessione

Bisogna caricare i moduli relativi al supporto per il masquerading,quindi lanciate da root

modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_nat
modprobe ipt_MASQUERADE

e si concede il masquerading solo ai computer della rete wireless

iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -j DROP

Riassumendo il tutto in uno script :

 #!/bin/bash 
chmod +x /etc/rc.d/rc.ip_forward
modprobe ndiswrapper
iwconfig wlan0 key open abcabcabc1
iwconfig wlan0 essid philips
iwconfig wlan0 nickname philips
iwconfig wlan0 rate 11M
iwconfig wlan0 mode Ad-Hoc
iwlist wlan0 scan
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 up
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_nat
modprobe ipt_MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -j DROP </br>

Salvatelo,rendetelo eseguibile (chmod 777) ed è pronto per essere lanciato (da root) quando volete.

Configurazione del client Windows XP Home Edition

Prima di passare a configurare Samba per la condivisione di file e cartelle,vediamo se il lavoro fatto fin qui ha dato i suoi frutti. Si presume che si sia già configurata la periferica wireless in maniera corretta (ESSID,chiave WEP...).</br> Andate sul menu Start--->Impostazioni--->Connessioni di rete.Cliccate col tasto destro su Connessione senza fili--->Proprietà.Selezionate quindi Protocollo Internet (TCP/IP) e cliccate su Prprietà.Rifacendovi allo script precedente,inserite nei campi

  • Indirizzo IP : 192.168.1.2
  • Subnet mask : 255.255.255.0
  • Gateway predefinito : 192.168.1.1

Come DNS inserite quelli relativi al vostro provider.Per Alice

  • Server DNS preferito : 212.216.112.112
  • Server DNS alternativo : 212.216.172.62

A posto.Riavviate il PC e provate a "pingare" Client e Server.
Da Linux a Windows : lanciate un terminale e date ping 192.168.1.2
Da Windows a Linux : Start--->Programmi--->Accessori--->Prompt dei comandi--->ping 192.168.1.1

Se i 2 PC si sentono (o si parlano,come preferite) siamo a buon punto.Provate a lanciare il vostro browser e vedete se riesce a connettersi ad Internet.

Samba...si balla!

Samba permette di condividere materiale in una rete mista Linux/Windows come la nostra.La configurazione è relativamente semplice se utilizzate KDE,altrimenti bisogna mettere mano ad un file di testo,/etc/samba/smb.conf Per non complicare troppo la breve guida,utilizzerò il metodo KDE.
Andate nel Menu K--->Centro di controllo--->Internet e rete--->Samba.
Cliccate su Modalità amministratore e modificate i parametri con criterio,anche se devo dire che è tutto molto ben spiegato.Abbiate l'accortezza di utilizzare come Gruppo di Lavoro lo stesso sia su Linux che su Windows,altrimenti i 2 PC non si vedranno.
Per entrare nel client basta digitare da konqueror smb://192.168.1.2
Da Windows andate su Risorse di Rete e dovrebbero comparire la cartelle condivise del Server.

Spero di esservi stato d'aiuto.E ricordate che questo How-To è valido per tutte le distribuzioni Linux e per tutti le schede wireless supportate da NDISwrapper.

To Do List

Condividere la stampante e i processi di stampa

Linkografia

Slacky.it
Il sito di ndiswrapper
Wireless Tools
Documentazione su iptables
CUPS
Il forum di LinuxPRO

Strumenti personali
Namespace

Varianti