Aprovecha tu router al máximo con OpenWrt: libertad inalámbrica


www.openwrt.org // #openwrt@Freenode

OpenWrt es una distribución GNU/Linux basada en Debian GNU/Linux que nos permite aprovechar las características técnicas de nuestro router al máximo más allá del uso que podríamos darle con el firmware que el fabricante le instaló.

Si buscamos OpenWrt en la Wikipedia podemos leer:

«OpenWrt es una distribución de GNU/Linux basada en firmware usada para dispositivos empotrados tales como routers personales.
El soporte fue limitado originalmente al modelo Linksys WRT54G, pero desde su rápida expansión se ha incluido soporte para otros fabricantes y dispositivos, incluidos el Netgear, D-Link, ASUS y algunos otros. El router más popular sigue siendo el Linksys WRT54G y el ASUS WL500G. OpenWrt utiliza principalmente una interfaz de línea de comando, pero también dispone de una interfaz WEB en constante mejora. El soporte técnico es provisto como en la mayoría de los proyectos de Software Libre, a través de foros y su canal IRC.

El desarrollo de OpenWrt fue impulsado inicialmente gracias a la licencia GPL , que obligaba a todos aquellos fabricantes que modificaban y mejoraban el código, a liberar éste y contribuir cada vez más al proyecto en general.

Poco a poco el software ha ido creciendo y se encuentran características implementadas que no tienen muchos otros fabricantes de dispositivos comerciales para el sector no profesional, tales como QoS, VPN y otras características que dotan a OpenWrt de un dispositivo realmente potente y versátil, apto para utilizar los hardware donde corre OpenWrt no sólo para utilizarlos como routers, sino como servidores de archivo, nodos P2P, servidores de WEBcams, firewall o puertas de acceso VPN.»

OpenWrt y dd-wrt

Además de OpenWrt existe dd-wrt que es un fork de terceras partes de OpenWrt con el objetivo de ofrecer un producto comercial; de esta forma se pueden adquirir routers con el firmware dd-wrt ya embebido y también soporte pago para mantenimiento e incidencias en los mismos.

La principal diferencia entre OpenWrt y dd-wrt es que este último no tiene una consola para acceso shell, no soporta la instalación de nuevo software y básicamente es una versión comercial de OpenWrt que se acerca mucho más al firmware que pueden traer de fábrica los distintos routers comerciales pero con características propias más potentes.

Algunos de los puntos en que destaca dd-wrt es en su interfaz de usuario ya que es mucho más atractiva que la de OpenWrt con aplicaciones más pulidas y orientadas a usuarios finales y no a administradores de sistemas o hobbystas.

Otra diferencia importante es que generalmente el firmware de dd-wrt está en la misma línea del firmware ‘estable’ de OpenWrt y por lo tanto algo atrasado con respecto a la versión de desarrollo que, en honor a la verdad, anda increiblemente bien y por el momento sólido como piedra, jamás tuve problema alguno.

Aunque a primera vista dd-wrt no parezca tan interesante como OpenWrt es bueno tenerlo presente para aquellos casos en que no exista un firmware OpenWrt para nuestro dispositivo o queramos contar con una interfaz más elegante apta para el usuario promedio.

Ambos proyectos, OpenWrt y dd-wrt cuentan con una gran comunidad cada uno que mantienen ambos proyectos en un desarrollo continuo lo que nos garantiza tener soporte por largo tiempo. Dichas comunidades son abiertas y amistosas aunque antes de hacer una consulta se le pide al usuario que lea la documentación apropiada y revise la wiki y los foros ya que es seguro que su consulta ya haya sido realizada y contestada previamente.

Por supuesto que consultas del tipo «instalé openwrt y no me anda nada, que hago» no son bienvenidas y posiblemente provocará que más de uno, como mínimo, le explique que todo se soluciona con un sudo rm -rf / e ingresando su contraseña >=D

Características de OpenWrt

Las ventajas de usar OpenWrt son múltiples:

  1. es una mini distro completamente funcional, «mini» aquí significa que:

a) cuenta con una cantidad limitada de paquetes disponibles
b) está pensada para ser lo más pequeña posible y que podemos instalarla en espacios reducidos de almacenamiento (tanto como 2mb!) y que además funcione con CPUs MIPS de tan sólo 300mhz.

  1. los módulos Wifi están optimizados por lo que usando OpenWrt aprovecharemos mejor nuestro router ya que tendrá mejor señal: será más potente y clara que con el firmware stock con el que vino de fábrica.
  2. aunque no están disponibles aplicaciones de alto nivel que hacen uso intensivo de procesador como PHP, sí contamos con una variedad interesante de software para instalar dependiendo de las cualidades técnicas de nuestro dispositivo.
  3. . Si contamos con el espacio y la capacidad de cálculo apropiada podremos tener corriendo a la par que el servidor web deseado:

a) un servidor de archivos – NFS y SMB/CIFS
b) un cliente IRC (en mi caso WeeChat) con el cliente para mensajería instantánea BitlBee acoplado. De esta forma y mientras no apaguemos o booteemos el router vamos a estar 100% online. Atención: los logs del IRC, especialmente si estamos conectados a varios canales (en mi caso en este momento son 31) pueden ocupar mucho espacio muy rápidamente. Si vamos a correr un cliente IRC en el router recomiendo conectarle una unidad de almacenamiento externo y guardar los logs allí.
c) crear o formar parte de una red Open Mesh o redes inalámbricas malladas, también conocidas como B.A.T.M.A.N.
d) servidores web como uhttp y nginx
e) infinidad de aplicaciones de seguridad como Kismet, aircrack-ng, arpwatch y macchanger entre otros; las posibilidades son ilimitadas! Por ejemplo: supongamos que por X motivo necesitan acceder a una red Wifi determinada pero por supuesto no conocen su pwd ni las direcciones MAC permitidas para conectarse, teóricamente podrían usar un simple router al que le instalan OpenWrt con las aplicaciones necesarias y lo configuran para sniffear el tráfico wireless, buscar contraseñas, obtener direcciones MAC registradas, conectarse a las redes y enviarles a Uds. un correo electrónico avisándoles que se encuentran dentro de dicha red, con los datos necesarios para que Uds. se conecten desde donde se encuentren. Una vez hecho esto lo único que deben hacer es buscar un lugar en donde poder esconder el aparato conectado a la red eléctrica, lo más cercano posible a las redes en las que están interesados y dejar que haga su magia ;-D
(Tom Cruise es un poroto al lado nuestro y como decía el Indio antes de venderse, «el futuro llegó, hace rato«)
f) servidor de impresión, servidor de horario (NTP), etc.
g) al ser una distro diseñada por geeks y para geeks obviamente vamos a poder acceder vía ssh y de hecho debemos hacerlo así al comienzo para instalar la interfaz gráfica y configurarlo: no es hermoso!?
h) posibilidad de crear una cantidad virtualmente ilimitada (sólo limitada por el propio HW) de redes Wifi =)
i) toda la potencia del mejor firewall del mundo, iptables a nuestro servicio tanto desde la consola como desde la interfaz gráfica.
j) aplicaciones como tmux están al alcance la mano, basta hacer un # opkg update && opkg install tmux para que trabajar en consola dentro de nuestro router sea un placer
k) como habrán notado el gestor de paquetes utiliza una sintaxis similar al gestor de Debian GNU/Linux y es porque opkg está basado en el viejo ipkg el cual a su vez tomó a dpkg/apt como referencia. Ojo, no se hagan ilusiones acerca de este gestor de paquetes, no es ni por asomo lo potente o flexible que sus hermanos mayores pero cumple muy bien su cometido.
l) disponemos de varias interfaces Web para que elijamos dependiendo nuestro gusto y preferencias personales. Por mi parte y luego de probarlas todas me quedé con Luci ya que es la más liviana y me permite acceder a una amplia gama de funciones de OpenWrt. Que sea liviana no es un dato menor ya que mi router hogareño es un humilde TP-Link TL-WR2573ND y el espacio flasheable disponible es de sólo 8mb, por lo tanto cuanto menos espacio utilice en trivialidades como una interfaz web cargada y bonita más espacio voy a tener para cargar aplicaciones.
m) entre otras funciones tiene soporte completo de Jumbo Frames y VLANS!
n) otras características incluyen aquellas que traen la mayoría de routers hogareños/SOHO de fábrica como ARP binding, ruteo estático, hostnames, DHCP binding, control de acceso de horarios, posibilidad de usar múltiples DNS para cada red, etc.
o) al ser una distro GNU/Linux vamos a tener acceso completo a los logs del sistema, logs del kernel, demonios que queremos que se ejecuten al inicio, etc., todo igual que con la distro que están usando.
p) incluye simpáticos -y útiles- hacks para hacer que las luces del router respondan a acciones específicas, de esta forma, podemos configurarlas para que titilen de determinada forma dependiendo cómo estemos usando el dispositivo (red cableada, inalámbrica, como router, switch, etc.), cuando accedemos a dispositivos USB conectados al router como un disco duro externo o una impresora, etc.
q) entre otras aplicaciones podemos instalarle gestor de VPN, Nagios, Munin (un Nagios mejorado y Libre), instalar un MTD (Mail Transport Delivery) y convertirlo en un servidor de correo electrónico, instalar mc (Midnight Commander), un servidor Avahi/Bonjour/Zeroconf, si tenemos conectado un HD externo con nuestra colección de música podemos correr el demonio del mpd en el router lo que nos va a permitir conectarlos a él desde cualquier máquina que se conecte al router independientemente que se encuentren en diferentes redes, etc.
r) hay cientos de paquetes más de todo tipo para que hacer prácticamente lo que quieran con su routercito, ni hablar si tienen un aparato cojudo. Como pasa siempre con GNU/Linux el único límite es la imaginación del usuario

En definitiva, OpenWrt es el sueño del pibe hecho realidad =D

Modo de recuperación / FAILSAFE

Es importante destacar que es muy posible que las primeras veces que hayamos instalado este firmware fabuloso nos quedemos fuera del router por configurar algo erroneamente o por borrar o renombrar algo que no deberíamos haber tocado – pero que nuestra naturaleza curiosa nos empuja a hacerlo xD

De hecho el redactor que suscribe esta nota, osea yo, tuvo la gran idea de borrar las interfaces de red para reconfigurarlas quedándose efectivamente fuera del router y sin poder acceder al mismo ya que aunque el sistema embebido estaba funcionando de maravillas no había ninguna interfaz de red habilitada – yeah, soy un genio, mal! BOLUDO!!!

Los desarrolladores de OpenWrt han previsto este tipo de casos y proveen una interfaz para modo de arranque a prueba de errores –failsafe– para que podamos hacer un acceso de emergencia y resetear el sistema.

Es importante tenerlo en cuenta porque con el firmware de OpenWrt es casi seguro que el botón de reset de sus routers no funcione como esperaban, es decir que restablezca la configuración del mismo a la de fábrica. De hecho, el botón sí se usa en el modo failsafe de OpenWrt pero solamente para enviar una señal al equipo en un momento determinado y que podamos acceder al dispositivo nuevamente a través de telnet o ssh.

También les puede pasar de brickear el router si le instalan una imagen que no es la apropiada para el mismo, en ese caso la recuperación del dispositivo es un tanto más complicada en cuanto que el procedimiento involucra abrirlo para acceder al integrado, soldar un dispositivo electrónico al que vamos a alimentar a través de un cable USB conectado a nuestra máquina para luego conectarnos al router vía consola serial, activar un servidor FTP –TFTP– muy primitivo para copiar el firmware correcto, resetear la nueva imagen, etc., nada demasiado complejo aunque si no lo hacemos con cuidado corremos el riesgo de quemar el router.

Screenshots

A continuación les dejo algunas imágenes de la interfaz de shell BusyBox y web Luci:

Hasta aquí la introducción a OpenWrt, más adelante escribiré una guía sucinta de instalación, más que nada las situaciones típicas con que pueden encontrarse sobretodo para que se ahorran las horas de investigación que invertí yo leyendo toneladas de documentación e intercambiando ideas en el IRC hasta dejar andando mi router como lo tengo hoy.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   msx dijo

    Hey, gracias por agregar la etiqueta y los tags, cuando me dí cuenta que nos puse ya había enviado el artículo! :)

    1.    msx dijo

      Y esto!? Por qué apareció así el texto? Ohhh shit, the fucking code tag! xD
      Perdooooon!

  2.   @Jlcmux dijo

    Tengo una pregunta. Que pasa con los router que dan las empresas ISP ? No son soportados? Lo digo porque si intento instalarlo en el mio. (Tiene Wireless) Depronto me quedo sin servicio y al final quiza no me arreglen el problema porque fui yo el que lo daño 😛

  3.   webb_david dijo

    No lo conocia, soy un novel en linux aunque ya tengo mas de dos años utilizando ubuntu y ahora xubuntu (aprendo lo mas que puedo en mis ratos libres pero por el trabajo no puedo dejar windows), ojala subas el tuto por que tengo varios router’s en la casa que no uso y me gustaria hacer pruebas con ellas

    1.    Mauricio dijo

      Hola
      puede editar/modificar/compilar un openwrt de un router tplinlk u otro para agregarle una conexion vpn o proxy?
      saludos y gracias

      Mauricio

  4.   Lithium dijo

    Buena información, esperando la guía de instalación

  5.   croto dijo

    Hace muchos años instale dd-wrt sin problemas y tuvo un buen desempeño en un Linksys WRT54G, no lo conocia el OpenWrt. Igualmente si alguien quiere probarlo lean atentamente las instrucciones, no sea que se queden con un «»ladrillo».

  6.   Charlie-Brown dijo

    Excelente artículo, ya lo dejo marcando y quedo a la espera de la guía prometida…

    Por cierto, si tienes algo sobre «bridges» de Linksys, al menos yo, estaría muy interesado en conocerlo.

    Muchas gracias por anticipado.

  7.   Ramiro dijo

    Antes que todo, felicidades por el blog. Es impecable, puede uno leer noticias de acerca del mundo GNU/Linux interesantes y tutoriales muy útiles, con un lenguaje accesible a todos.

    En segundo, quería comentarles acerca de un gran proyecto incluyendo a OpenWrt: PirateBox. Básicamente, se utiliza un router capaz de correr OpenWrt (casi todos usan el TP Link MR3020, por su bajo precio), para compartir archivos a través de la red WiFi de forma completamente anónima.

    Estoy esperando que llegue el verano para aprovechar el tiempo libre y ponerme a jugar con esta genial distro, especialmente para recrear este proyecto. Si alguien quiere más información y tutoriales de instalación, el link es http://daviddarts.com/piratebox/

    Saludos!

  8.   truko22 dijo

    Use por años DD-WRT, siempre me abrumo su gran abanico de opciones y configuraciones. Luego conocí a Tomato tienes menos opciones que DD-WRT pero para administrar redes pequeñas es lo mejor que e visto. Configurar todo como un guante de seda y logras una estabilidad increíble aunque tengas usuarios molestosos y feos. Al instalarle cualquier de estos firmwares basado en Gnu/Linux se convierte de simple Router Wifi en un gadgets.

  9.   Iván Barra dijo

    Muy bueno, personalmente lo tengo en un D-Link DIR300 y en Lynksys WRT-54GL, la diferencia de software con el que traen originalmente los routers es abismal, aunque nunca he llegado a ocupar muchas opciones, si se nota mucho la estabilidad de la red wifi.

    Saludos.

    1.    Iván Barra dijo

      Oye, como puedo hacer para que el logo centos me aparezca en el tag?? uso Centos 6 i686 con gnome.

      Saludos.

      1.    @Jlcmux dijo

        En Iceweasel o Firefox sale más fácil. En chrome hay que cambiarle una cosa que se llama «User Agent» O Agente de Usuario.

        Saludos.!

  10.   Sergio dijo

    Buenas quisiera saber si sabes de algún manual para implementar u hotspot y enlazarlo con un servidor radius.

    Saludos

    1.    Juliocdn dijo

      Que tal sergio como te fue con el hotspot, quiza me puedas echar una mano yo intento tener un hotspot local con Nodogsplash en un tplink 1043nd v3, logre instalar el openwrt y el nodogsplash, pero he tenido dificultades en la configuracion del nodogsplash para que me redireccione a la pagina de bienvenida. Espero me puedas ayudar .. saludos..

  11.   Avrah dijo

    Capo! No sos el unico boludo, a mi me toco ingresar a OpenWRT de la manera mas complicada. Via serial soldando cables, resistencias y demas cosas… Lo aprendi por las malas… jajaja! Muy bueno el articulo. Saludos!

  12.   Lorenzo Martin Lobo dijo

    hola msx, se que el blog es viejo, pero me interesan varias cosas de este soft y vi que es compatible con el archer c50 de tp link, pero necesitaria unas consultas, estas