Tengo un router ADSL de Jazztel modelo HG536+. Como ya no lo necesito, le instalé un linux descargado de OpenWrt para poder utilizarlo como router normal (con wireless).
De todos modos, como no soy ningún experto, lo que conseguí fue que enrutase las 4 conexiones de puertos RJ45 a través de la wifi mediante NAT.
Los pasos fueron los siguientes:
Cargar el nuevo firmware en el router:
- Descargar el firmware http://downloads.openwrt.org/snapshots/trunk/brcm63xx/openwrt-96348GW-generic-squashfs-cfe.bin (internamente es Broadcom) de la página OpenWrt.
- Insertar un clip en el botón de reset del router, mantenerlo, y encender el router.
- Mantener el clip hasta que el LED de power se apaga.
- Configurar mi interfaz de red a la dirección 192.168.1.170 (o cualquier número entre 2 y 254), máscara 255.255.255.0, gateway 192.168.1.1, dns 192.168.1.1
- Abrir en el navegador la página http://1921.168.1.1
- Subir la imagen del firmware.
Tras esto, el router tarda unos minutos en subir el firmware y se reinicia. Cuando el LED power deja de parpadear, el router está listo para configurar:
- Reconfigurar la interfaz a los del punto 4 anterior (al reiniciarse el router pierdo la configuración)
- Hacer en una consola:
telnet 192.168.1.1
- Al hacer telnet, entraremos como root automáticamente. Ejecutar el comando
passwd root
e indicar la nueva contraseña de root. - Salir mediante
exit
.
Al establecer una contraseña a root, se desactiva la funcionalidad de telnet y se activa el acceso mediante ssh:
- Conectarse de nuevo mediante
ssh root@192.168.1.1
En este punto se puede comprobar mediante ifconfig
e iwconfig
que no hay interfaz wlan0
, y que hay una interfaz virtual bridge br-lan
.
La interfaz wlan0 no aparece por un error en la carga del módulo b43. Para activarla hay que ejecutar:
rmmod b43 insmod b43 ifconfig wlan0 up
Al encender el router quiero que se conecte a mi router con internet por wireless, que tiene encriptación WPA. Crear el archivo de configuración para la conexión WPA-PSK. Yo lo hice en /etc/wpa_supplicant.conf
1 2 3 4 5 6 |
network={ ssid="redalaqueconectarse" scan_ssid=1 key_mgmt=WPA-PSK psk="clave" } |
Ahora sólo queda configurar un script de inicio que se ejecute al final de todo el boot, y que realice lo siguiente:
- Eliminar la interfaz virtual br-lan
- Borrar las iptables y configurarlas para aceptar forwardings
- Activar la interfaz de red lan eth1 (192.168.1.1)
- Activar la interfaz wireless wlan0
- Conectar wlan0 al router de acceso a internet (wpa_supplicant)
- Configurar wlan0 mediante dhcp
- Activar NAT para que todo lo que llegue (lo que nos interesa es que afecte a lo que llegue por eth1) lo mande por NAT a wlan0.
Crear el script y configurarlo para que se ejecute al inicio:
touch /etc/init.d/alfinal chmod 755 /etc/init.d/alfinal cd /etc/rc.d/ ln -s ../init.d/alfinal S99alfinal
Finalmente, Añadir todo el contenido del fichero /etc/init.d/alfinal
:
# Eliminar la interfaz br-lan # Como no sé exáctamente el orden en que hay que ejecutarlo, # porque perdería la conexión ssh al hacer las pruebas, # hago esta chapuzada... alguna de las combinaciones será la buena ;) # También desactivar la interfaz eth1 para levantarla más tarde ifconfig br-lan down ifconfig eth1 down brctl delif br-lan eth1 brctl delbr br-lan ifconfig eth1 down ifconfig br-lan down brctl delbr br-lan ifconfig eth1 down brctl delif br-lan eth1 brctl delbr br-lan # Borrar las iptables y permitir forwarding iptables -F iptables -P FORWARD ACCEPT # Levantar eth1 y que se configure. La IP será 192.168.1.1 ifconfig eth1 up 192.168.1.1 # Activar la wireless y obtener ip rmmod b43 insmod b43 ifconfig wlan0 up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf # Dejamos pasar un rato para que se conecte... a veces incluso ni # con estas :( sleep 15 udhcpc -i wlan0 # Activar NAT echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Lo único malo es que si no encuentra la red wireless y no se conecta, no obtiene dirección IP 15 segundos después y es necesario reiniciar el router :\
Llegar a esto tuvo su trabajo… y al final no me sirvió porque la tarjeta broadcom b43 es una MIERDA y la tarjeta integrada del portátil es mejor que esta, con lo cual no gano nada para lo que yo necesitaba… pero al menos ahora tengo una “tarjeta wireles por RJ45” ;)
Para abrir puertos de entrada (desde la wireless hacia los puertos ethernet) mejor buscar por internet porque todavía no tengo tutorial :P
Excelente tutorial, me ha servido de mucho! Muchas gracias!
Sin embargo, creo que te falta un guión delante de la B en el comando de wpa_supplicant, esto es, debería ser:
wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
Sin el guión no me lo interpreta como opción y el demonio se queda ejecutándose en primer plano…
Me alegro mucho de que te sirviese. Muchas gracias por la corrección!