Implementación de un portal cautivo con Wifidog

Autor: Víctor M. Delgado Lorente (vmdelgado@www.uco.es)

Introducción

Un portal cautivo es una aplicación utilizada generalmente en redes inalámbricas abiertas (hotspots) para controlar el acceso a la misma, aunque también puede utilizarse en redes cableadas. Por un lado, se utiliza para presentar al usuario alguna información de interés (información corporativa, políticas de uso, etc.) y por otro le permite al usuario facilitar al sistema sus credenciales de acceso. Al utilizar un navegador web en lugar de un programa personalizado para la interacción entre el usuario y el sistema, se consigue una gran versatilidad en cuanto a equipos y sistemas operativos.

Cuando un usuario, una vez seleccionada la red WIFI y establecida la conexión inalámbrica, intenta acceder a una página web utilizando cualquier navegador, el portal cautivo captura esta solicitud y en lugar de la página solicitada le presenta al usuario la página de registro al sistema, bloqueando cualquier otro tipo de tráfico. Una vez que el usuario introduce sus datos y estos son comprobados se le permite el acceso a la red facilitándole la página web inicialmente solicitada.

Normalmente un portal cautivo consta de dos partes: una puerta de enlace (gateway) y un servidor de autenticación. El gateway gestiona las reglas de cortafuegos, denegando el acceso a la red a los usuarios no identificados y estableciendo qué puertos y protocolos están permitidos a los usuarios autorizados. El gateway se conecta con el servidor de autenticación que realiza la comprobación de los datos de usuario, bien utilizando una base de datos local o consultando a un servidor Radius, para permitir o denegar el acceso a la red, así como asignar algunas restricciones como un límite de tiempo o un ancho de banda determinado.

Un portal cautivo puede instalarse en un ordenador que actúe como router o bien, si no necesita demasiado espacio de almacenamiento y capacidad de procesamiento, en un router hardware con firmware basado en Linux (como por ejemplo alguno de los modelos WRT54G de Linksys).

Entre los distintos sistemas de portal cautivo con software libre podemos señalar NoCat, Wifidog, Chillispot, ZeroShell, etc.

Wifidog

logo-wifidogEl proyecto Wifidog[1] fue desarrollado hacía el año 2003 por la empresa canadiense Île sans fil[2] (isla inalámbrica), con el objetivo de crear un solución de portal cautivo que al no necesitar gran cantidad de espacio de almacenamiento y capacidad de procesamiento, pudiera implementarse en equipos integrados (como por ejemplo en los routers Linksys WRT54G). Este software es distribuido bajo las licencias CC (Creative Commons) y GNU GPL.

Wifidog, a diferencia de otros portales cautivos como NoCat, no precisa que una ventana del navegador web del cliente se mantenga siempre activa, por lo que funciona con cualquier plataforma que incluya un navegador como teléfonos inteligentes y tabletas. El control del mantenimiento de la conexión entre el sistema y los usuarios se realiza mediante la comprobación de la actividad del adaptador de red (haciendo ping cada cierto tiempo).

Como otros sistemas de portal cautivo, Wifidog consta de dos partes bien diferenciadas: la puerta de enlace (gateway) y el servidor de autenticación. El gateway, desarrollado en Lenguaje C, maneja las reglas de cortafuegos, denegando el acceso a la red a los usuarios no autenticados y establece los puertos y protocolos permitidos a los usuarios registrados. Se conecta con el servidor de autenticación, desarrollado en PHP y que utiliza una base de datos PostgreSQL para almacenar la información de las sesiones. El servidor de autenticación comprueba las credenciales del usuario bien utilizando una base de datos local o algún servidor externo tipo Radius y dependiendo de las configuraciones puede aplicar algunas restricciones de uso, como por ejemplo un límite de tiempo o una cantidad de ancho de banda disponible para cada usuario.

Algunas de las características más interesantes de Wifidog son las siguientes:

  • Posibilidad de habilitar distintos nodos con un control centralizado
  • Está basado en productos estándar (IPTables, Apache, DHCP)
  • El servidor de autenticación está escrito en PHP
  • Utiliza una base de datos PostgreSQL para almacenar la información de las sesiones
  • El control de la conexión se realiza mediante la comprobación de la actividad del adaptador de red del cliente por parte del portal cautivo (ping a intervalos de tiempo)
  • Posibilidad de autorizar dispositivos mediante MAC (impresoras, teléfonos..)
  • Posibilidad autenticación usuarios mediante servidores Radius.
  • Puede establecerse un límite de tiempo o ancho de banda (por nodo y por red)
  • Monitorización de las sesiones de red (estadísticas e informes muy completos)
  • Soporte para diferentes idiomas (según el navegador detectado y la selección del usuario)
  • Posibilidad de crear y activar cuentas de manera automática (no implantado en la UCO, donde se utilizan como datos de acceso las cuentas de usuario)

El siguiente diagrama describe las fases que tienen lugar en el proceso de autenticación de un usuario en el acceso a una red. [3]

wifidog diagrama flujo

  • El usuario realiza la petición de una página web mediante su navegador.
  • El cortafuego del portal cautivo (gateway) bloquea el acceso y redirige al cliente hacia el servidor de autenticación.
  • El servidor de autenticación envía al cliente un formulario para que el usuario facilite sus credenciales.
  • Una vez proporcionados los datos de acceso (no pasan por el gateway) son chequeados contra la base de datos correspondiente (local o remota).
  • Si el usuario es correctamente autenticado se le envía al cliente una identificación de un sólo uso y se le redirecciona de nuevo hacia el gateway.
  • El gateway comprueba la identificación suministrada por el cliente (no los datos del usuario) con el servidor de autenticación para permitirle o no el acceso a la red, en cuyo caso habitualmente se le redirige a la web inicialmente solicitada.

En la Universidad de Córdoba se utiliza desde el año 2012 el sistema de portal cautivo Wifidog para controlar el acceso a la red inalámbrica y a la red cableada en algunas instalaciones como por ejemplo en aulas de docencia y en las residencias universitarias [4]. Anteriormente se utilizaba, desde 2003, el portal cautivo NoCat pero fue sustituido debido a sus limitaciones y falta de mantenimiento por el equipo de desarrollo.

Diferencias con NoCat

La sustitución de NoCat por Wifidog se debió principalmente al hecho de que el primero presentaba una serie de limitaciones entre las que podemos señalar las siguientes:

  • Con NoCat no era posible descentralizar la red WIFI, separándola en varias subredes, de forma que pudiéramos tener un mismo servidor de autenticación junto a varios gateway, lo que impedía proporcionar unas prestaciones aceptables, teniendo en cuenta el gran número de usuarios que ya comenzábamos a tener.
  • Debido a las limitaciones propias del protocolo DHCP, sólo era posible contar como máximo con dos servidores DHCP proporcionando direcciones en la misma subred (trabajando en modo activo-activo).
  • Los clientes precisaban tener una navegador web compatible con JavaScript y con la capacidad de tener abiertas dos ventanas distintas, para controlar el estado de la sesión de conexión con el portal cautivo, lo que generaba inconvenientes a los usuarios

Otras características del sistema de portal cautivo basado en NoCat son las siguientes:

  • NoCatAuth, es un producto libre, basado en PERL
  • Fue dejado de desarrollar hacia 2004 coincidiendo con la aparición de Wifidog
  • Basado en productos estándar (IPTables, Apache, DHCP)
  • Necesidad de mantener una segunda ventana en navegador web
  • Autorización de dispositivos mediante MAC (impresoras, teléfonos..)
  • Cifrado de claves que se intercambian para establecer la conexión
  • Cifrado opcional mediante WEP de los datos transmitidos
  • Posibilidad de autenticación de usuarios mediante servidores Radius.
  • Asignación de privilegios según perfil de usuarios
  • Monitorización de las sesiones de red

Referencias

[1]     http://www.wifidog.org (Web del proyecto Wifidog)

[2]     http://www.ilesansfil.org (Web de la organización responsable del desarrollo de Wifidog)

[3]     http://www.linuxjournal.com/article/8352 (Artículo muy interesante donde se puede encontrar informacion acerca del proyecto Wifidog e incluso ver una fotografia de algunos de sus desarrolladores iniciales)

[4]     http://sinhilos.uco.es (Web oficial de la red Wifi de la Universidad de Córdoba)

 

 

1 respuesta

  1. 30 mayo 2014

    […] Wifidog como portal cautivo. […]