Filtar por MAC en un DD-WRT y una Fonera+

¿Os dije lo maravilloso que me parecía el DD-WRT como firmware de un router?… bueno, no todo es tan bonito.

Hoy he estado peleando una dura batalla, y al final la he ganado. Ha sido con el maldito filtrado MAC de en un DD-WRT v24-sp2 con mi Fonera+. La cuestión es que por razones varias, tengo que tener dos interfaces Wifi, uno con WPA y otro con WEP, y sinceramente del WEP sólo no me fío, así que he puesto también un filtro por MAC… bueno lo he intentado mediante el interfaz web.

Os cuento, mediante el interfaz Web, no es posible (yo no lo he logrado), ya que cuando rellenas la MAC y pulsas «Aplicar«, esta no que queda fijada, y se queda todo otra vez en blanco. Pero lo bueno del DD-WRT es que se basa en Linux, así que filtremos al viejo estilo con la línea de comandos y un magnifico comando llamado «iwpriv«. En vuestro router con DD-WRT buscais la sección del interfaz web: «Administración>Diagnóstico>Commando Shell«, y ponéis lo siguiente:

iwpriv ath0.1 maccmd 1
iwpriv ath0.1 addmac XX:XX:XX:XX:XX:XX

El primer comando, indica que queremos hacer. Con un «1», creamos una lista de filtrado MAC de equipos que tienen permiso para entrar a en red (o «WhiteList» o «Lista blanca«), asociada al interfaz que marquemos (en mi caso «ath0.1», uno virtual). Si pusiera un «2» sería una lista para equipos que no tienen permiso (o «BlackList» o «Lista negra«), y un «3» borra la lista asociada al interfaz, ya sea blanca o negra.
El segundo comando, es añadir una MAC a la lista del interfaz «ath0.1», el cual posee una MAC como se indica. El método más sencillo para tener las MAC, es quitar las listas de acceso, conectar los cacharros, ver el interfaz su MAC, y luego usarla en los comandos que os he indicado.

Hay otros comando muy interesantes, que usan el «iwpriv», como estos:

iwpriv ath0.1 delmac XX:XX:XX:XX:XX:XX
iwpriv ath0.1 kickmac XX:XX:XX:XX:XX:XX

La primera borra una MAC de la lista que hemos creado (blanca o negra), y el siguiente corta una conexión de esa MAC con nuestro interfaz, en otras palabras, le echa de tu Wifi.

De todas formas, os dejo de donde he sacado toda esta información.

Please follow and like us:

13 pensamientos en “Filtar por MAC en un DD-WRT y una Fonera+

  1. Pingback: Filtar por MAC en un DD-WRT y una Fonera+ | Ni'palante Ni'patras

  2. Pingback: Bitacoras.com

  3. Hola Taber,

    Me ha parecido interesante, yo tb tengo una fonera y me gustaría desde mi router aplicar filtros mac, pero tengo windows, es posible ?

    Gracias de antemano

  4. Muy buen post, pero me surge una pregunta.
    ¿Como puedo filtrar con iwpriv a todos los clientes que se conecten al punto de acceso?
    Solo quiero permitir acceso a determinadas MAC
    Gracias

    • Solo tienes que hacer estos comandos por cada interfaz que tenga tu punto de acceso:

      iwpriv ath0.1 maccmd 1
      iwpriv ath0.1 addmac XX:XX:XX:XX:XX:XX

      Y por cada equipo que quieres que entre a tu red, usar otro «addmac». Ten en cuenta que esto no se guarda entre reinicios, por lo que tendrás que meterlo en algún script de inicio.

      Un saludo.

  5. Gracias Taber
    Perdón por mi ignorancia, pero ¿a qué te refieres con ath0.1?
    Conectamos las antenas directamente a los puertos vlan y creamos un único SSID.
    Gracias por tu ayuda

    • El interfaz ath0 (en el caso del firmware DD-WRT) es el interfaz Wireless del aparato.

      Este firmware, permite crear interfaces virtuales, que hacen que parezca que tenemos dos puntos de acceso, pero con un solo aparato (bajando el rendimiento, claro), y las nombra así: ath0.1, ath0.2, etc…

      Si usais directamente el interfaz de la fonera los comando son:

      iwpriv ath0 maccmd 1
      iwpriv ath0 addmac XX:XX:XX:XX:XX:XX

      Aunque recuerda que esto se basaba en un firmware de hace unos meses, y que puede que lo hayan arreglado, por lo que no se si se puede usar ahora el interfaz web sin problemas.

      El nombre del interfaz depende de la versión de linux que se use… Si no usáis un linux de los de DD-WRT (me imagino que si), puede que el interfaz se llame wlan, o algo así. El nombre cambia según el linux que se use.

      No entiendo a que te refieres con conectar directamente la antena a los puertos vlan… ¿Has creado una VLAN y asignas la antena wifi como interfaz predeterminado?.

      Un saludo.

  6. Gracias Taber
    Usamos directamente el interfaz wireless DD-WRT, en su versión v24 sp2.
    Nada que ver con la Fonera.
    Con respecto a las antenas, utilizamos dos opciones. Desconectar las de serie y mediante conectores, colocar otras de alta ganancia, o utilizar los puertos vlan como expansores de la señal mediante antenas.
    Gracias por tu ayuda

    • Ah, vale. Ya lo he entendido.

      Si usáis DD-WRT, os aconsejo que instaléis uno completo con el interfaz web, que es bastante cómodo. Aunque yo soy un defensor de la línea de comandos 🙂

  7. ¿Qué quieres decir con «instalar uno completo con el interfaz web»?
    Es lo que tenemos instalado actualmente y tenemos algo hecho con iptables, pero con lo de autorización de MAC, estamos más perdidos.

    • Me explico 🙂

      Existe una versión del DD-WRT (creo que la llaman «lite»), que es exclusivamente un linux con un shell. Solo se configura vía SSH, y no mediante un interfaz web, que es la versión «completa».

      La autorización no tiene más misterio que lo que te he comentado. Sólo tenéis que haceros un pequeño shell que haga lo que queráis. Otra historia es incluir/excluir MACs según necesidades (es decir, no tener un script estático, si no ir cambiando las MAC mientras trabajamos), que ya tiene un poco más de historia, pero poco más.

      Os recomiendo esta web, donde explican esto y algo más, pero como puedes ver no tiene mucho más que explicar:
      http://www.wireless-net.org/O.Reilly-Wireless.Hacks.Secon/0596101449/wirelesshks2-CHP-5-SECT-5.html

  8. Taber
    Veo que dominas bien el tema, si te interesa entrar o colaborar en el proyecto que tengo en marcha, estaríamos encantados.
    Ya me cuentas y de nuevo gracias por tu ayuda.

Deja un comentario

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