Habilitar WPS en OpenWRT

por | 14 Abril, 2017

La mayoría de los routers hoy en día soportan WPS (Wi-Fi Protected Setup), una serie de mecanismos que permiten conectar fácilmente nuevos dispositivos a una red inalámbrica sin necesidad de escribir contraseñas complejas. Bien sea presionando un interruptor en los dispositivos cercanos (router y equipo a conectar), acercándolo a un punto de contacto NFC, escribiendo un PIN o de otras formas algo más manuales, facilita bastante la conexión inicial.

Pero no todo es maravilloso con WPS, es un sistema muy inseguro que de estar habilitado en muchos casos compromete seriamente la seguridad de una red, y por este mismo motivo en OpenWRT no se incluye esta funcionalidad de forma predeterminada.

Recomiendo habilitarlo solamente en casos donde sea estrictamente necesario y deshabilitarlo cuando no se vaya a usar. En mi caso necesité habilitarlo para conectar una impresora a la red inalámbrica, donde no hay una interfaz donde configurarle la conexión inalámbrica, y debe hacerse por Wi-Fi Direct y una aplicación, NFC o la opción más fácil: presionar el botón de WPS.

Preparando OpenWRT para soportar WPS

De forma predeterminada OpenWRT viene con el paquete wpad-mini para proveer la funcionalidad de autenticación WiFi, y si bien proporciona todo lo necesario para el funcionamiento habitual de una red inalámbrica carece de soporte para algunas funciones necesarias para WPS, por lo que debemos reemplazarlo.
Vamos a conectarnos por SSH al router (o hacerlo por LuCI en la sección System -> Software) y cambiar wpad-mini por wpad, además de instalarle hostapd-utils.

# opkg update
# opkg remove wpad-mini
# opkg install wpad hostapd-utils

Luego vamos a habilitar WPS para la red inalámbrica a la que queremos conectarnos. También se puede hacer desde la gestión de WiFi en LuCI, pero lo vamos a hacer por SSH editando el archivo /etc/config/wireless.

# vi /etc/config/wireless

Y vamos a buscar la configuración del punto de acceso al que queremos habilitarle WPS viendo los valores de option ssid ‘nombredelared, en mi caso corresponde al radio0. Al final de ese apartado hay que agrear una nueva línea:

      option wps_pushbutton '1'
enablewps_openwrt

En mi caso ahora lo mantengo deshabilitado, cambiando ‘1’ por ‘0’.

Luego reiniciamos el router para que se apliquen los cambios:

# reboot

Utilizar WPS desde la consola

Opcionalmente podríamos habilitar el botón WPS que suelen traer incorporados los routers que soportan WPS, de modo que para usarlo bastaría con presionar el botón en ambos dispositivos a conectar, pero en mi caso prefiero no habilitarlo ya que usaré WPS solamente una vez y prefiero tener ese botón disponible para otro uso.
Por lo tanto, voy a ejecutar el interruptor WPS desde la consola, conectado por SSH basta con ejecutar este comando:

# hostapd_cli wps_pbc

Por lo que basta con presionar el botón WPS en el dispositivo a conectar, luego ejecutar este comando, y pasados algunos segundos se completa la conexión.

Para estar seguros que la conexión se completó, podemos ver las nuevas conexiones por WPS:

# hostapd_cli wps_get_status

En caso de que existan conexiones nos va a devolver Last WPS result: Success y la dirección MAC del dispositivo que se conectó.

Luego de usarlo recomiendo volver a editar el archivo /etc/config/wireless y cambiar el valor de wps_pushbutton de 1 a para dejarlo deshabilitado y no comprometer la seguridad de nuestra red.

Deja un comentario

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