Saltar al contenido principal

Integración de firmware personalizado OpenWrt con Purple WiFi

Esta guía proporciona el manual de integración completo para desplegar firmware personalizado OpenWrt con Purple WiFi. Cubre la configuración del Captive Portal CoovaChilli, la gestión del walled garden mediante iptables, la seguridad de la red WiFi para empleados mediante 802.1X con hostapd y la segmentación PPSK multiinquilino con asignación dinámica de VLAN, ofreciendo a los equipos de TI los pasos de configuración exactos necesarios para crear una red basada en la identidad en cualquier hardware compatible con OpenWrt.

📖 9 min de lectura📝 2,146 palabras🔧 2 ejemplos prácticos4 preguntas de práctica📚 10 definiciones clave

Escuchar esta guía

Ver transcripción del podcast
[0:00 - 1:00] Introducción y contexto Bienvenido a la sesión informativa técnica de Purple. Soy su anfitrión y, en los próximos diez minutos, analizaremos en detalle la integración del firmware personalizado OpenWrt con Purple WiFi. Si es un responsable de TI, un arquitecto de redes o un CTO que despliega firmware personalizado en entornos de hostelería, comercio minorista o sector público, esta sesión es para usted. Dejaremos de lado la teoría académica y le daremos el manual exacto para configurar CoovaChilli, proteger las redes del personal con 802.1X y segmentar entornos multiinquilino mediante claves precompartidas privadas (PPSK). ¿Por qué es importante esto? Porque desplegar un firmware personalizado como OpenWrt le ofrece una flexibilidad increíble e independencia del hardware. Pero sin una capa de control de acceso estructurada y basada en la identidad, esa flexibilidad se convierte en un riesgo de seguridad. Necesita capturar datos de origen de forma segura, garantizar el cumplimiento de la GDPR y segmentar su tráfico de manera fiable. Entremos de lleno en el análisis técnico. [1:00 - 6:00] Análisis técnico detallado El núcleo de la integración de OpenWrt se basa en CoovaChilli. CoovaChilli es el controlador de acceso de código abierto que intercepta el tráfico de clientes no autenticados y lo redirige al Captive Portal de Purple. Cuando un invitado se conecta a su SSID abierto, CoovaChilli actúa como guardián. Asigna una dirección IP a través de su propio servidor DHCP interno, que se ejecuta en la interfaz tun0, y bloquea todo el tráfico excepto el que usted permita explícitamente en el walled garden. Cuando el invitado intenta navegar, CoovaChilli intercepta la solicitud HTTP y emite una redirección a la página de inicio de Purple. Aquí es donde la configuración del walled garden es fundamental. En su archivo chilli.conf, debe definir el parámetro HS_UAMDOMAINS. Se trata de una lista de dominios separados por comas a los que los invitados pueden acceder antes de autenticarse. Debe incluir splash.purple.ai, api.purple.ai y los distintos dominios de CDN que utilizamos para ofrecer los recursos del portal. Si olvida un dominio, el portal no se cargará o los botones de inicio de sesión social no funcionarán. Así de sencillo. Una vez que el invitado se autentica en el portal de Purple, el servidor RADIUS en la nube de Purple envía un mensaje Access-Accept de vuelta a CoovaChilli en el puerto UDP 1812. A continuación, CoovaChilli autoriza la dirección MAC, abre las reglas del cortafuegos para esa sesión y comienza a enviar datos de contabilidad en el puerto UDP 1813. La contabilidad no es opcional. Es la forma en que Purple realiza el seguimiento de la duración de la sesión y el uso de datos para su panel de analíticas. Ahora, hablemos del WiFi para el personal. No se utiliza CoovaChilli para el personal. Para las redes del personal, se utiliza hostapd con WPA2-Enterprise o WPA3-Enterprise. Se trata de la autenticación estándar 802.1X. El punto de acceso actúa como autenticador, reenviando los mensajes EAP a su servidor RADIUS. Para los dispositivos corporativos, debería desplegar EAP-TLS, que utiliza certificados digitales en lugar de contraseñas. Esto elimina por completo el robo de credenciales. Configure hostapd.conf para que apunte a su servidor RADIUS, y este dictará la asignación de VLAN para ese usuario específico. Esto nos lleva a una de las funciones más potentes de los despliegues modernos de OpenWrt: las claves precompartidas privadas, o PPSK. En un entorno multiinquilino (por ejemplo, una propiedad de alquiler residencial o un espacio de coworking), no conviene emitir cincuenta SSID diferentes. Eso arruinaría la eficiencia del tiempo de transmisión. En su lugar, se emite un único SSID. Cuando un dispositivo se conecta, hostapd envía la dirección MAC al servidor RADIUS. El servidor RADIUS responde con una contraseña específica y un ID de VLAN específico para ese dispositivo, utilizando el atributo Tunnel-Password. Esto significa que el empleado de la tienda A se asigna a la VLAN 10, mientras que el asistente al evento en el vestíbulo principal se asigna a la VLAN 30, conectándose todos exactamente al mismo SSID. Es elegante, escalable y aplica el acceso con privilegios mínimos en el extremo de la red. [6:00 - 8:00] Recomendaciones de implementación y errores comunes Hablemos de la implementación. Al desplegar OpenWrt con Purple, el primer paso es siempre recuperar sus credenciales RADIUS del portal de Purple. Necesita las direcciones IP de RADIUS principal y secundaria, el secreto compartido y la URL del portal. En su configuración de OpenWrt, definirá la interfaz de su red de invitados (normalmente eth1 o wlan0) y vinculará CoovaChilli a ella. Asegúrese de que el parámetro HS_RADSECRET en su chilli.conf coincida exactamente con el del portal de Purple. Un solo carácter que no coincida provocará fallos de autenticación silenciosos. El mayor error que vemos es la resolución de DNS previa a la autenticación. CoovaChilli intercepta las solicitudes de DNS. Si su cortafuegos ascendente impide que el router OpenWrt resuelva DNS externos, la redirección del Captive Portal fallará. Asegúrese de que su router OpenWrt tenga acceso DNS sin restricciones a resolutores públicos como Google o OpenDNS. Otro problema común son los mecanismos de detección de Captive Portal integrados en iOS y Android. Los dispositivos Apple se conectan a captive.apple.com para comprobar la conectividad a Internet. Si incluye captive.apple.com en la lista blanca de su walled garden, el dispositivo pensará que tiene acceso a Internet y no mostrará el asistente de red cautiva. Si desea que aparezca la ventana emergente automática, mantenga los dominios de Apple fuera del walled garden. [8:00 - 9:00] Preguntas y respuestas rápidas Hagamos una ronda rápida de preguntas y respuestas. Pregunta uno: ¿Puedo ejecutar CoovaChilli y hostapd 802.1X en el mismo punto de acceso OpenWrt? Sí. Vincula CoovaChilli a la interfaz de su SSID de invitados y configura hostapd con 802.1X en la interfaz de su SSID de personal. Funcionan de forma independiente. Pregunta dos: ¿Admite Purple la asignación dinámica de VLAN con OpenWrt? Sí. Los servidores RADIUS de Purple pueden devolver atributos RADIUS estándar, incluidos Tunnel-Type, Tunnel-Medium-Type y Tunnel-Private-Group-ID, indicando a OpenWrt que asigne al usuario autenticado a una VLAN específica. Pregunta tres: ¿Qué ocurre si el router OpenWrt pierde la conexión con el servidor RADIUS de Purple? CoovaChilli no podrá autenticar nuevas sesiones. Las sesiones autorizadas existentes permanecerán activas hasta que expire el tiempo de espera de su sesión. Configure siempre el servidor RADIUS secundario de Purpleo ensure high availability. [9:00 - 10:00] Summary & Next Steps To summarise: OpenWrt provides a robust, hardware-agnostic platform for enterprise WiFi. By integrating CoovaChilli for guest access and hostapd for secure staff and multi-tenant PPSK, you build an Identity-Based Network. Purple abstracts the complexity of the RADIUS infrastructure, providing a cloud-managed portal that captures first-party data and ensures compliance. Your next step is to audit your current custom firmware deployments. Ensure your walled gardens are fully populated, verify your RADIUS accounting intervals, and begin planning your migration from shared PSKs to dynamic PPSK segmentation. Thank you for listening to the Purple Technical Briefing. To learn more about how Purple can secure and monetise your guest WiFi, visit purple.ai. Until next time.

header_image.png

Resumen ejecutivo

OpenWrt es el firmware de elección para los equipos de TI que necesitan independencia de hardware sin sacrificar el control de nivel empresarial. Desplegado en entornos de hostelería, retail y sector público, proporciona una pila de red basada en Linux totalmente configurable. Sin embargo, de serie, OpenWrt es un lienzo en blanco. Sin una capa de identidad estructurada, las redes de invitados se vuelven ingobernables, las redes de personal siguen siendo inseguras y los entornos multiinquilino colapsan en una única red plana.

Esta guía proporciona el manual de integración definitivo para conectar OpenWrt a la plataforma de portal cautivo y RADIUS en la nube de Purple. Cubrimos cuatro escenarios de despliegue distintos: redirección de portal cautivo de invitados mediante CoovaChilli, configuración de walled garden con iptables, WiFi seguro para el personal mediante hostapd con IEEE 802.1X y segmentación multiinquilino mediante claves precompartidas privadas (PPSK) con asignación dinámica de VLAN. Al finalizar, dispondrá de los parámetros de configuración exactos, los modos de fallo comunes y los marcos de decisión necesarios para desplegar una red basada en la identidad, lista para producción y que cumpla con el GDPR, en cualquier hardware compatible con OpenWrt.

Purple opera en más de 80.000 establecimientos activos y ha procesado 440 millones de inicios de sesión en 2024 (datos internos de Purple, 2024). La arquitectura descrita aquí es la misma que se despliega a gran escala en cadenas hoteleras, redes de tiendas y centros de transporte.

Análisis técnico detallado

La arquitectura de portal cautivo CoovaChilli

Al desplegar Guest WiFi en OpenWrt, CoovaChilli es el controlador de acceso estándar del sector. Funciona como un demonio de Captive Portal que intercepta el tráfico de clientes no autenticados, asigna direcciones IP a través de su servidor DHCP interno en la interfaz virtual tun0 y aplica políticas de walled garden mediante reglas de iptables que gestiona directamente.

El flujo de autenticación funciona de la siguiente manera. Un dispositivo de invitado se asocia con el SSID abierto. CoovaChilli asigna al dispositivo una dirección IP de su rango interno (normalmente 10.1.0.0/24). Cuando el dispositivo envía su primera solicitud HTTP, CoovaChilli la intercepta y emite una redirección HTTP 302 a la URL de la página de bienvenida de Purple. Durante esta fase de preautenticación, el dispositivo está aislado: solo puede acceder a los dominios explícitamente incluidos en la lista de permitidos (walled garden).

Una vez que el invitado se autentica en el portal de Purple, el servidor RADIUS en la nube de Purple envía un mensaje Access-Accept a CoovaChilli en el puerto UDP 1812. A continuación, CoovaChilli actualiza sus reglas de iptables para permitir el acceso a Internet a esa dirección MAC específica y comienza a transmitir datos de contabilidad (duración de la sesión, bytes transferidos) al servidor de contabilidad RADIUS de Purple en el puerto UDP 1813. La contabilidad no es opcional: es el mecanismo mediante el cual Purple nutre su panel de WiFi Analytics con datos de sesión.

architecture_overview.png

Walled garden: iptables y listas de dominios permitidos

El walled garden es el elemento de configuración más crítico a nivel operativo en cualquier despliegue de Captive Portal. CoovaChilli gestiona el walled garden a través de dos mecanismos: el parámetro uamallowed para direcciones IP individuales y el parámetro uamdomains para listas de dominios permitidos basadas en la inspección de DNS.

Para una integración con Purple, las entradas mínimas requeridas en el walled garden son:

Dominio Propósito
*.purple.ai Recursos del portal, API y endpoints de autenticación
*.googleapis.com Google Fonts y Google Sign-In
*.gstatic.com Comprobación de conectividad de Google y recursos estáticos
*.facebook.com API de inicio de sesión de Facebook
*.fbcdn.net CDN de Facebook para recursos de inicio de sesión
captive.apple.com Detección de Apple CNA (ver nota a continuación)
connectivitycheck.gstatic.com Detección de Captive Portal de Android

Nota sobre la gestión de Apple CNA: Si incluye captive.apple.com en el walled garden, los dispositivos iOS detectarán conectividad a Internet antes de la autenticación y suprimirán la ventana emergente del asistente de red cautiva (Captive Network Assistant). La mayoría de los despliegues en hostelería excluyen deliberadamente este dominio para forzar la aparición automática del portal. La elección correcta depende del diseño de la experiencia de usuario que desee ofrecer.

WiFi seguro para el personal: hostapd e IEEE 802.1X

Las redes de invitados exigen un acceso sin fricciones. Las redes de personal exigen seguridad absoluta. Para los usuarios internos, OpenWrt utiliza hostapd para facilitar la autenticación IEEE 802.1X. En esta arquitectura, el punto de acceso OpenWrt actúa como el autenticador, reenviando mensajes del protocolo de autenticación extensible (EAP) entre el dispositivo cliente (suplicante) y el servidor RADIUS de Purple.

Para los dispositivos corporativos, EAP-TLS es el estándar obligatorio. Se basa en la autenticación mutua mediante certificados (tanto el servidor como el dispositivo cliente presentan certificados digitales), eliminando por completo las contraseñas y los riesgos asociados de robo de credenciales o phishing. Para entornos que aún no están listos para una infraestructura de clave pública (PKI) completa, PEAP-MSCHAPv2 proporciona una opción provisional razonable, utilizando un túnel cifrado para proteger las credenciales de usuario y contraseña.

Cuando un miembro del personal se autentica correctamente, el servidor RADIUS devuelve atributos de autorización. El atributo clave para la segmentación de red es Tunnel-Private-Group-ID, que indica a OpenWrt que asigne dinámicamente al usuario a la VLAN correcta. Este es el mecanismo que sustenta las redes basadas en la identidad: la identidad del usuario, y no su ubicación física, determina su acceso a la red.

Segmentación multiinquilino: OpenWrt PPSK configuración

En entornos multi-inquilino (coworkings, propiedades de alquiler residencial gestionado (BTR), centros comerciales con múltiples proveedores o estadios con zonas de patrocinadores independientes), emitir múltiples SSID resulta costoso a nivel operativo y poco eficiente en términos de radiofrecuencia (RF). Cada SSID adicional añade una sobrecarga de tramas de gestión, lo que reduce el tiempo de transmisión disponible para el tráfico de datos.

Las claves privadas precompartidas (PPSK), a veces llamadas PSK dinámicas, resuelven este problema. Se emite un único SSID. Cuando un dispositivo intenta conectarse, hostapd envía la dirección MAC del dispositivo al servidor RADIUS mediante un Access-Request estándar. El servidor RADIUS valida la dirección MAC en su base de datos y devuelve un Access-Accept que contiene dos atributos críticos: el atributo Tunnel-Password (la contraseña única para ese dispositivo) y el atributo Tunnel-Private-Group-ID (la asignación de VLAN). El dispositivo se conecta utilizando su contraseña única y se ubica directamente en su VLAN asignada.

Esto significa que el gerente de una tienda y el asistente a un evento pueden conectarse al mismo SSID pero ser redirigidos a redes completamente separadas y aisladas en función de su identidad única.

ppsk_multitenant_diagram.png

Guía de implementación

Paso 1: Obtener las credenciales de Purple RADIUS

Antes de modificar la configuración de OpenWrt, obtenga los siguientes datos de la consola de administración del portal de Purple:

  • Dirección IP del servidor RADIUS principal
  • Dirección IP del servidor RADIUS secundario (para redundancia)
  • Secreto compartido de RADIUS
  • URL de la página de inicio (Splash Page) del Captive Portal
  • URL de redirección posterior a la autenticación

Paso 2: Instalar y configurar CoovaChilli para WiFi de invitados

Instale el paquete coova-chilli a través de opkg:

opkg update && opkg install coova-chilli

El archivo de configuración principal es /etc/chilli/defaults. Defina los parámetros de red principales:

# Interfaces de red
HS_WANIF=eth0           # Interfaz de internet ascendente
HS_LANIF=wlan0          # La interfaz WiFi de invitados (o una subinterfaz VLAN)

# Subred de invitados
HS_NETWORK=10.10.20.0
HS_NETMASK=255.255.255.0
HS_UAMLISTEN=10.10.20.1 # IP de CoovaChilli en la red de invitados
HS_UAMPORT=3990

# Integración con Purple RADIUS
HS_RADIUS=
HS_RADIUS2=
HS_RADSECRET=
HS_NASID=venue-openwrt-01

# Página de inicio de Purple
HS_UAMSERVER=

# Walled garden - lista de permitidos basada en dominios
HS_UAMDOMAINS=".purple.ai,.googleapis.com,.gstatic.com,.facebook.com,.fbcdn.net"

Habilite e inicie el servicio:

/etc/init.d/chilli enable
/etc/init.d/chilli start

Paso 3: Configurar la interfaz inalámbrica de OpenWrt para el SSID de invitados

En /etc/config/wireless, defina el SSID de invitados como una red abierta vinculada a la interfaz que gestionará CoovaChilli:

config wifi-iface 'guest_wifi'
    option device 'radio0'
    option network 'guest'
    option mode 'ap'
    option ssid 'Venue_Guest'
    option encryption 'none'
    option isolate '1'

El aislamiento de clientes (isolate '1') evita que los dispositivos de los invitados se comuniquen entre sí, un control de seguridad obligatorio para cualquier red compartida.

Paso 4: Configurar hostapd para WiFi de personal con 802.1X

Para el SSID del personal, configure WPA2-Enterprise en /etc/config/wireless:

config wifi-iface 'staff_wifi'
    option device 'radio0'
    option network 'staff_vlan10'
    option mode 'ap'
    option ssid 'Venue_Staff'
    option encryption 'wpa2'
    option server ''
    option port '1812'
    option key ''
    option dynamic_vlan '2'
    option vlan_tagged_interface 'eth0'
    option vlan_bridge 'br-vlan'
    option vlan_naming '0'

Establecer dynamic_vlan '2' indica a hostapd que aplique la asignación de VLAN devuelta por el servidor RADIUS y que rechace la autenticación si no se devuelve ninguna VLAN.

Requisito de paquete: El paquete estándar wpad-mini no es compatible con WPA2-Enterprise. Debe instalar wpad o wpad-openssl:

opkg remove wpad-mini && opkg install wpad-openssl

Paso 5: Configurar PPSK para la segmentación multi-inquilino

PPSK requiere que hostapd realice la autenticación de la dirección MAC contra el servidor RADIUS, el cual devuelve la contraseña correspondiente a cada dispositivo. En /etc/config/wireless:

config wifi-iface 'ppsk_ssid'
    option device 'radio0'
    option mode 'ap'
    option ssid 'Venue_Connect'
    option encryption 'psk2'
    option key 'default_fallback_key'
    option macfilter 'radius'
    option server ''
    option port '1812'
    option key ''
    option dynamic_vlan '2'
    option vlan_tagged_interface 'eth0'
    option wpa_psk_radius '2'

El parámetro wpa_psk_radius '2' indica a hostapd que requiera el atributo Tunnel-Password de la respuesta RADIUS. Si el servidor RADIUS no devuelve una contraseña, se rechaza la autenticación.

En el lado de Purple RADIUS, la sección authorize de su configuración de FreeRADIUS (o equivalente) asocia las direcciones MAC con las contraseñas y los ID de VLAN:

# Ejemplo de entrada de autorización RADIUS para PPSK
AA:BB:CC:DD:EE:FF   Auth-Type := Accept
    Tunnel-Password = "GuestPass2024",
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-ID = "20"

Paso 6: Configurar la asignación dinámica de VLAN

Para que funcione la asignación dinámica de VLAN, el switch de OpenWrt debe estar configurado para transportar las VLAN correspondientes como tráfico etiquetado (tagged) en el puerto troncal que conecta con su switch principal. En /etc/config/network:

config interface 'vlan10'
    option ifname 'eth0.10'
    option proto 'dhcp'

config interface 'vlan20'
    option ifname 'eth0.20'
    option proto 'dhcp'

config interface 'vlan30'
    option ifname 'eth0.30'
    option proto 'dhcp'

Asegúrese de que el puerto de su switch principal esté configurado como troncal (trunk), permitiendo el paso de las VLAN 10, 20 y 30 etiquetadas.

Buenas prácticas

Segregación absoluta de la red. Nunca asocieuest interfaces con redes internas. El tráfico de invitados debe aislarse en una VLAN dedicada y enrutarse directamente al firewall de internet. Este es un requisito no negociable para el cumplimiento de PCI DSS 4.0, que exige que las redes WiFi de invitados estén completamente aisladas de cualquier segmento de red que maneje datos de titulares de tarjetas.

Precisión del walled garden. Un walled garden incompleto es la causa principal de los fallos del Captive Portal. Utilice las herramientas de desarrollo de su navegador en un dispositivo de prueba conectado al SSID de invitados para identificar qué solicitudes se bloquean antes de la autenticación. Cada dominio bloqueado es un fallo potencial del portal.

Intervalos de contabilidad RADIUS. Configure el intervalo intermedio de contabilidad de CoovaChilli a 120 segundos. Esto proporciona datos de sesión casi en tiempo real en el panel de analíticas de Purple sin generar un tráfico RADIUS excesivo.

Servidor RADIUS secundario. Configure siempre HS_RADIUS2 en su configuración de CoovaChilli. Si el servidor RADIUS principal de Purple no está accesible, CoovaChilli no podrá autenticar nuevas sesiones. El servidor secundario proporciona una conmutación por error automática sin necesidad de cambiar la configuración en el punto de acceso.

Selección de paquetes. El paquete wpad-mini que viene integrado con muchas compilaciones de OpenWrt no es compatible con WPA2-Enterprise ni con la asignación dinámica de VLAN. Instale siempre wpad-openssl para cualquier despliegue que requiera 802.1X o PPSK.

Para obtener más orientación sobre la arquitectura de seguridad WiFi empresarial, consulte nuestra Guía completa de seguridad WiFi empresarial para 2026 .

Resolución de problemas y mitigación de riesgos

Síntoma Causa probable Resolución
El portal no se carga tras la redirección Walled garden incompleto Añada los dominios CDN/API que falten a HS_UAMDOMAINS
La autenticación falla silenciosamente Discrepancia en el secreto compartido de RADIUS Verifique que HS_RADSECRET coincida exactamente tanto en CoovaChilli como en el portal de Purple
No hay datos en las analíticas de Purple Contabilidad RADIUS bloqueada Verifique que se permite el puerto UDP de salida 1813; compruebe la configuración de contabilidad de HS_RADIUS2
iOS no muestra la ventana emergente del portal captive.apple.com en el walled garden Elimine los dominios de detección de Apple de HS_UAMDOMAINS
Los clientes PPSK aterrizan en la VLAN incorrecta vlan_tagged_interface mal configurada Verifique la configuración del puerto troncal tanto en OpenWrt como en el switch principal
La autenticación 802.1X falla con error de wpad wpad-mini instalado Elimine wpad-mini e instale wpad-openssl
La VLAN dinámica falla en ath10k Problema conocido del controlador en compilaciones antiguas Actualice a OpenWrt 21.02 o posterior; use firmware ath10k que no sea CT

Nota sobre el cumplimiento de GDPR: CoovaChilli por sí mismo no captura ni almacena datos personales. Todos los mecanismos de captura de consentimiento, procesamiento de datos y cumplimiento de GDPR son gestionados por la plataforma Purple en la capa del portal. Asegúrese de que su portal de Purple esté configurado con los términos y condiciones de su establecimiento y el aviso de procesamiento de datos antes de la puesta en marcha.

Para conocer patrones de integración de hardware relacionados, consulte nuestras guías sobre Integración de puntos de acceso EnGenius Cloud con Purple WiFi y Integración de routers y puntos de acceso DrayTek Vigor con Purple WiFi .

ROI e impacto empresarial

La transición de redes PSK básicas a una arquitectura OpenWrt gestionada por Purple ofrece un impacto medible en tres dimensiones.

Captura de datos y marketing. Al aplicar la autenticación del Captive Portal, los establecimientos capturan datos demográficos de origen que cumplen con las normativas (nombres, direcciones de correo electrónico, perfiles sociales) en el punto de conexión WiFi. Estos datos se envían directamente a las plataformas de CRM y marketing por correo electrónico, impulsando las suscripciones a programas de fidelización y permitiendo campañas segmentadas. Purple ha procesado 440 millones de inicios de sesión en 2024 (datos internos de Purple), lo que demuestra la escala de captura de datos de origen posible en el extremo de la red.

Eficiencia operativa. La implementación de PPSK reduce la sobrecarga de SSID, mejorando el rendimiento de WiFi en entornos densos. Para una cadena minorista de 200 ubicaciones, gestionar la identidad de forma centralizada a través del RADIUS en la nube de Purple, en lugar de actualizar las configuraciones locales de los routers en cada sitio, ahorra cientos de horas de ingeniería al año. Un único cambio en la política de RADIUS se propaga a las 200 ubicaciones al instante.

Seguridad y cumplimiento. La asignación dinámica de VLAN aplica el acceso de menor privilegio en el extremo. El personal está aislado de los invitados. Los dispositivos IoT están aislados del personal. Las terminales de punto de venta están aisladas de todo el demás tráfico. Esta segmentación satisface los requisitos de aislamiento de red de PCI DSS 4.0 y proporciona una topología de red clara y auditable para las revisiones de cumplimiento de GDPR.

Para patrones de despliegue específicos de cada sector, consulte nuestras guías para entornos de Retail , Hostelería , Sanidad y Transporte . También puede resultarle útil nuestra guía sobre Qué es la pantalla inalámbrica: protocolos y mejores prácticas para 2026 para comprender las tecnologías inalámbricas complementarias en los despliegues de establecimientos.

Definiciones clave

CoovaChilli

Un controlador de acceso de software de código abierto que proporciona un Captive Portal y un entorno de walled garden para redes inalámbricas, utilizando RADIUS para la autenticación y la contabilidad (accounting).

Los equipos de TI despliegan CoovaChilli en OpenWrt para interceptar el tráfico HTTP de los invitados y redirigirlo a la página de bienvenida de Purple. Gestiona las reglas de iptables que aplican el walled garden y conceden acceso a internet tras la autenticación.

Walled garden

Una lista de permitidos estricta de direcciones IP o dominios a los que un usuario no autenticado puede acceder antes de completar la autenticación en el Captive Portal.

Es fundamental para permitir que los dispositivos de los invitados carguen los elementos gráficos del portal de Purple y accedan a las APIs de inicio de sesión de las redes sociales mientras se bloquea el acceso general a internet. Un walled garden incompleto es la causa más común de fallos en el Captive Portal.

PPSK (Private Pre-Shared Key)

Un mecanismo de seguridad en el que se asignan contraseñas únicas a usuarios o dispositivos individuales para el mismo SSID de WiFi, donde RADIUS devuelve la contraseña correcta y la asignación de VLAN según la dirección MAC del dispositivo.

Se utiliza para segmentar entornos multiinquilino sin emitir múltiples SSIDs. Es compatible con OpenWrt a través del parámetro wpa_psk_radius en hostapd.

Dynamic VLAN assignment

El proceso mediante el cual un servidor RADIUS indica al punto de acceso que coloque a un usuario autenticado específico en una VLAN virtual concreta, utilizando los atributos de RADIUS Tunnel-Type, Tunnel-Medium-Type y Tunnel-Private-Group-ID.

El mecanismo principal para las redes basadas en la identidad. La identidad del usuario, y no su puerto físico, determina su segmento de red y sus derechos de acceso.

IEEE 802.1X

El estándar IEEE para el control de acceso a la red basado en puertos, que define los roles de Autenticador (punto de acceso), Suplicante (dispositivo cliente) y Servidor de Autenticación (RADIUS) en la autenticación WiFi empresarial.

El protocolo subyacente para la red WiFi segura del personal en OpenWrt. Requiere el paquete completo wpad o wpad-openssl; wpad-mini no lo admite.

EAP-TLS (Extensible Authentication Protocol - Transport Layer Security)

Un método de autenticación 802.1X que utiliza autenticación mutua basada en certificados, requiriendo que tanto el servidor RADIUS como el dispositivo cliente presenten certificados digitales válidos.

El estándar de oro para la autenticación de dispositivos corporativos. Elimina por completo las contraseñas, neutralizando el robo de credenciales y los ataques de phishing. Requiere una infraestructura PKI para emitir certificados de cliente.

Captive Network Assistant (CNA)

El pseudonavegador que los dispositivos iOS y Android muestran automáticamente cuando detectan que están detrás de un Captive Portal, basándose en el sondeo de URLs de detección específicas.

Los ingenieros de redes deben gestionar sus walled gardens con cuidado para controlar si el CNA se activa automáticamente. La mayoría de los despliegues en el sector hotelero excluyen los dominios de detección de Apple y Google para forzar la aparición de la ventana emergente del CNA.

RADIUS accounting

El tercer pilar del marco AAA (Autenticación, Autorización y Contabilidad), que realiza el seguimiento del consumo de recursos de red registrando los eventos de inicio de sesión, actualizaciones intermedias y finalización de sesión en el puerto UDP 1813.

Requerido por Purple para nutrir el panel de analíticas con datos de duración de la sesión y ancho de banda. Se configura en CoovaChilli a través de HS_RADIUS2 y el parámetro radiusacctport.

hostapd

El demonio de punto de acceso IEEE 802.11 de código abierto utilizado por OpenWrt para gestionar interfaces inalámbricas, compatible con los modos de autenticación WPA2/WPA3-Enterprise, 802.1X y PPSK.

El demonio principal para las redes WiFi de personal y PPSK en OpenWrt. El paquete wpad-openssl proporciona la compilación completa de hostapd necesaria para la autenticación empresarial.

Tunnel-Password attribute

Un atributo de RADIUS (atributo 69) utilizado en despliegues PPSK para devolver una contraseña por dispositivo desde el servidor RADIUS al punto de acceso durante la autenticación MAC.

El mecanismo mediante el cual el servidor RADIUS de Purple entrega PSKs únicas al demonio hostapd de OpenWrt para la segmentación multiinquilino basada en PPSK.

Ejemplos prácticos

Un hotel de 200 habitaciones necesita ofrecer acceso WiFi por niveles: internet básico gratuito para huéspedes, acceso de alta velocidad para miembros del programa de fidelización y acceso seguro para los dispositivos de punto de venta (POS) del personal. El equipo de TI desea minimizar la sobrecarga de SSID y aplicar el aislamiento de red requerido por PCI DSS entre los terminales POS y el tráfico de huéspedes.

Desplegar puntos de acceso OpenWrt que emitan dos SSIDs: 'Hotel_Guest' (abierto, gestionado por CoovaChilli) y 'Hotel_Secure' (gestionado por PPSK a través de hostapd). En 'Hotel_Guest', CoovaChilli redirige todo el tráfico no autenticado a la página de bienvenida de Purple. Los huéspedes se autentican a través del portal y acceden a la VLAN 20 (solo internet). En 'Hotel_Secure', configurar hostapd con wpa_psk_radius=2. Cuando se conecta el dispositivo de un miembro de fidelización, el servidor RADIUS devuelve su PSK única y la VLAN 21 (nivel de mayor ancho de banda). Cuando se conecta un terminal POS, el servidor RADIUS devuelve la PSK del dispositivo POS y la VLAN 10 (acceso a la red interna, internet bloqueado). La segmentación por VLAN aplica el aislamiento PCI DSS entre los datos de los titulares de tarjetas (VLAN 10) y el tráfico de huéspedes (VLANs 20 y 21) a nivel de punto de acceso.

Comentario del examinador: Esta arquitectura utiliza dos SSIDs en lugar de uno para separar el flujo del Captive Portal (huéspedes) del flujo PPSK (personal y fidelización). Este es el enfoque correcto porque CoovaChilli y hostapd PPSK responden a modelos de autenticación fundamentalmente diferentes. Combinarlos en un único SSID requeriría una configuración de proxy RADIUS que añade una complejidad innecesaria. El modelo de dos SSIDs es más sencillo, más fiable y más fácil de auditar para el cumplimiento de PCI DSS.

Una cadena de tiendas está desplegando routers OpenWrt en 50 ubicaciones. Durante las pruebas de aceptación de usuario (UAT) en el primer sitio, la página de bienvenida de Purple se carga correctamente tras la redirección, pero al hacer clic en el botón de inicio de sesión de Facebook se produce un tiempo de espera de conexión agotado. El botón de inicio de sesión de Google funciona correctamente.

El problema se debe a un walled garden incompleto en CoovaChilli. El flujo de autenticación de Facebook requiere acceso a múltiples dominios: facebook.com, connect.facebook.net y fbcdn.net (la CDN de Facebook para los recursos de inicio de sesión). El inicio de sesión de Google funciona porque googleapis.com y gstatic.com ya están en el walled garden. Actualice el parámetro HS_UAMDOMAINS en /etc/chilli/defaults para añadir '.facebook.com,.connect.facebook.net,.fbcdn.net'. Reinicie el demonio chilli con '/etc/init.d/chilli restart' y vuelva a realizar la prueba. Para diagnosticar sistemáticamente futuros problemas del walled garden, conecte un dispositivo de prueba al SSID de invitados y utilice las herramientas de desarrollo del navegador (pestaña Red) para identificar qué solicitudes devuelven errores de conexión antes de la autenticación.

Comentario del examinador: Los flujos modernos de inicio de sesión social cargan recursos desde múltiples dominios de CDN y API. El SDK de Facebook por sí solo hace referencia al menos a tres dominios distintos. Un enfoque sistemático para la depuración del walled garden (utilizando las herramientas de desarrollo del navegador para identificar las solicitudes bloqueadas antes de la autenticación) es mucho más fiable que adivinar las listas de dominios. Antes de la puesta en marcha en las 50 ubicaciones, el ingeniero debe probar cada método de autenticación configurado (Facebook, Google, correo electrónico, SMS) y verificar que cada uno se completa correctamente.

Preguntas de práctica

Q1. Ha desplegado OpenWrt con CoovaChilli en un establecimiento Premier Inn. Los huéspedes informan de que sus iPhones no les solicitan automáticamente iniciar sesión al conectarse a la red WiFi de invitados. Deben abrir Safari manualmente y navegar a un sitio HTTP para activar el portal. ¿Qué cambio de configuración causa esto y cómo lo resuelve?

Sugerencia: Considere cómo determina iOS si una red tiene acceso completo a internet al asociarse.

Ver respuesta modelo

El ingeniero ha incluido el dominio de detección del Captive Portal de Apple (captive.apple.com) en el walled garden de CoovaChilli a través de HS_UAMDOMAINS. Cuando un iPhone se conecta, iOS envía un sondeo a captive.apple.com. Dado que este dominio está en el walled garden, el sondeo tiene éxito antes de la autenticación e iOS concluye que tiene acceso completo a internet, suprimiendo la ventana emergente del Captive Network Assistant. Para resolver esto, elimine captive.apple.com de HS_UAMDOMAINS y reinicie el demonio chilli. Los dispositivos iOS recibirán entonces una respuesta de sondeo fallida, identificarán correctamente el Captive Portal y mostrarán el aviso de inicio de sesión automáticamente.

Q2. Un operador de espacio de coworking desea desplegar termostatos inteligentes IoT en todas sus instalaciones. Ya emiten un SSID 'Cowork_Guest' (CoovaChilli) y un SSID 'Cowork_Staff' (802.1X). Los termostatos no admiten WPA2-Enterprise. ¿Cómo los incorpora de forma segura sin añadir un tercer SSID?

Sugerencia: Los dispositivos IoT normalmente solo admiten WPA2-PSK. Considere qué SSID existente se puede ampliar para admitir contraseñas por dispositivo.

Ver respuesta modelo

Configure PPSK en el SSID 'Cowork_Staff' habilitando wpa_psk_radius=2 en la configuración de hostapd. Registre la dirección MAC de cada termostato en el servidor RADIUS de Purple con una contraseña única y la VLAN 40 (VLAN de IoT) como Tunnel-Private-Group-ID. Cuando un termostato se conecta, hostapd consulta al servidor RADIUS con la MAC del dispositivo, recibe la PSK única y la asignación de VLAN, y coloca el termostato en la VLAN 40, completamente aislado del tráfico del personal en la VLAN 10. Este enfoque evita un tercer SSID, mantiene la eficiencia de RF y aplica el acceso de menor privilegio para los dispositivos IoT sin requerir una infraestructura de certificados 802.1X.

Q3. Tras desplegar OpenWrt con CoovaChilli en un establecimiento comercial, el panel de analíticas de Purple muestra cero sesiones activas y ningún dato de ancho de banda, a pesar de que los invitados se conectan y navegan por internet con éxito. ¿Cuál es la causa más probable y cuáles son los dos pasos para diagnosticarla?

Sugerencia: La autenticación (puerto 1812) y la contabilidad (puerto 1813) son funciones de RADIUS independientes.

Ver respuesta modelo

La configuración de RADIUS accounting falta o está bloqueada. Paso 1: Verifique la configuración de CoovaChilli. Compruebe que HS_RADIUS y HS_RADIUS2 estén configurados correctamente en /etc/chilli/defaults, y confirme que radiusacctport esté establecido en 1813. Si HS_RADIUS2 no está configurado, no hay ningún servidor de contabilidad definido. Paso 2: Verifique las reglas del cortafuegos. Confirme que el tráfico saliente del puerto UDP 1813 desde el router OpenWrt hacia las direcciones IP del servidor RADIUS de Purple esté permitido por el cortafuegos perimetral del establecimiento. Utilice 'tcpdump -i eth0 udp port 1813' en el dispositivo OpenWrt para confirmar si se están enviando paquetes de contabilidad. Si aparecen paquetes en tcpdump pero el panel sigue vacío, el problema es que un cortafuegos está bloqueando el tráfico entre el router y los servidores RADIUS en la nube de Purple.

Q4. Un despliegue de OpenWrt en un estadio utiliza la asignación dinámica de VLAN a través de RADIUS para segmentar la red WiFi de los aficionados (VLAN 30), la prensa (VLAN 40) y las operaciones (VLAN 50). Tras actualizar los puntos de acceso a un nuevo hardware con OpenWrt 19.07 con controladores ath10k, la asignación de VLAN deja de funcionar. Todos los usuarios autenticados acaban en la VLAN por defecto, independientemente de los atributos de RADIUS. ¿Cuál es la causa conocida?

Sugerencia: Considere el soporte a nivel de controlador para el modo AP/VLAN en ath10k.

Ver respuesta modelo

Se trata de una regresión conocida en el firmware ath10k-ct (Candela Technologies) incluido en OpenWrt 19.07. El controlador ath10k-ct en esta versión tiene un error que rompe el modo AP/VLAN, impidiendo que funcione la asignación dinámica de VLAN. La resolución consiste en actualizar a OpenWrt 21.02 o posterior, donde se actualizó el controlador ath10k-ct para restaurar la funcionalidad AP/VLAN. Alternativamente, reemplace el firmware ath10k-ct por el firmware ath10k estándar (variante no CT) en la compilación 19.07. Este problema no afecta al hardware basado en ath9k, que gestiona correctamente el modo AP/VLAN en todas las versiones de OpenWrt.

Continúe leyendo esta serie

Integración de CommScope Ruckus con Purple WiFi: Guía de instalación y configuración

Esta guía de referencia técnica proporciona un manual de configuración definitivo para integrar arquitecturas de CommScope Ruckus con Purple WiFi. Detalla implementaciones paso a paso para captive portals de Guest WiFi, WiFi seguro para el personal a través de 802.1X y aislamiento de red multiinquilino mediante Ruckus Dynamic PSK.

Leer la guía →

Integración de puntos de acceso Allied Telesis con Purple WiFi

Esta guía proporciona un manual de configuración completo para integrar los puntos de acceso de la serie TQ de Allied Telesis con Purple WiFi. Cubre la redirección externa de Captive Portal, la autenticación RADIUS 802.1X y el direccionamiento dinámico de VLAN mediante claves precompartidas privadas (PPSK) para despliegues multiinquilino seguros.

Leer la guía →

Integración de los puntos de acceso Grandstream GWN con Purple WiFi

Esta guía técnica de referencia autorizada detalla cómo integrar los puntos de acceso Grandstream GWN con la plataforma de análisis y Guest WiFi de Purple. Cubre la configuración del Captive Portal de Grandstream, los ajustes de RADIUS AAA, la configuración de walled garden, la autenticación segura para el personal mediante 802.1X con direccionamiento dinámico de VLAN y la segmentación PPSK multiinquilino, proporcionando una guía práctica paso a paso para MSP e instalaciones de TI que desplieguen WiFi para invitados y personal a gran escala.

Leer la guía →