Siguiente: Inicialización de la pasarela
Subir: NocatAuth
Anterior: NocatAuth
  Índice General
Lo primero que vamos a ver es el archivo de configuración de la pasarela que tiene
la siguiente estructuraA.1:
###### gateway.conf -- NoCatAuth Gateway Configuration.
#
# El formato de este archivo es: <Directiva> <Valor>,
# una por linea. Los tabuladores y espacios en blanco son ignorados.
# Cualquier linea que comience con un signo de puntuación se considera
# un comentario.
###### General settings.
#
# Vea el final del archivo para las opciones de registro.
#
# Log verbosity -- 0 Casi ningún registro. 10 se registra
# todo. 5 intermedio.
#
Verbosity 10
##### Gateway application settings.
#
# GatewayName -- El nombre de la pasarela, será mostrado
# opcionalmente en la página para mostrar el estado.
# Vale cualquier cadena de texto corta.
GatewayName the NoCat Network
##
#
# GatewayMode -- Determina el modo de operacion de la pasarela. Los
# valores posibles son:
#
# Captive - Permite la autenticación contra un servidor de
# autenticacion.
# Passive - Igual que Captive, pero debes usar esto si tu pasarela
# está detras de NAT. Funciona tambien si no lo esta.
# RECOMENDADO.
# Open - Simplemente se muestra al usuario una pagina y se le pide
# que acepte las condiciones.
#
# Si esta en modo Captive o Passive, necesitas valores para AuthServiceAddr,
# AuthServiceURL, y LogoutURL. Seria conveniente dejar un valor bajo en
# LoginTimeout (probablemente 600).
#
# Si esta en modo Open, necesitas valores para SplashForm, Homepage y
# posiblemente DocumentRoot (o poner una ruta absoluta para SplashForm).
# Tambien sera convemiente tener una valor grande para LoginTimeout
# (probablemente > 3600)
#
GatewayMode Passive
##
# GatewayLog -- Opcional. Si no se especifica ninguno los mensajes van
# a STDERR.
#
GatewayLog /usr/local/nocat/nocat.log
##
# LoginTimeout - Numero de segundos que se esperan desde el ultimo
# login/renovacion antes de desconectar al usuario. Probablemente
# no queremos tener esto a valores menores de 60 o se consumira
# demasiado ancho de banda en renovaciones. Por defecto a 300 seg.
#
# Para modo Captive, poner a un valor relativamente corto (10 minutos)
# para evitar conexiones de impostores o personas sin autenticar.
#
LoginTimeout 600
# Para portales en modo Open, comenta la linea anterior
# y pon un valor mayor (por ejemplo 86400, para una notificacion por dia).
#
# LoginTimeout 86400
###### Open Portal settings.
#
##
# HomePage -- Redireccion a ...
#
HomePage http://nocat.net/
# DocumentRoot -- Donde se encuentran las paginas para mostrar.
# Puede ser difente al DocumentRoot de apache.
#
DocumentRoot /usr/local/nocat/htdocs
# SplashForm -- Formulario mostrado a los usuarios cuando se capturan.
#
SplashForm splash.html
# StatusForm -- Pagina donde se muestra el estado de los usuarios conectados.
#
StatusForm status.html
###### Active/Passive Portal settings.
#
##
# TrustedGroups - Una lista que contiene los grupos registrados en el
# servidor de autenticacion que pertenecen a la clase Member.
# El valor por defecto Any indica que un miembro de cualquier grupo
# puede acceder en la clase Member.
#
# TrustedGroups NoCat NYCWireless PersonalTelco
#
TrustedGroups Any
##
# Owners - Opcional. Lista con los usuarios que son propietarios de la
# pasarela, separados por espacios. Acceden con privilegios de la
# clase Owner.
#
# Owners rob@nocat.net schuyler@nocat.net
##
# AuthServiceAddr - Obligatorio, para modo Captive. Debe ser la direccion
# del servidor de autenticacion. Debes usar la direccion IP si la
# la resolucion de nombres no esta disponible al arrancar la pasarela.
#
# AuthServiceAddr 208.201.239.21
#
AuthServiceAddr auth.nocat.net
##
# AuthServiceURL - La direccion del script de login en el servidor de
# autenticaion.
#
AuthServiceURL https://$AuthServiceAddr/cgi-bin/login
##
# LogoutURL - Pagina a la que te redirigen cuando haces logout.
#
LogoutURL https://$AuthServiceAddr/logout.html
### Network Topology
#
# ExternalDevice - Necesario si y solo si NocatAuth no puede averiguarlo
# mirando las tablas de rutas y cogiendo la interfaz en la ruta por
# defecto. Debe especificar la interfaz conectada a Internet.
# Normalmente 'eth0' o 'eth1', o incluso 'ppp0' si tienes una
# conexion por modem.
#
# ExternalDevice eth0
##
# InternalDevice - Necesario si y solo si tienes dispositivos ethernet en la
# pasarela entre tu dispositivo wireless y tu conexion de red.
# Debe especificar la interfaz conectada con la red local, normalmente sera
# la tarjeta wireless. En Linux, algunos dispositivos wireless se llaman
# 'wvlan0' o 'wlan0' mas que 'ethX'.
#
# InternalDevice eth1
##
# LocalNetwork - Necesario si y solo si NocatAuth no puede averiguar la
# direccion de tu red local, dada por tu InternalDevice(s). Debe
# especificar el valor la direccion de la red local y la mascara.
# Puedes usar el numero de bits en la mascar(p.e. /16, /24, etc.)
# o la mascara completa x.x.x.x.
#
# LocalNetwork 10.0.1.0/24
##
# DNSAddr - Opcional. Si tu eliges no ejecutar un servidor de nombres DNS
# en tu red interna, debes proporcionar la direccion de uno o mas en
# Internet. Debe ser el mismo DNS que use tu servidor DHCP. Si lo dejas
# en blanco, NoCatAuth tomara los nombres de /etc/resolv.conf.
#
# DNSAddr 111.222.333.444
##
# AllowedWebHosts - Opcional. Lista cualquier direccion que quieras acceso
# libre.
#
# AllowedWebHosts nocat.net
##
# RouteOnly - Necesario solo si tu NO QUIERES que tu pasarela actue como NAT.
# Descomenta esto solo si tu estas ejecutando una red que solo necesita
# enrutamiento y no necesita que la pasarela haga de NAT.
#
# RouteOnly 1
##
# IgnoreMAC - Activa esto solo y solo si la pasarela no esta conectada
# directamente (o con un puente de nivel 2) a tu red interna (normalmente
# wireless). En ese caso, la pasarela no sera capaz de conocer la MAC de
# los clientes, y sera forzada a usar la direccion IP solo. Teoricamente
# esto es menos seguro, ya que las direcciones IP son mas faciles de
# spoof que las direcciones MAC. No uses esto si no sabes lo que haces.
#
# IgnoreMAC 1
##
# MembersOnly - Opcional. Descomenta esto si quieres deshabilitar el
# acceso publico(i.e. deshabilitar el boton 'skip').
#
# MembersOnly 1
##
# IncludePorts - Opcional. Especifica los puertos TCP a los que se
# el acceso para la clase public. El acceso al resto de puertos
# esta denegado.
#
# Para una lista de servicios y puertos, mira en /etc/services.
# Dependiendo de tu firewall, tu podrias especificar servicios
# en vez de puertos.
#
# IncludePorts 22 80 443
##
# ExcludePorts - Opcional. Especifica los puertos a los que la clase
# public no puede acceder. El resto estaran permitidos.
#
# Solo puedes usar IncludePorts o ExcludePorts, pero no los dos a la
# vez. Si ninguno es especificado todos los puertos son accesibles para
# la clase public.
#
# ExcludePorts 23 25 111
#
ExcludePorts 25
####### Syslog Options -- Cambia esto solo si tu quieres que Nocat use
# el registro del sistema!
#
# Log Facility - syslog o internal. Internal envia todos los mensajes al
# archivo GatewayLog o a STDERR si no se especifica ningun archivo.
# Syslog manda los mensajes al registro del sistema
#
# LogFacility internal
##
# SyslogSocket - inet or unix. Inet connects to an inet socket returned
# by getsrvbyname(). Unix connects to a unix domain socket returned by
# _PATH_LOG in syslog.ph (typically /dev/log). Defaults to unix.
#
# SyslogSocket unix
##
# SyslogOptions - Ninguna o mas palabras de pid, ndelay, cons, nowait
# Por defecto "cons,pid"
#
# SyslogOptions cons,pid
##
# SyslogPriority - La prioridad de mensajes a usar. En importancia
# decreciente las mas tipicas son: EMERG, ALERT, CRIT, ERR, WARNING,
# NOTICE, INFO, and DEBUG. Por defecto a INFO.
#
# SyslogPriority INFO
##
# SyslogFacility - La facilidad para el registro. Por defecto a user.
# SyslogFacility user
##
# SyslogIdent - El identificador del programa que llama a syslog.
# Aparece en todas las entradas del registro hechas desde Nocat.
# Por defecto Nocat.
#
# SyslogIdent NoCat
###### Other Common Gateway Options. (Probablemente no tenga que cambiarlas)
#
# ResetCmd, PermitCmd, DenyCmd -- Shell-scripts para resetear, abrir y
# cerrar el firewall
#
# ResetCmd initialize.fw
# PermitCmd access.fw permit $MAC $IP $Class
# DenyCmd access.fw deny $MAC $IP $Class
##
# GatewayPort - El puerto TCP donde la pasarela recibe petieciones.
# De hecho es el puerto estandar para NoCatAuth.
# Cambie esto solo si es absolutamente necesario.
#
# GatewayPort 5280
##
# PGPKeyPath -- El directorio donde se guardan las claves PGP. Nocat intenta
# encontrar esto en el directorio pgp/.
#
# PGPKeyPath /usr/local/nocat/pgp
##
# MessageVerify -- Comando para verificar la firma PGP de un mensaje.
#
# GpgvPath /usr/bin/gpgv
#
# MessageVerify $GpgvPath --homedir=$PGPKeyPath 2>/dev/null
##
#
# IdleTimeout -- Frecuencia para comprobar la cache ARP, en segundos,
# para la expiracion de idle clientes.
#
# MaxMissedARP -- Cuantas veces puede un cliente no estar en la ARP
# cache antes de que asumamos que se ha ido, y lo desactivemos.
# Pon el valor 0 para desabilitar le dewconexion basada en la
# expiracion de la cache ARP.
#
# MaxMissedARP 2
#
# IdleTimeout 300
### Fin!
Ya hemos visto todas las directivas. A partir de ahora nos centraremos en el modo
Passive, al que llamaremos modo pasivo, que es el recomendado y el que se ejecuta si
la pasarela está detrás de un NAT. Asimismo como firewall usaremos las iptables, esto quiere
decir que solo se verán los ejecutables referidos a iptables.El contenido de /libexec/ipfilter/,
/libexec/ipchains/, /libexec/pf/, y /libexec/loopback/ no se verán.
Pasaremos a ver el funcionamiento del programa, el método a seguir será secuencial.
Comenzaremos viendo que pasa cuando se inicia la pasarela y veremos el proceso que se sigue
cada vez que se conecta un usuario.
Para empezar diremos que en la pasarela lo que se ejecuta es un proceso que
se demoniza y atiende peticiones en el puerto 5280.
Subsecciones
Jesús Martín
2003-09-16