viernes, 17 de diciembre de 2010

Conectarnos a wifi ad-hoc desde Debian Squeeze

---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Hace poco vino a verme un amigo que suele viajar bastante comentandome el problema que tenia para  conseguir tener acceso a internet en muchos de los lugares en los que se aloja. Hay sitios donde el wifi va muy lento, o no llega bien la señal, también hay sitios donde simplemente no hay. Aprobechando la antena wifi y las conexiones 3G de su Nokia 5800Xm, instalando un programa crea un punto de acceso wifi ad-hoc con posibilidad de cifrar las conexiones. Asi aparentemente habia solucionado su problema.
Tiene un portatil con Debian Squeeze vestido con Kde y usa Wicd para gestionar las conexiones de red. Aunque maneja perfectamente las conexiones wifi con cualquier tipo de cifrado wep, wpa y wpa2 , le es imposible conectarse al punto de acceso de su Nokia 5800Xm. El problema parece ser que en Debian las interfaces de red por defecto se activan en modo "managed" y Wicd no es capaz de cambiarla corectamente a modo "ad-hoc" para poder conectarse a redes ad-hoc. Así que le voy a desactivar temporalmente Wicd y usar "wireless-tools" para configurar la tarjeta wireless y que se conecte a la red ad-hoc desde su Debian Squeeze.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------

INSTALAMOS SOFTWARE NECESARIO

A mi no me ha hecho falta instalar porque en la instalación de Wicd se instaló como dependencia, pero si no tienes instalado "wireless-tools" lo instalas en una consola de administrador :
            # apt-get install wireless-tools

CONFIGURAMOS LA CONEXION DE NUESTRA INTERFAZ WIRELESS

1. Si no usas Wicd o simplemente no quieres detenerlo saltate este paso. Como mi amigo usa "wicd" detengo el demonio :
            # /etc/init.d/wicd stop

2. En este portatil la interfaz wireless es "wlan0", si la tenemos activada la desactivamos :
            # ifconfig wlan0 down
          Si no sabes cual es tu interfaz wireles, consulta con :
                # iwconfig


Si "iwconfig" no te dice nada, instala el modulo y/o el firmware para tu tarjeta wireless antes de continuar. Si usa un chip Realtek RTL8191SEvA echalé un vistazo a esto, si no busca en San Google.

3. Configuramos "wlan0" para que se conecte en modo "ad-hoc", al punto de acceso llamado "5800Xm" y con clave "miclave" :
            # iwconfig wlan0 mode ad-hoc essid 5800Xm key s:miclave

4. Comprobamos si "wlan0 " esta configurado :
            # iwconfig wlan0


5. Activamos la interfaz "wlan0" :
            # ifconfig wlan0 up

6. Le solicitamos una dirección ip al servidor dhcp del punto de acceso "5800Xm" :
            # dhclient wlan0

7. Comprobamos que tenemos una diección ip asignada :
            # ifconfig wlan0
                   Tenemos que ver una linea parecida a :
                        inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0


8. Comprobamos que hacemos ping a Google
            #  ping -c 1 www.google.es
            PING www.l.google.com (74.125.230.83) 56(84) bytes of data.
            64 bytes from 74.125.230.83: icmp_req=1 ttl=54 time=33.1 ms
            ................
            1 packets transmitted, 1 received, 0% packet loss, time 0ms
            ................
        
Ya tenemos conexión a internet.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Cada vez que reiniciamos Debian hay que volver a configurarlo. Para evitar que mi amigo tenga que ejecutar todas las ordenes cada vez que reinicia vamos a crear un pequeño script en /usr/bin llamado "conectarme_adhoc" y ejecutandolo conectarse al punto de acceso del telefono movil.

CREAR SCRIPT PARA CONECTARSE

1. El script se puede crear ejecutando como administrador(para poder guardarlo) cualquier editor de texto, yo uso nano. En una consola de administrador :
            # nano /usr/bin/conectarme_adhoc

Como me quiero conectar a traves de la interfaz "wlan0", al essid "5800Xm", con contraseña "miclave", he copiado lo siguiente. Sustituye "wlan0" por el alias de tu tarjeta wireless, "5800Xm" por el essid del punto de acceso ad-hoc al que quieras conectarte, y "miclave" por la de tu punto de acceso. Si no queremos detener o simplemente no usamos Wicd omitimos "/etc/init.d/wicd stop". Yo he añadido :

                #!/bin/sh
                /etc/init.d/wicd stop
                ifconfig wlan0 down
                iwconfig wlan0 mode ad-hoc essid 5800Xm key s:miclave
                ifconfig wlan0 up
                dhclient wlan0
                exit

"Control+x" para salir, nos pregunta si queremos guardar los cambios "s", y al Enter para confirmar el nombre del archivo.

2. Le damos permisos de ejecución :
            # chmod +x /usr/bin/conectarme_adhoc

EJECUTAR SCRIPT

Ahora cada vez que quiere conectarse despues de arrancar el punto de acceso ad-hoc solo tiene que ejecutar en una consola de administrador :
            # conectarme_adhoc

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

También le he creado un script para desconectarse, por si quiere cambiar la interfaz wireless de nuevo a modo "managed" y darle el control de las interfaces de red de nuevo a Wicd.

CREAR SCRIPT PARA DESCONECTARSE

1. En una consola de administrador :
            # nano /usr/bin/desconectarme_adhoc

Si no hemos detenido Wicd omitimos "/etc/init.d/wicd start". Sustituye "wlan0" por el alias de tu tarjeta wireless. Yo he añadido :

                #!/bin/sh
                ifconfig  wlan0 down
                iwconfig wlan0 essid any mode managed
                ifconfig  wlan0 up
                /etc/init.d/wicd start
                exit

"Control+x" para salir, nos pregunta si queremos guardar los cambios "s", y al Enter para confirmar el nombre del archivo.

2. Le damos permisos de ejecución :
            # chmod +x /usr/bin/desconectarme_adhoc

EJECUTAR SCRIPT

Ahora cada vez que quiere desconectarse del punto de acceso en el telefono movil y devolver el control de las interfaces de red a Wicd , solo tiene que ejecutar en una consola de administrador :
            # desconectarme_adhoc

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

2 comentarios:

Yahia dijo...

hola
bien gracias para esto, pero funciona al reverse : quiero hacer una conexion de mi debian squeeze hasta un itouch, para que tiene accesso al Net.

buen dia

Imanol LG dijo...

En un principio, si tienes una tarjeta ethernet conectada a internet y otra wireless cuyo driver en Debian te permita ponerla en modo ap o access point, si podrías conectarte desde tu itouch.
En el siguiente enlace puedes encontrar un ejemplo en ingles de como crear un access point con una targeta wireless con chip Atheros.
http://bitrunner.blogspot.com/2006/10/deploying-cheap-wireless-access-point.html
Espero que te sirva...