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 wifi, (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/patch2.4.19bluetooth*), 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 "bluezutils" 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 "napbda" 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 devup 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 devup 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 devup; le procedure lato PANU rimarrranno identiche. Installiamo bridgeutils. 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 devup 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 devup 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 devup 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