Configurando un gateway bluetooth
Wednesday, 18 July 2018
Inicio | Documentacion | Software | Acerca de

Documentación y Software
Inicio
Documentacion
Software
Acerca de


Creando un punto de acceso Bluetooth


(c) 2004 Paco Brufal, pbrufal@servitux.com
Documento bajo licencia GPL.

Este documento explica cómo crear un punto de acceso bluetooth con un sistema Debian Linux Sid (inestable).

Mediante un punto de acceso bluetooth (también llamado NAP) se puede dar acceso a una red (local o Internet) a una serie de dispositivos bluetooth (por ejemplo, una iPAQ).

Instalación de bluetooth


Lo primero es configurar el kernel y las utilidades de bluetooth tal y como está explicado aqui. Solo es necesario la compilación del kernel y la instalación de las utilidades "bluez".

Configuración de Debian


El fichero /etc/bluetooth/hcid.conf debe ser algo así:

options {
        autoinit yes;
        security auto;
        pairing multi;
        pin_helper /usr/bin/bluez-pin;
}

device {
        name "%h-%d";
        class 0x108;
        iscan enable;
        pscan enable;
        lm accept,master;
        lp rswitch,hold,sniff,park;
        auth enable;
}

En el fichero /etc/bluetooth/pin debemos poner el número secreto de acceso.

Ahora editamos el fichero /etc/default/bluez-utils y lo dejamos tal que así (cambia las lineas necesarias, por si ya lo tienes editado):

PAND_ENABLED=1
PAND_OPTIONS="--listen --role NAP"

Ahora creamos el directorio /etc/bluetooth/pan/ y creamos un fichero dentro que se llamará dev-up. Este fichero es un script de shell y debe ser ejecutable (chmod +x dev-up):

#!/bin/sh
ifconfig bnep0 $IP_BLUETOOTH netmask 255.255.255.0 up
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -o eth0 -j SNAT --to-source $IP_ETH0
  • $IP_BLUETOOTH será la IP que tendrá el dispositivo bluetooth del PC, y estará asociado al dispositivo bnep0
  • $IP_ETH0 es la IP de la tarjeta de red del PC, por la cual se conecta a una red (local o Internet). Si la tarjeta de red es eth1, cambia la linea.
  • el comando iptables sirve para hacer NAT de la red bluetooth a la red local.
Con esta fichero solo se podrá conectar un dispositivo bluetooth. El "problema" es que cada vez que se conecta alguno a nuestro punto de acceso, se crea un nuevo dispositivo "bnepX" (X es 1, 2, 3, etc.). Se puede arreglar el script dev-up para que vaya creando los dispositivos, haciendo NAT y demás, pero lo más sencillo sería crear un bridge entre los dispositivos "bnepX" y "eth0".

Poniendo el tema en marcha


Iniciaremos los demonios bluetooth ejecutando /etc/init.d/bluez-utils restart.

Ahora desde la iPAQ por ejemplo, escaneramos todos los dispositivos bluetooth, y nos saldrá que nuestro PC ofrece un "Network Access Point". Lo añadimos y conectamos. Nos pedirá una clave de acceso, que es el PIN (el número que hay en el fichero /etc/bluetooth/pin). No hace falta decir que la interfaz bluetooth de la iPAQ debe estar configurado con su correspondiente IP, puerta de acceso, DNS, etc...

Si queremos conectar desde un Linux, tendremos que configurar el bluetooth tal y como se ha explicado, y desde el cliente ejecutaremos:

pand --connect <MAC_del_servidor_bluetooth>

Luego configuramos "bnep0" con su IP, su gateway, etc...

En cuanto la IP ya esté conectada, en el PC se creará el interfaz bnep0, y se añadirán la regla de iptables.

Enlaces de interés

  Last modified: Thu, 22 December 2016  Contenidos © ServiTux Servicios Informáticos