Grupo Linuxero del Bajío

Autenticación en redes inalámbricas

Víctor Manuel Jáquez Leal

¿Se acuerdan de la institución educativa que me pidió un servidorde correo utilizando los usuarios de un Windows? Pues la misma institución me pidió que autenticara a los usuarios que quisieran usar su red inalámbrica, ahora sí, utilizando sus usuarios de su red NT.

Existen mucha formas de autenticar a un usuario que quiere acceder auna red. La mayoría de estos métodos implica poner esquemas de autenticación y autorización en la pasarela de la red local (gateway). Por ejemplo, unos utilizan redes virtuales privadas y otros autenticaciones a través de SSH y reglas de corta fuegos.

Sin embargo estos clientes no querían complicarle la vida a sus alumnos, ni ellos cargarse de trabajo instalando programas a las portátiles de cada alumno. Así quese optó por un sistema parecido al de un hotspot tipo captive portal. Si han ido a un Sanborns y conectado a su red inalámbrica con su portátil, sabrán a lo que me refiero; si no, ahora lo explicamos.

Analicemos el caso de uso clásico: llega un alumno al campus, se sienta en algún lado dentro del área de cobertura de un access point, prende su flamante computadora portátil, abre su navegador (Firefox, ¿hay otro?) y abre su página favorita. En ese momento, en lugar deabrir su página (Slashdot, obviamente), le aparece una página que le pide su nombre de usuario y contraseña. El alumno pone su matrícula y su contraseña de la redWindows y por arte de magia entra a su página solicitada y a todo donde tenga permisos. De lo contrario le aparecerá un mensaje de error y su subsecuente pantalla de autenticación.

                                   ----------------
                               +->|Servidor Web/CGI|
                               |   ----------------
                               |           ^
                               |           |

—— ~~~~~~~~~~~~~~~ – | –––––––––– ******** |laptop|->(red inalámbrica)->|AP|->|Pasarela/Cortafuegos|->Internet —— ~~~~~~~~~~~~~~~ – –––––––––– ******** | v ———————–– |Servidor de autenticación| ———————––

Me decanté por utilizar el papá de todos estos sistemas: NoCatAuth, que es un demonio escrito en Perl, por lo cual debe manejarse como un servicio que se ejecuta a momento de inicio del sistema.

El servicio fue diseñado para correr en dos ambientes: en el servidor web y en la pasarela/cortafuegos. En el lado del servidor web, NoCatAuth se encarga de:

En el lado de la pasarela/cortafuegos su función es:

Ahora desmenucemos el programa para entender su funcionamiento:

El demonio se llama gateway que instancia un objeto NoCat, el cual contiene seis submódulos:

  1. AuthServ: Es el CGI que se ejecuta para presentar las formas HTML con las que interactuará el usuario, solicitará la autenticación del usuario, si la autenticación es exitosa, generará un mensaje encriptado al Gateway, solicitando el permiso de tráfico parael IP del usuario autenticado y lo redirigirá a la página solicitadaen un inicio. Este módulo es compartido entre el CGI de loginejecutado en un servidor web externo y el módulo de Gateway.
  2. Firewall: Es el encargado de fijar las reglas decortafuegos en la pasarela, tanto la inicialización de las reglas, el refijado, el permiso y el rechazo del tráfico. Al utilizar guionespara hacer esto, se ha configurado en otras plataformas como los BSD.
  3. Gateway: El servidor web incrustado, atado al puerto 5280. Funge como coordinador entre los módulos AuthServ y Firewall: recibe la petición HTTP del usuario, llama al AuthServ, recibe el mensaje encriptado solicitando le paso del tráfico, y le dice al Firewall que abra o cierre una regla de firewall ya sea por la autenticación o el fin del tiempo de sesión.
  4. Message: Es el módulo encargado de cifrar y decifrar el mensaje que genera el AuthServ y recibe el Gateway.
  5. Peer: Representa una conexión valida y permitida por el Gateway. Está asociada a un usuario, un grupo y una MAC.
  6. User: Representa un usuario y está asociado con el mecanismo de autenticación elegido, que puede ser:
    • PAM
    • DBI (base de datos)
    • IMAP
    • LDAP
    • Radius
    • Samba

El concepto de grupo está relacionado con el ancho de banda asignado a la conexión. NoCatAuth presupone tres grupos:

  1. Public: es un usuario que no se autenticó, mas se le otorgó acceso por configuración. Es decir, si se configura como un portal abierto al público en general. Se le asigna un ancho de banda mínimo.
  2. Co-op: es un usuario autenticado que tiene más ancho de banda.
  3. Owner: es el dueño del hotspot y tiene todo el ancho de banda disponible.

El proceso de conexión de un usuario es entonces:

  1. El usuario prende su portátil y obtiene un número IP por DHCP.
  2. Abre su firefox y abre slashdot.
  3. La pasarela, que tiene por defecto todo el tráfico bloqueado, excepto una redirección del puerto 80 al puerto 5280, donde Gateway está escuchando con el protocolo HTTP. El Gateway hace una redirección al servidor web donde está el CGI de login.
  4. El usuario ve la página que le pide sus credenciales. Pone su nombre de usuario y contraseña.
  5. El servidor web recibe el nombre de usuario y contraseña y se lo pasa al AuthServ, quién autentica utilizando la fuente configurada. Si se autentica correctamente se genera un mensaje cifrado usando la llave pública de Gateway y se lo envía.
  6. Gateway recibe el mensaje cifrado, lo desencripta usando su llave privada y reenvía el mensaje a Firewall.
  7. Dicho mensaje contiene los identificadores de la conexión, con lo cual el Firewall genera una regla que permite su tráfico y le asigna una política de ancho de banda.

En mi caso la fuente de autenticación fue PAM, configurando previamente el winbind para la autenticación con el PDC en WindowsNT.

Lo interesante de esta tecnología es que puede ser ampliada para elcontrol de acceso a redes, no solo inalámbricas, sino de todo tipo, ya que es independiente del medio físico. Por otro lado, un trabajofuturo es integrar las reglas del NoCatAuth al Shorewall, lo que haría una pasarela muy robusta y completa. Podría por otro lado extenderse para la contabilidad de consumo de un café internet o chismes por el estilo.

Otras ligas interesantes son: NoCatAuthGateway Server Configuration y NoCatAuth:Authentication for Wireless Networks.