[SeWi] FON nos ha regalado tres Linksys WRT54Gl
David Bosque
song en woodwar.com
Jue Ene 26 19:04:56 CET 2006
Hola Jesús,
Menudo email! Me lo he tenido que leer varias veces para llegar a
comprender alguna cosa...como eso de que se deshacen los puentes y se
crean interfaces nuevos... Se nota que has "diseccionado" el aparato a
base de bien :-). Bueno, al tajo ;-).
Con fecha jueves, 26 de enero de 2006, 13:07:29, escribiste:
> El Wed, 25 Jan 2006 15:23:35 +0100
> El firm que trae es un OpenWRT con sus propios cambios. Este firm es
> que es la leche, no sé si tú lo has llegado a probar, pero trae hasta
> su propio sistema de paquetes: ipkg, ala Debian. Voy a hablar de los
> detalles y así podemos planear nuestras historias en base a lo que hay
> y lo que no:
> El router cuando lo sacas de la caja no ves más diferencias que una
> pegatina de FON en amarillo vistoso. Si lo conectas, hay un servidor
> DHCP (dnsmasq) sirviendo direcciones en todas las interfaces excepto a
> vlan1 (dnsmasq -I vlan1) desde 192.168.10.100 hasta 192.168.10.152 en
> 255.255.255.0. En un principio no asigna automáticamente un gateway o
> servidores de nombres.
> También hay un httpd con una web de administración basada en el webif
> de OpenWRT, el cliente DHCP de busybox (udhcpc) escuchando en vlan1 (el
> puerto Ethernet que pone Internet).
> Y telnetd y sshd. siguiendo la misma estrategia que OpenWRT: el router
> en principio no tiene contraseña para root y el servidor SSH (dropbear)
> no te deja hacer login de ninguna de las maneras. Pero puedes entrar
> por telnet y no tienes que hacer login, entras del tirón. Una vez
> dentro, si haces un "passwd" para establecer una contraseña, el
> servicio de telnet queda desactivado para los rectos y el ssh daemon es
> ejecutado y lo será al arranque en el futuro.
> -------------------------------------------------------------------
> jesus en jesus ~ $ telnet 192.168.10.1
> === IMPORTANT ============================
> Use 'passwd' to set your login password
> this will disable telnet and enable SSH
> ------------------------------------------
> BusyBox v1.00 (2005.11.16-12:19+0000) Built-in shell (ash)
> Enter 'help' for a list of built-in commands.
> _______ _______ _______
> | ____|| || _ |
> | ____|| - || | | |
> | | |_______||__| |__|
> |___|SACALE JUGO A TU Wi-Fi
> FON Firmware (Beta 0.5.0) -------------------------
> *
> * Based on OpenWRT - http://openwrt.org
> * Powered by Kynetia - http://www.kynetia.com
> ---------------------------------------------------
> root en fon:/#
> -------------------------------------------------------------------
> De todas formas, este paso también puedes hacerlo a traves del
> administrador web, para los que no conocen tan bien este asunto. Entras
> y aparece un "Registro Inicial FON" donde lo primero que te solicitan
> es registrarte en FON.es a través de un simple formulario. Pero puedes
> presionar en "Registrarme luego" para saltarte este paso y hacerlo
> luego desde el menú de opciones del sitio web. Además que necesita
> acceder a fon.es.
> El menú y la web en sí, excepto por los colores utilizados (más al
> estilo FON), es clavado al webif de OpenWRT. Cuando vas a acceder a
> alguna sección, es solicitada una contraseña para el usuario
> administrador (root).
> La organización de las interfaces de red en este bicho es la misma que
> la que conocemos tradicionalmente y la que establece por defecto
> OpenWRT: eth0 es la interfaz de red Ethernet (el switch de cinco
> puertos) y eth1 es para el dispositivo de red inalámbrico. Gracias a
> 802.1Q VLAN, establecen un switch de cuatro puerto a partir del de
> cinco y le llaman vlan0, y el quinto puerto lo independizan y lo llaman
> vlan1, como ya hemos visto en otras ocasiones. Hacen bridge, br0, entre
> eth1 y vlan0; y a vlan1 lo dejan solito.
Hasta aquí funciona exactamente igual que el dd-wrt o alchemy que yo
conozco. No tengo el placer de haber probado el open-wrt...
> La interfaz vlan0 se
> elimina del bridge cuando el chillispot se pone en funcionamiento,
> una vez que el administrador del router se identifca contra fon.es.
De esto hablaremos luego ;-).
> root en fon:/etc# ifconfig | grep HWaddr
> br0 Link encap:Ethernet HWaddr 00:14:BF:D2:5E:12
> eth0 Link encap:Ethernet HWaddr 00:14:BF:D2:5E:12
> eth1 Link encap:Ethernet HWaddr 00:14:BF:D2:5E:14
> vlan0 Link encap:Ethernet HWaddr 00:14:BF:D2:5E:12
> vlan1 Link encap:Ethernet HWaddr 00:14:BF:D2:5E:12
> root en fon:/etc# brctl show
> bridge name bridge id STP enabled interfaces
> br0 8000.0014bfd25e12 no vlan0
> eth1
> Un detalle, el boot_wait viene desactivado por defecto. Pero en el
> propio administrador web puedes activarlo, que no es más que un "nvram
> set boot_wait=on; nvram commit". Tambíen merece meción el hecho de que
> haya una sección en el administrador web en la que puedes actualizar el
> firmware.
> Bueno, vamos al iptables:
> root en fon:/etc# iptables -t filter -L
> Chain INPUT (policy DROP)
> target prot opt source destination
> ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
> REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
> DROP all -- anywhere anywhere
> ACCEPT tcp -- anywhere anywhere tcp dpt:3990 flags:FIN,SYN,RST,ACK/SYN
> ACCEPT all -- anywhere anywhere
> ACCEPT all -- anywhere anywhere
> Chain FORWARD (policy ACCEPT)
> target prot opt source destination
> DROP all -- anywhere anywhere
> DROP all -- anywhere anywhere
> Chain OUTPUT (policy ACCEPT)
> target prot opt source destination
> root en fon:/etc# iptables -t nat -L
> Chain PREROUTING (policy ACCEPT)
> target prot opt source destination
> Chain POSTROUTING (policy ACCEPT)
> target prot opt source destination
> MASQUERADE all -- anywhere anywhere
> Chain OUTPUT (policy ACCEPT)
> target prot opt source destination
No soy ningún experto en iptables, pero las reglas, menos INPUT, están
todas a ACCEPT por defecto, con lo cual aquello no debería limitar
el enrutado de paquetes en la red. Por comentar un poco más al que
ande un poco más perdido, todas las máquinas que se conecten a un ap
de fon se pueden comunicar entre ellas (eso es algo evidente para
algunos y no tanto para otros). El problema podría venir cuando un
usuario se quiere conectar con otro que está conectado a otro ap
distinto. En ese momento hay que enrutar los paquetes hacia el enlace
con el ap destino...de esto estamos hablando aquí. Y, en resumen, eso
se podría hacer. En cualquier caso, como comenta Jesús, siempre
podemos tocar las reglas...lo cual va a hacer falta (más sobre esto
después).
> Acabo de intentar registrarme en FON.es, tengo nombre de usuario y
> contraseña. Sin embargo no consigo hacer login desde el router. Pero
> vamos, se supone que cuando hago login se pone en marcha el último
> servicio, el ChilliSpot. Os pasteo el /etc/chilli.conf, que es bastante
> clarificador, :):
> ##############################################################################
> #
> # Fon ChilliSpot configuration file
> # Powered by Kynetia (www.kynetia.com)
> #
> ##############################################################################
> radiusserver1 acceso.fon.com
> radiusserver2 acceso.fon.com
> radiussecret fonkynetia
> dhcpif eth1
> uamserver https://acceso.fon.com/cgi-bin/hotspotlogin.cgi
> uamsecret fonkynetia
> uamallowed www.fon.es,www.kynetia.com,acceso.fon.com,www.fon.com
> uamanydns
> Otro detalle importante es el script que lanza el ChilliSpot. Solo
> comienza a funcionar cuando el router ya te ha validado tu usuario
> contra FON.es:
> root en OpenWrt:/etc/init.d# cat S60chilli
> #!/bin/sh
> RUN_D=/var/run
> PID_F=$RUN_D/chilli.pid
> case $1 in
> start)
> /usr/sbin/brctl delif br0 eth1
> /sbin/insmod tun >/dev/null 2>&1
> [ -d $RUN_D ] || mkdir -p $RUN_D
> /usr/sbin/chilli
> ;;
> stop)
> [ -f $PID_F ] && kill $(cat $PID_F) >/dev/null 2>&1
> ;;
> *)
> echo "usage: $0 (start|stop)"
> exit 1
> esac
> exit $?
> Por alguna razón, y ahora no caigo, borra del bridge br0 a eth1,
> incomunicando la wireless y los puertos de vlan0. El chilli cuando se
> ejecuta, añade una interfaz tun para su funcionamiento enterno, algo
> que se puede entender mejor si te paseas por
> http://www.chillispot.org/ y se lee algo sobre el funcionamiento de este sistema:
> tun0 Link encap:UNSPEC HWaddr 00-00-00...
> inet addr:192.168.182.1 P-t-P:192.168.182.1 Mask:255.255.255.0
> UP POINTOPOINT RUNNING MTU:1500 Metric:1
> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:10
> RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Me he pasado por su web y de un vistazo no he visto una explicación a
ese interfaz virtual. Supongo que será ese interfaz lo que usa para
que todo pase a través del propio chilli. No sería más fácil una regla
con iptables que redirigiera todo lo que va al 80 de cualquier máquina
al servidor web local? Supongo que "a su manera" habrá bastante
ventajas...
> David, ahora creo que ya puedes más o menos saber como trabaja este
> firmware. En principio estos bichos nos dan toda la flexibilidad del
> mundo pues entras como root y se pueden hacer los ajustes
> necesarios, que no son tantos. Como volver a levantar el bridge, o cosas así.
> Otra cosita, el ipkg lo dejan tal cual. Se pueden descargar todos
> los paquetes tal y como se haría en un OpenWRT normal... tcpdump,
> nmap, kismet, pppdump, vtun, wpa-supplicant, openvpn, ppp... todo, todo.
Tengo entendido que el ipkg funciona como el apt-get, no? Eso sí, hace
falta tener un ap con bastante memoria...que enseguida te lo comes. En
ese sentido, yo prefiero usar un servidor para alojar los servicios,
que ya bastantes bugs hay en los firmwares para, encima, poner al ap a
hacer más cosas...
> Hasta podríamos plantearnos hacer una revisión del firmware de FON
> para comunidades wireless, igual esta gente nos contratan, :-). Ya
> me contáis vuestra opinión sobre todo esto.
Mi opinión es que se pueden usar estos aps en la red de sewi con un
poco de trabajo. Lo principal sería el tema del enrutado entre la
interfaz virtual y las demás interfaces para conseguir crear una red
interconectada y no un ap aislado.
Sigo en el otro email...;-)
--
Un saludo,
David
Más información sobre la lista de distribución Lista