Siguiente: Objetivos
Subir: Escenario y objetivos
Anterior: Servidor de autenticación
  Índice General
Vamos a dividir el proceso en varias fases:
- Cuando se inicia la pasarela se ejecuta un programa que inicia las
reglas del cortafuegos de la siguiente manera: marca todos los paquetes que provengan de la red local con
la marca 0x4 y a su vez redirige todos los paquetes con la marca 0x4 al servidor de autenticación.
Además crea tres reglas para las marcas 0x1, 0x2 y 0x3 y los permite navegar, pero
en principio no crea ninguna regla para marcar paquetes con esas marcas.
- Cuando un miembro de la red local intenta navegar por Internet a través de
la pasarela, las reglas que se han definido al inicio marcan el paquete con la marca 0x4 y
esta petición es capturada por la pasarela. La pasarela realiza algunas comrobaciones
y se redirige al usuario a la página del servidor de autenticación que muestra un formulario.
- El usuario rellena el formulario con el login y la clave y envía esta información.
El servidor comprueba que ese login y clave corresponden con alguno en su tabla member y
además comprueba si el usuario pertenece a algún grupo. A partir de aquí pueden
ocurrir dos cosas:
- Puede ser que el usuario no sea autenticado o haya algún error, en ese
caso no se permite navegar al usuario y se muestra un mensaje de error.
- Si el usuario ha sido autenticado se desencadena un proceso para
comunicárselo a la pasarela:
- El servidor devuelve al usuario una página que hace lo siguiente:
- Por un lado lleva un mensaje encriptado con los datos de usuario y la clase a
la que pertenece. Este mensaje es reenviado del usuario a la pasarela para decirle
a la pasarela que debe permitir el acceso a la red.
- Por otro lado, la misma información que contiene el mensaje que se enviará a la pasarela
se guarda en un popup2.4
que le salta al usuario.
- Una vez que la pasarela recibe el mensaje encriptado del usuario lo desencripta con
la clave pública y crea una regla nueva en el cortafuegos. Esta regla consiste en marcar los paquetes
con origen la dirección IP y MAC del usuario en cuestión. La marca que se utiliza es
la correspondiente a su clase
(0x1 si es de la clase Owner, 0x2 si es de la clase Member y 0x3 si es de la clase Public).
A partir de este momento el usuario podrá navegar ya que al iniciar la pasarela se
habían creado reglas para permitir al acceso a los paquetes marcados con esas marcas.
- En la pasarela se puede definir un parámetro que es tiempo de conexión
que tiene un usuario una vez que ha sido autenticado. Si expira este tiempo automáticamente
se borra la regla que hay en el cortafuegos del marcado de sus paquetes, por lo que sus
paquetes volverían a ser marcados con la marca 0x4 y serían redirigidos hacia el servidor
de autenticación. Para que el usuario no tenga que estar autenticándose cada cierto tiempo
cuando expire su temporizador está el popup del que hemos hablado antes.
- El popup está programado para que cuando haya transcurrido una fracción2.5 del tiempo de expiración mande
la información que contiene al servidor de autenticación. Entonces el servidor de autenticación
le devuelve otra vez un mensaje cifrado para que lo mande a la pasarela y vuelve a programar
el popup para autenticarse antes de que transcurra el tiempo de expiración. Con este método
la pasarela recibe un mensaje con las credenciales del usuario antes de que expire su
temporizador sin necesidad de molestar la usuario.
- La conexión se termina en el momento que el usuario cierra el popup y expira su tiempo,
o bien, si el usuario pulsa un botón que trae el popup para salir. Este botón envía la información
directamente a la pasarela para borrar la regla correspondiente del cortafuegos.
Figura 2.2:
Funcionamiento de NoCatAuth
|
Figura 2.3:
Funcionamiento de NoCatAuth
|
Básicamente este es el funcionamiento del sistema cuando está actuando en modo Pasivo, es
decir, cuando estamos tras una pasarela que actúa como NAT2.6.
Para más detalles de la implementación y de las reglas del cortafuegos que se aplican
véase el apéndice A.1.
Tanto el demonio que se está ejecutando en la pasarela como los
scripts CGI que se ejecutan en el servidor están escritos en Perl.
Siguiente: Objetivos
Subir: Escenario y objetivos
Anterior: Servidor de autenticación
  Índice General
Jesús Martín
2003-09-16