Bluetooth per reti wireless

Transcript

Bluetooth per reti wireless
Utilizzo del bluetooth per reti wireless
di balla & fe
Ogni linuxiano che si rispetti, dopo aver comprato un qualsiasi oggetto elettronico si aspetta di poterlo
utilizzare in tutte le sue caratteristiche, nel nostro caso abbiamo testato la possibilit di poter creare delle
piccole reti ( si parla di non pi di 8 computer) utilizzando dispositivi bluetooth.
Il dispositivo provato un p ennino usb, (la marca non importa) in primis per cercare dell'hardware
supportato dal nostro OS d' obbligo una ricerca nel web, un sito utile : www.bluez.org qua si trova sia
la documentazione, i dispositivi supportati e i programmi utili per poter gestire le periferiche del "dente
blu" :)
(si possono consultare anche le ottime guide di imu e AAAle in questo stesso sito ­ N.d.R.)
Il protocollo bluetooth non necessita di enormi quantit di energia, la distanza di utilizzo tra due
dispositivi varia da 10 a 100 metri, non s tato costruito per gestire elevate quantit di dati come il wi­fi,
(banda media di 721 Kbps) per s e si a lle strette e non si vuole inciampare nei cavi pu r imanere utile
sapere che esiste una alternativa.
Kernel:
Iniziamo con la gestione della configurazione del kernel per poter attivare le opzioni necessarie allo
scopo.
I kernel precedenti al 2.4.20 hanno bisogno di una patch (scaricabile all'indirizzo
http://bluez.sf.net/patches/patch­2.4.19­bluetooth­*), per tutti gli altri basta aggiungere le varie opzioni
per il bluetooh:
Percorsi per il Kernel 2.4.x:
bluetooth support:
Bluetooth subsystem support
BNEP protocol support
Multicast filter support
Protocol filter support
Bluetooth support
Bluetooth device drivers
HCI USB driver
HCI VHCI (Virtual HCI device) driver
Networking-support>Networking-Options
802.1d Eterner Bridging
percorsi per il kernel 2.6.x:
Device driver
Networking-support
bnep
Multicast filter support
protocol fiter support
Bluetooth-subsistem-support:
Device driver
Networking-support
Bluetooth-subsistem-support
Device-Drivers:
HCI-USB-driver
Qua dobbiamo cercare il driver del nostro dispositivo.
Bluetooth-
Device driver
Networking-support
802.1d Eternet Bridging
Networking-Options
IMPORTANTE IL DRIVER BLUETOOTH PRESENTE NELLA SEZIONE USB VA IN
CONFLITTO CON I DRIVER DELLA SEZIONE NETWORK!!!!
Software:
Tutto il software necessario r accolto in questi pacchetti
bluez-libs-2.10
bluez-utils-2.10
bluez-pin-0.24
bluez-firmware-1.0
bluez-hcidump-1.11
bluez-hciemu-1.0
Per un utilizzo minimo bastano i primi due, ma gli autori del programma consigliano di installare anche
gli altri.
Veniamo all'opera; la modalit di connessione utilizzata non permette simmetria di ruoli: un dispositivo
bluetooth dovr s volgere la funzione "server", uno quella di "client". Il procedimento pu e ssere
espletato con sfumature diverse, ma in questa sede ci occuperemo della situazione in cui il server agisca
da "NAP" (Network Access Point), il client da "PANU" (Pan User). Caliamoci inoltre in un ambiente
facile: le macchine sono soltanto due. Nel seguito generalizzeremo il discorso a otto macchine (un NAP
che accoglie sette connessioni PANU).
I software che verranno utilizzati in un primo momento (hcid e pand) sono contenuti nel pacchetto
"bluez­utils" che deve essere installato badando alle dipendenze. Se il kernel s tato ben compilato e il
demone hcid avviato, il comando:
$ hcitool dev
ci dar c onferma sul fatto che il dispositivo bluetooth p ronto all'uso.
Per avere meno scrupoli nel caso qualcosa non funzionasse, si cominci con l'accertarsi che i dispositivi
bluetooth si vedano l'un l'altro: attiviamo il demone hcid su entrambe le macchine; il comando:
$ hcitool scan
permette di rilevare il dispositivo remoto, leggendo inoltre il suo "BDA", (BT Device Address); ecco
un esempio:
$ hcitool scan
$
$
Hcid a vviato; i dispositivi si "sentono"; questa l a prima tappa. Proseguiamo.
Occorre mettere in ascolto il dispositivo sul NAP: per effettuare questo passo modifichiamo il file /
etc/bluetooth/hcid.conf: nella sezione "device" dovr e ssere presente la linea:
lm accept,master;
Sui Panu potremo lasciare l'impostazione di default che con tutta probabilit risulter:
lm accept;
Nel caso in cui fosse stato necessario modificare il file riavviamo hcid e prepariamoci a mettere in
ascolto, pronto a ricevere connessioni, il dispositivo bluetooth lato NAP:
# pand
-listen -role NAP
Ora spostiamoci sul PANU e connettiamoci (hcid deve essere avviato, ricordatevi):
# pand -role PANU -connect
dove "nap­bda" i l bluetooth device address del dispositivo presente sul NAP, facilmente individuabile
eseguendo un "$ hcitool scan".
Se tutto a ndato liscio, su entrambe le macchine sar pos sibile gestire l'interfaccia bnep0, alle quali
dovremo assegnare un ip e una netmask; un ping decreter i l successo dell'opera:
NAP:
PANU:
PANU:
ifconfig bnep0 192.168.0.1 netmask 255.255.255.0
ifconfig bnep0 192.168.0.2 netmask 255.255.255.0
ping 192.168.0.1
Qui termina la seconda tappa; vediamo ora che cosa accade nei particolari: ci sar ut ile per
automatizzare la configurazione delle interfacce bnep0.
Quando PANU e NAP entrano in comunicazione tramite la chiamata "connect" di pand, essi lanciano
lo script:
/etc/bluetooth/pan/./dev-up bnep
dove "n" i l minor intero tale che l'interfaccia bnep
Il file dev­up deve essere eseguibile e pu c ontenere ci c he vogliamo: su PANU, ad esempio, potr
essere simile a questo:
#!/bin/bash
ifconfig $1 192.168.0.2 netmask 255.255.255.0 up
Sul NAP provvederemo a sostituire l'opportuno ip; in questo modo la configurazione delle interfaccie
non dovr e ssere pi gestita manualmente, e non solo: modificando lo script dev­up potremo eseguire
qualsiasi direttiva sia lato PANU che lato NAP (firewall, log, routing etc.), direttiva che verr e seguita
appena verr i nstallata la connessione.
La quarta ed ultima tappa, il passaggio alle otto macchine, si basa sull'ethernet bridging; si crea
un'interfaccia virtuale, non legata a nessun dispositivo fisico, e si convogliano su di essa le connessioni
bluetooth; sar s ufficiente scrivere opportunamente, lato NAP, lo script dev­up; le procedure lato PANU
rimarrranno identiche.
Installiamo bridge­utils.
Creiamo l'interfaccia virtuale sul NAP:
# brctl addbr pan0
# ifconfig pan0 192.168.0.1
I seguenti comandi servono ad ottimizzare lo scambio dati, eliminando lo "Spanning Tree Protocol" e il
"Listening and Learning States":
# brctl setfd pan0 0
# brctl stp pan0 off(oppure disable)
Il dado sta per essere tratto: modifichiamo lo script dev­up in modo che le interfacce bnep
#!/bin/bash
brctl addif pan0 $1
ifconfig $1 0.0.0.0
Che succede? Ogni volta che pand (lato NAP) inizializza una connessione con un dispositivo che ne fa
richiesta, l'interfaccia che si crea (e che viene passata allo script dev­up come primo argomento) rediretta prima sull'interfaccia pan0, in seguito privata di un ip vero e proprio. In questo modo pan0
sostituisce in toto le bnep
Non resta che sbizzarrirsi: grazie allo script dev­up si potr gestire la tabella di routing, il firewall e
qualsiasi cosa possa saltare in mente; sui PANU, ad esempio, si potr i mpostare il NAP come default
gateway.
Considerazioni:
Creare una rete bluetooth non di fficile anche se la banda non a ltissima comunque a nostro parere utile per lo scambio di piccoli file, per leggere la posta e navigare, (alla fine quasi l'80%)
Riferimenti:
http://www.bluez.org/redirect.php?url=http%3A%2F%2Fbluez.sf.net%2Fcontrib%2FHOWTOPAN
Balla & Fe
Scaricato da lordhack.altervista.org