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