Anterior Siguiente Inicio

Trucos para los AP'S y tarjetas:

Realizar un enlace WDS entre 2 LinuxAP
Ajustes en el envío de "beacons"
Actualizar firmware de las tarjetas con prism2
Poner a 200mw una Senao europea
Configurar una SMC2335W con chipset atheros 802.11a/b
Ejecutar el servidor web del Router ADSL Conceptronic C54APRA
Unir los interfaces WAN y LAN, y separarlos de WLAN en WRT54G
Configurar OpenVPN en el WRT54G con DD-WRT
Cliente en una red con cifrado WPA



Realizar un enlace WDS entre 2 LinuxAP:

1.-Todos deben estar en el mismo canal.
2.-Todos deben tener el mismo ESSID
3.-Si se utiliza WEP (encriptación) todos deben tener la misma.
4.-Todos deben estar configurados de la misma forma (AP/Bridge).
5.-Todos deben estar en el mismo rango de IP (no necesariamente)

Vamos pues a configurar primeramente nuestro AP1. Lo primero será, logicamente, ponerlo en modo "Master", es decir, "runlevel 3". Asi que editamos:

# vi runlevel

y cambiamos de runlevel.

Ahora vamos con el "netcfg". Aqui, si recordais, no hace falta definir el interface ethernet (eth0) puesto que los datos que definamos en "p_xxx" seran los que asumirá como valor de bridge o br0 tanto para wlan0 como para eth0. De hecho podriamos hacerlo luego, tal y como veremos, desde el "rc.tweak" y dejar en "blanco" ambos valores y definirlos desde alli. Pero vamos a hacerlo simple para evitar liar la cosa. Asi pues en "netcfg" tendriamos algo asi:

p_dhcp=disabled
p_address=10.0.1.2
p_netmask=255.255.255.0
p_broadcast=10.0.1.255

definimos ahora los datos del puerto "radio" o wlan0 teniendo en cuenta el canal y el ESSID que vayamos a usar en nuestra red y dejando el valor NWDS a "0". En nuestro caso:

SSID=PinguiAP
CHANNEL=11
wep=
NWDS=0

En este caso en "udhcp.conf" no vamos a tocar nada, es decir, solo asegurarnos que lo tenemos en "disable".

# udhcpd.conf disable
start 172.26.1.2
end 172.26.1.27
interface wlan0
lease_file /etc/rw/udhcpd.leases
option dns 10.34.121.1
option subnet 255.255.255.0
option router 10.0.1.3
option domain olotwireless.net
option lease 86400
#

y vamos ya con el "quid" de la cuestión.Vamos a configurar desde el "rc.tweak" con quien queremos que se "entienda" nuestro LinuxAP.

Editamos:

# vi rc.tweak

y tecleamos:

#!/bin/ash
iwpriv wlan0 wds_add 00:90:d1:01:38:49
ifconfig wlan0wds0 0.0.0.0
brctl addif br0 wlan0wds0
#

es decir, asociamos nuestro AP a la MAC del corresponsal, es decir, la MAC que entramos es la del AP con quien vamos a intercambiar información. Si, como deciamos antes, quisieramos definir la IP del "bridge" br0 desde aqui en lugar de hacerlo desde el "netcfg", añadiriamos una linea con:

ifconfig br0 10.0.1.2 up

Una vez hecho esto, salimos:

:wq
# save_config

# reboot

Ahora solo nos queda hacer lo propio con el otro AP, es decir, con el corresponsal al que llamamos AP2, introduciendole la MAC de AP1. Recordad que el ESSID debe ser el mismo y la IP del mismo rango, de otra forma no funcionará. Lo reiniciamos tambien y, pasados unos segundos vamos a comprobar si funciona. Tecleamos:

# brctl showmacs br0

y la respuesta:
 
port no mac addr                is local?       ageing timer
 2     00:01:f4:ed:86:38       no                 0.54
 1    00:30:bd:62:86:72       no                12.11
 2    00:90:d1:01:39:04       no                 3.48
 3    00:90:d1:01:63:7d       yes                0.00
 3    00:e0:4c:39:21:b8       no                 3.47
#

y si ahora comprobamos desde el otro lado:
# brctl showmacs br0
 
port no mac addr                is local?       ageing timer
 3     00:01:f4:ed:86:38       no                3.29
 2    00:30:bd:62:86:72       no               22.91
 2    00:90:d1:01:63:7d      no                10.36
 3    00:90:d1:01:39:04      yes               0.00
 3   00:e0:4c:39:21:b8       no                10.70
#

Efectivamente nuestro "invento" funciona y ya, a partir de aqui, solo se trata de configurar los enrutamientos de IP, caso de que los necesitemos para "salir" al exterior etc...

Volver

Ajustes en el envío de "beacons"

iwpriv wlan0 getbeacon_int <--- te da el intervalo actual. Por defecto 100ms = 10 beacons/segundo
iwpriv wlan0 beacon_int valor <--- ajustar el nuevo valor. Se especifica en milisegundos. valor=60.000 para 1 beacon por minuto

Si lo que queremos es ocultar el broadcast de essid, debemos tener actualizado el firmware de nuestra tarjeta, pues no funcionará con los primeros.

iwpriv wlan0 enh_sec valor

Podemos pasarle varios valores:
0 - Deshabilitado
1 - Para ocultar el SSID en los beacon frames
2 - Ignorar a los clientes configurados como essid "ANY"
3 - "1 y 2" a la vez

Volver

Actualizar firmware de las tarjetas con prism2

Necesitaremos el driver hostap y una ranura pcmcia libre para introducir la tarjeta.
El driver hostap debe estar compilado con soporte para actualizar firmwares. Para ello entramos en el directorio $PATH_HOSTAP/driver/modules y editamos el fichero hostap_config.h

Tenemos que buscar las siguientes cadenas y descomentarlas:

/* #define PRISM2_DOWNLOAD_SUPPORT */

/* #define PRISM2_NON_VOLATILE_DOWNLOAD */

Salimos y compilamos el driver-

Debemos averiguar el NICID de nuestra tarjeta para saber qué firmware debemos usar. Para ello ejecutamos:

#hostap_diag wlan0
Host AP driver diagnostics information for 'wlan0'

NICID: id=0x800c v1.0.0 (PRISM II (2.5) PCMCIA (SST parallel flash))
PRIID: id=0x0015 v1.0.7
STAID: id=0x001f v1.7.4 (station firmware)

Si no disponemos del comando hostap_diag, lo hallaremos en el paquete hostap-utils
El NICID:id representa a nuestra tarjeta de cara al firmware que debemos usar. En este caso es 0x800c. En http://linux.junsun.net/intersil-prism/ hay una breve lista del tipo de firmware que necesitamos según el NICID de nuestra tarjeta:

pk010004.hex -> Primary firmware v1.0.4 for NICID 800C, 8013, 8017, 801B.
sf010409.hex -> Station firmware v1.4.9 for NICID 800B, 800C, 800D, 8012, 8013, 8014, 8016, 8017, 8018, 801A, 801B, 801C.
s1010409.hex -> Station firmware v1.4.9 for NICID 8003, 8008.

Ahora es cuestión de encontrar el firmware más actualizado para nuestra tarjeta. Aquí tenemos unos cuantos firmwares.
Una vez lo tengamos descargado debemos programarlo de la siguiente manera:

prism2_srec -v -f wlan0 s1010409.hex

Tras esto tendremos nuestro firmware actualizado.

Volver

Poner a 200mw una Senao europea

La información de la tarjeta se encuentra en la PDA, que es una parte del firmware de la tarjeta. Aquí están características tales como la región, potencia, canales permitidos, MAC, etc.
Para flashear la tarjeta necesitamos el Winupdate (también se puede hacer con prism2_srec), y los archivos de firmware, el PDA debidamente modificado para emitir a 200 mW pero que a su vez funciona en los canales europeos, y el último firmware station del chip Prism (v1.8).
Una vez arrancado el Winupdate y nos haya encontrado la tarjeta Prism solo tendremos que arrastrar los dos ficheros sobre el recuadro inferior y pulsar sobre Update.
El proceso de actualizacion cambia la MAC (¿y el número de serie?) de la tarjeta, con lo que antes de actualizar la tarjeta debes apuntar la MAC original e introducirla en el Winupdate antes de flashear.

Configurar una SMC2335W con chipset atheros 802.11a/b


Esta tarjeta está perfectamente soportada en linux, y aquí describimos el modo de configurarla:

Bajaremos el código fuente del CVS, o bien desde un repositorio Debian

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi co madwifi

deb ftp://debian.marlow.dk/ sid madwifi

Si optamos por bajarlo con apt-get, instalaremos los paquetes madwifi-tools y madwifi-source, y compilaremos el driver que hay en /usr/src/madwifi.tar.gz

Si optamos por CVS, con un make en el directorio raíz debería ser suficiente, pero en caso de tener problemas podemos ojear este FAQ
Tras compilar el driver, cargaremos el módulo ath_pci. En este momento deberíamos tener un nuevo interface ath0 que se comporta como cualquier otra tarjeta inalámbrica. Para usarla como AP por ejemplo:

iwconfig ath0 mode master essid WIRELESS

Dado que esta tarjeta es dual, usaremos estos comandos para seleccionar la frecuencia en la que queremos operar.

iwpriv ath0 mode 0 --> modo automático
iwpriv ath0 mode 1 --> modo 802.11a
iwpriv ath0 mode 2 --> modo 802.11b
iwpriv ath0 mode 3 --> modo 802.11g

Para que funcione la tarjeta en kismet, añadiremos un nuevo source:

source=madwifi_ab,ath0,generic

Ejecutar el servidor web del Router ADSL Conceptronic C54APRA

Cuando por algún motivo falla el servidor web de este punto de acceso, lo podemos volver a ejecutar con el siguiente comando:

thttpd -d /usr/www -c /cgi-bin/*

Unir los interfaces WAN y LAN, y separarlos de WLAN en WRT54G

Deseamos separar las redes cableada de la inalámbrica, y además queremos que la red de cable se comporte como WAN, a la hora de configurarla via interfaz web del WRT (Tenemos instalado DD-WRT).
En primer lugar debemos separar la red inalámbrica del resto. Para ello vamos a la sección VLAN del interfaz web, y no asignamos ningún puente de red a los 4 puertos del switch. De este modo la ip configurada para LAN pasará a ser exclusivamente de la red inalámbrica, y tendremos el interfaz de red "vlan1" sin ip.
Ahora debemos crear un nuevo bridge que una los interfaces vlan1 (WAN) y vlan0 (LAN de cable). Además debemos decirle a DD-WRT que el interfaz WAN deje de ser "vlan1" y pase a ser el interfaz del bridge; "br1"
Todo esto lo realizamos desde la consola del WRT con las siguientes líneas:

~ # nvram set wan_iface=br1
~ # nvram set wan_ifaces=br1
~ # nvram set rc_firewall="brctl addbr br1;brctl addif br1 vlan0;brctl addif br1 vlan1;ifconfig vlan0 up;ifconfig vlan1 up"
~ # nvram commit

Si en algún momento deseamos deshacer la configuración, debemos establecer un rc_firewall vacío y asignar vlan1 al wan_iface

~ # nvram set wan_iface=vlan1
~ # nvram set wan_ifaces=vlan1
~ # nvram set rc_firewall=""
~ # nvram commit

Configurar OpenVPN en el WRT54G con DD-WRT

Dado que vía web es más complicado configurar una VPN, estos son los pasos para hacerlo vía comandos.
El objetivo es tener una vpn que comparta red con el interface WLAN, pero que no pueda acceder a LAN
De forma más gráfica:
WLAN y VPN: 10.34.93.0/28
LAN: 192.168.0.0/24
Queremos que desde WLAN se pueda acceder a vigowireless, para ello conectamos con otros nodos vía VPN, pero no queremos que accedan a nuestra LAN.

Para que la WLAN esté activada, en el punto de acceso tenemos que tener WLAN en la misma VLAN (mismo bridge) que LAN. De este modo DD-WRT nos añade eth1 (WLAN) al bridge 0, junto con el interface LAN (vlan0).
Por lo tanto tenemos que quitar a eth1 de br0 y ponerlo en br1 junto con tap0. Por otro lado configuraremos la vpn y la iniciaremos.

Para ello creamos un fichero de configuración que podremos en /tmp/openvpn y un fichero que se ejecutará tras iniciarse openvpn. Después lanzamos el demonio. Todo ello desde rc_startup.
(Es mejor insertarlo vía web, en la sección Administración->Diagnósticos, para que no nos de problemas con los retornos de carro)

Nota: No creamos el puente br0 ya que está creado por defecto.

#----CUT HERE----
mkdir /tmp/openvpn;echo -e "remote 192.168.0.101\nport 1194\nproto udp\ndev tap\nkeepalive 10 120\ncomp-lzo\npersist-key\npersist-tun\nmute 20" > /tmp/openvpn/openvpn.conf;echo -e "brctl addbr br1;brctl addif br1 tap0;brctl delif br0 eth1; brctl addif br1 eth1;ifconfig tap0 up;ifconfig br1 10.34.93.1" >/tmp/openvpn/route-up.sh;chmod 777 /tmp/openvpn/route-up.sh;openvpn --config /tmp/openvpn/openvpn.conf --route-up /tmp/openvpn/route-up.sh --daemon
#----CUT HERE----

En principio el servidor DHCP estará en el servidor, y se establecerá a él mismo como puerta de enlace, con lo que podemos controlar desde ahí que nadie acceda a la LAN desde la WLAN o la VPN, pero si alguien de la WLAN añade una ruta a mano para alcanzar LAN desde el punto de acceso, podría acceder sin problemas (ya que el AP tiene a br0 en LAN, y puede rutear de uno a otro). Para solucionarlo, aparte de filtrar el tráfico en el servidor, también lo haremos en el punto de acceso, desde rc_firewall con el siguiente comando:

iptables -A FORWARD -i br1 -o br0 -j DROP

Cliente en una red con cifrado WPA
Me remito a la guía de configuración para WPA de esdebian.org dada su claridad. Por si fallase la versión original, aquí hay una copia.
Anterior Siguiente Inicio

Valid HTML 4.01!