Beruflich Dokumente
Kultur Dokumente
Todo el mundo sabe que KITT no funciona con llaves, para arrancar el coche hace falta autenticacin via RA DIUS . nonr00ts stuf
Indice
Teoria
Practica
3 4 9
S ervidores C lientes K erberos 39 51 58
Preinstalacion
66 68 70 73 74 78 80 81
Configuracion de Freeradius Nas Portal Cautivo Configuracion Chillispot Configuracion Apache2 Configuracion Openldap Practica 2 Todo en 1
E nlaces de interes 86
Introduccin
En esta prctica vamos a estudiar RADIUS, un protocolo ampliamente empleado para controlar el acceso a servicios en red. Lo primero que vamos a estudiar es la teora asociada a este protocolo, viendo tambin conceptos relacionados con el mismo, como NAS. Veremos el formato de los mensajes, el uso de cada uno, su funcionamiento y los diferentes estados en los que puede encontrarse la comunicacin. Tambien veremos la implementacion de este protocolo en diferentes servidores y clientes. Finalmente instalaremos FreeRADIUS usando Netkit, configurando el servidor para que d servicio a un punto de acceso.
Definicin - Radius
RADIUS (Remote Authentication Dial-In User Server) es un protocolo que nos permite gestionar la autenticacin, autorizacin y registro de usuarios remotos sobre un determinado recurso. Fue originalmente especificado en 1991 para controlar accesos dial-in al NSFnet.y no fue creado inicialmente para ser un mtodo de seguridad en redes inalambricas. RADIUS mejora el estndar de encriptacin WEP, en conjunto con otros mtodos de seguridad como EAP-PEAP. Fue desarrollado por Livingston Enterprises para la serie PortMaster de sus Servidores de Acceso a la Red(NAS), ms tarde se public como RFC 2138 y RFC 2139. Mucha de la informacion que expongo esta basada en el RFC 2865(autenticacion y autorizacion) y RFC 2866(registro).
Definicin - Radius
Al principio este protocolo usaba el puerto UDP numero 1645, el cual entraba en conflicto con el servicio de datametrics. El puerto oficial asignado es el 1812. La autenticacin, autorizacin y registro es ms conocida como AAA, al ser ste su acrnimo de su denominacin inglesa: Authentication, Authorization, and Accounting. Aunque RADIUS es el protocolo para AAA ms extendido en la actualidad, ya existe un nuevo protocolo que podria sustituir al Radius. Es el llamado DIAMETER, y proporciona manejo de errores y comunicacin entre dominios. Vamos a describir a qu se refiere cada uno de los terminos de la AAA:
Radius - Autenticacion
Hace referencia al proceso por el cual se determina si un usuario tiene permiso para acceder a un determinado servicio de ed del que quiere hacer uso. El proceso de autenticacin se realiza mediante la presentacin de una identidad y unos credenciales por parte del usuario que demanda acceso. Un tipo habitual de credencial es el uso del nombre de login junto con su contrasea. Otros tipos ms avanzados de credenciales son los certificados digitales. Existen muchos mtodos que implementan el proceso de la autenticacin y son soportados por Radius: - Autenticacin de sistema (system authentication), tpica en un sistema Unix, normalmente realizada mediante el uso del fichero /etc/passwd. - Los protocolos PAP (Password Authentication Protocol), que son mtodos de autenticacin usados por proveedores de servicios de Internet (ISPs) accesibles va PPP. - LDAP (Lightweight Directory Access Protocol), un protocolo que implementa un servicio de directorio ordenado, y muy empleado como base de datos para contener nombres de usuarios y sus contraseas. - Kerberos, mtodo de autenticacin diseado por el MIT. Hablaremos mas de el mas tarde. - EAP (Extensible Authentication Protocol), que es un entorno de autenticacin empleado en redes inalmbricas y conexiones punto a punto.
Radius - Autorizacin
Se refiere a conceder servicios especficos a un determinado usuario, basndose para ello en su propia autenticacin, los servicios que est solicitando, y el estado actual del sistema. Es posible configurar restricciones a la autorizacin de determinados servicios en funcin de aspectos como, por ejemplo, la hora del da, la localizacin del usuario, o incluso la posibilidad o imposibilidad de realizar mltiples logins de un mismo usuario. El proceso de autorizacin determina la naturaleza del servicio que se concede al usuario, como son: la direccin IP que se le asigna, el tipo de calidad de servicio(QoS) que va a recibir, el uso de encriptacin, o la utilizacin obligatoria de tneles para determinadas conexiones. Los mtodos de autorizacin soportados habitualmente por un servidor de RADIUS incluyen bases de datos LDAP, bases de datos SQL (como Oracle, MySQL y PostgreSQL), o incluso el uso de ficheros de configuracin locales al servidor.
Radius - Registro
Se refiere a realizar un registro del consumo de recursos que realizan los usuarios. El registro suele incluir aspectos como la identidad del usuario, la naturaleza del servicio prestado, y cundo empez y termin el uso de dicho servicio.
Uso de UDP
Los paquetes RADIUS son encapsulados en el campo de datos de UDP donde el campo de puerto de destino indica 1812(en decimal).
Cuando es generada una respuesta, se intercambian los puertos de origen y destino. Una pregunta frecuente es porque RADIUS usa UDP en vez de TCP como protocolo de transporte. Se eligi UDP por estrictas razones tecnicas:
Uso de UDP
1.- Si la peticion para una primeta autenticacion al servidor falla, un segundo servidor tiene que ponerse de respaldo. Para entenderlo, una copia de la peticion debe estar guardada sobre la capa de transporte para el envio a una ruta alternativa. Esto significa que los temporizadores de retransmision son necesarios. 2.- Los temporizadores de este protocolo en particular son significativamente diferentes que los provedos por TCP. Por un lado, RADIUS no requiere un control de flujo. El usuario no necesita una respuesta rapida, se supone que esta dispuesto a esperar unos segundos para la autenticacion. Por otro lado, el usuario tampoco va a esperar unos minutos para la autenticacion. Por lo tanto la entrega fiable de datos TCP dos minutos ms tarde no es til.
Uso de UDP
3.- Las pocas opciones del RADIUS simplifican el uso de UDP. Los servidores y clientes se conectan y desconectan temporalmente. Los sistemas se reinician o se mantienen en stand by. Generalmente esto causaria problemas con los temporizadores y la deteccion de segmentos TCP perdidos. UDP sin embargo elimina cualquier tipo de manejo especial sobre las comuncaciones. Cada cliente y servidor puede abrir su capa de transporte UDP una sola vez y dejarlo abierto a pesar de cualquier fallo en la red. 4.- UDP simplifica los procesos del servidor En las ultimas implementaciones del RADIUS los servidores eran muy basicos. Llegaba una trama, se procesaba y se enviaba. Esto lo hacia poco manejable sobretodo en entornos donde los mecanismos de seguridad hacian que tardase 1 o mas segundos. Las peticiones entran en cola cuando muchos usuarios querian conectarse. La solucion obvia fue permitir la multidifusion del servidor.
El campo identificador esta compuesto por un octeto, y es aadido en las peticiones y respuesa. El sevidor RADIUS puede detectar una peticion duplicada comparando la direccion IP de origen, el puerto UDP de origen y el identifador.
El campo de longitud esta formado por 2 octetos. Indica la longitud del paquete incluido todos los campos y atributos. Los octetos fuera de rango de la longitud se ignoran al recibirlo. Si un paquete es menor que la longitud que indica el campo ste sera descartado sin aviso. La longitud minima es de 20 bits y la maxima es de 4096 bits.
E l campo de long itud ocupa un octeto e indica la long itud de los atributos , incluido el tipo, la definicion de la long itud en s i y el campo de valor. S i un atributo es recibido en una peticion de aces o pero con una long itud de atributo invalida, s e trans mitira un acces s -reject por parte del s ervidor. S i es to s ucede en una aceptacion, rechazo o en un mens aje para poner a prueba, el cliente lo des cartara.
TEXT
S TR ING
ADDR E S S
INTEGER TIME
Valor sin firmar de 32 bit, el octeto ms significativo primero. Los atributos estndar no usan este tipo de datos pero esta presentado aqu para un posible uso en el futuro.
Tipos de paquetes
Aunque los protocolos como RADIUS sean incapaces de protegerse contra el robo de una sesin autenticada va ataques de intervencin de las conexiones en tiempo real, la generacion de peticiones unicas e impredecibles pueden proteger contra una amplia gama de ataques activos contra la autenticacin. El valor del campo de tipo access-acept, access-reject y access-challenge son llamados autenticadores de respuesta y contienen un valor encriptado en MD5. Describire los tipos de paquetes mas importantes:
Tipos de paquetes:
Peticion de acceso(access-request)
Las peticiones de acceso son enviadas al servidor RADIUS y transportan la informacion determinada por el NAS especifico indicando si tienee acceso o si desea cualquier otro servicio especial para el usuario. En la practica, se debe transmitir el paquete con el valor 1 en el campo de autenticacion, que define el paquete como una peticion de acceso. Al recibir la peticion de acceso de un cliente valido, el servidor respondera con otro paquete indicando si se le esta permitido el acceso. Una peticion de acceso debe contener el nombre de usuario, el atributo de la direccion IP NAS o el atributo de identificador NAS, la contrasea de usuario encriptada, la direccion del puerto NAS y opcionalmente otros atributos especiales.
Tipos de paquetes:
Respuesta al desafio(Challenge response)
En una autenticacion de este tipo al usuario se le ofrece un numero impredecible y desafia al usuario a encriptarlo y devolverle el resultado. Los usuarios autorizados utilizan unos dispositivos especiales como pequeas tarjetas o programas que le permiten facilitar el calculo de la respuesta.
Tipos de paquetes:
Respuesta al desafio(Challenge response)
Los usuarios que no tengan permiso para estas medidas solo podrn hacer conjeturas. Los paquetes contienen normalmente un mensaje de respuesta incluyendo el desafio para ser mostrado al usuario el cual contiene el numero para encriptar y que no volvera a ser repetido nunca mas. Normalmente se obtiene de un servidor externo que conoce que tipo de autentificador tienen los usuarios autorizados y puede aleatoriamente elegir uno de estos codigos. El usuario introduce el dispositivo, calcula la respuesta que necesita para el usuario en cuestion y se envia al servidor RADIUS.
Tipos de paquetes:
Peticion de registro (Accounting-Request)
Los paquetes de peticion de registro son enviados del cliente (normalmente al NAS o a un proxy) al servidor RADIUS de registro proporciona informacion usada para que le pueda proveer registro. El cliente transmite un paquete RADIUS con el campo de codigo con el numero 4(Accounting-request). Una vez recibido la peticion el servidor transmite un Accounting.response, respondiendo si a conseguido recoger la peticion de registro . Cualquier atributo valido en un paquete de peticion de acceso o aceptacion es valido en un paquete de RADIUS de registro, excepto los siguientes que deben estar obligatoriamente: User-Password, CHAP-Password, Reply-Message, State. NAS-IP-Address y NAS-Identifier.
Tipos de paquetes:
FUNCIONAMIENTO: Registro
Cuando el cliente esta configurado para el uso de RADIUS Accounting(registro) al principio generara un paquete de registro al servidor RADIUS de registro remoto, describiendo el tipo y servicio anunciando el servicio que quiere obtener y el usuario del cual procede. Si llega al servidor ste mandara una confirmacion de que ha recibido el paquete. Para detener el servicio el cliente manda un Accounting stop para detener el servicio. Igualmente si llega al servidor, ste lo confirmara. La peticion de registro(Accounting-Request) es enviado al servidor de RADIUS de registro a traves de la red. Es recomendable que el cliente continue enviando peticiones hasta que rebia la confirmacion. Si no le llega respuesta durante un periodo de tiempo, la peticion se volvera a enviar un numero limitado de veces. El cliente puede tanbien enviar peticiones a un servidor alternativo como en el caso de servidores de autorizacion y autenticacion. Un servidor alternativo puede ser usado despues de cierta cantidad de intentos desde que el primer servidor falla. El servidor RADIUS de registro puede hacer peticiones de otros servidores de manera que pueda confirmar la peticion, en cuyo caso actuara de cliente.
PROXY RADIUS
Con un proxy RADIUS un servidor RADIUS recibe una peticion de autenticacion (o de registro) del cliente, la reenvia al servidor RADIUS remoto, recibe la respuesta del servidor y la devuelve al cliente. Asi pues lo que hace es redirigirla a otros servidores RADIUS de niveles superiores en funcion de una directiva definida. Es muy utilizado por las ISPs. De este modo sera posible autenticar clientes en distintos servidores radius que pertenezcan a dominios diferentes, en funcin de criterios como el dominio de inicio de sesin. En este caso cuando un cliente quiere conectar con el servidor RADIUS envia su peticion al servidor de proxy, que se encargara de enviarlo al servidor RADIUS remoto. Cuando le llega al servidor RADIUS este envia la respuesta que sea al servidor proxy que se encargara de que le llege al cliente.
PROXY RADIUS
Un servidor RADIUS puede actuar como servidor remoto sobre unos dominios y de proxy para otros. Los servidores de proxy pueden ademas comuncarse entre si para crear una cadena de proxies. En los paquetes que envian los servidores proxy con RADIUS se debe incluir siempre el atributo del estado-proxy. Si un servidor proxy omite este atributo sobre una peticion de acceso, tendra que adjuntarlo antes de ser enviado al cliente.
PROXY RADIUS
IMPLEMENTACIONES: Servidores
Existe un gran nmero de servidores RADIUS principalmente para entornos UNIX, cada uno de ellos comparte muchas caractersticas similares aunque cada servidor busca explotar factores tecnolgicos que le den la ventaja sobre los dems. Hay servidores comerciales como tambin los hay con licencia libre, siendo FreeRADIUS , Criston y Radiador los servidores ms populares. Se detallara mas sobre FreeRadius antes de la practica, ya que es la implementacion que usaremos. Los servidores que se vern a continuacin son: Cistron, ICRadius, XtRADIUS, OpenRADIUS, YARD RADIUS, J Radius, Radiador, AXL RADIUS, Oyssey , Cisco Acces s R egis trar.
Es libre (bajo la licencia GNU GPL). Soporta el acceso basado en huntgropus. El archivo de usuarios se procesa en orden, es posible mltiples entradas por defecto, y todas las entradas pueden ser opcionalmente "fall throught" Atrapa todos los archivos de configuracin en memoria, incluyendo los archivos de usuarios. Mantiene una lista de entrada de usuarios. Se registra tanto en el formato de archivos wtmp como en los archivos detallados de registro RADIUS. Soporta el uso simultneo de parmetros X. Soporta atributos especificados del vendedor, incluyendo los no estandarizados USRs. Soporta proxing. Soporta el paquete alive Puede replicar datos de uso de cuentas entre servidores.
ICRadius usa bases de datos de MySQL para guardar toda la informacin necesaria como archivos de usuarios, archivos de directorios, y tambin enva informacin a la base de datos. Esto, en una forma alterna, permite la manipulacin y extraccin de datos de una manera rpida y eficiente, con la facilidad y flexibilidad ofrecida por MySql. ICRadius es completamente gratis bajo la licencia GPL. Este sistema usa un formato tabular lo cual facilita el uso de bases de datos
La diferencia ms importante entre XTRadius y otros servidores RADIUS, es que permite ejecutar scripts que pueden ser modificados completamente para manejar autentificacin y uso de cuentas. El beneficio que da esta caracterstica, es que en lugar de usar el mismo archivo de usuarios RADIUS, o el sistema de archivo de contrasea para la autenticacin, se puede llamar a una aplicacin de scripts para preguntar a cualquier fuente (tal como una base de datos SQL), y revisar las condiciones vlidas antes de permitir la entrada del usuario. A diferencia de otras soluciones, no requiere parche. Este servidor esta basado en el servidor Radius Cistron por lo cual incluye todas sus caractersticas, como tambin otras mejoras. La comunicacin entre el servidor XtRadius y los scripts externos se da usando parmetros de lnea de comando o por variables de ambiente .
Soporta RadSEC seguridad confiable del proxying RADIUS. Radiator ahora soporta mas mtodos de autenticacin 802.1X que cualquier otro servidor RADIUS dando una amplia gama para escoger clientes de red 802.1X Incluye certificados privados para clientes y servidores para probar la autenticacin 802.1X. Radiador incluye caractersticas que no pueden ser encontradas en ningn otro servidor como prevencin de acceso doble, reescritura del nombre de usuario, atributos especficos del vendedor, bloqueo en algn tiempo del da, e interfase grafica de usuario para pruebas. Incluye CGIs para configuracin, reportes, y utilidades de administracin de bases de datos y mucho, mucho mas. Trabaja con la mayora de NASs, VDPN, ADSL y puntos de acceso inalmbrico. Incluye todo el cdigo fuente. Radiador puede ser comprado para ser usado en un solo servidor , o como parte de alguno de los paquetes ofrecidos , para la empresa, para los profesionales , para la casa, etc. Trabaja en la mayora de las plataformas. Unix, Linux, Windows, Mac, VMS.
Establecer polticas de acceso basadas en usuarios, para incrementar la seguridad del control de acceso. Acceder a registros de cuentas localmente, o mandarlas a la central del servidor de cuentas, para proveer aun registro comprensible de los accesos de red WLAN. Explicacin exacta para los usuarios de cuentas que se quieren conectar va EAPTTLS, aun si ellos quieren tomar ventaja de la habilidad para ocultar su identidad. Autenticacin de usuarios que se estn conectando va PEAP.
Puntos extendidos: Los puntos extendidos de Cisco Acces s R egistrar soporta funciones adicionales a la lgica del servidor RADIUS para modificar o realzar funcionalidad extra. Integracin de directorios: Los directorios sirven como depsito central para la informacin del usuario, los perfiles del servicio, los perfiles de mando de cuenta, y otra informacin de servicio. Cisco Access R egistrar autentica a usuarios contra un directorio de LDAP y proporciona la flexibilidad de trabajar con una variedad de configuraciones de directorios. Proxy AAA: Cisco Access R egistrar soporta Proxy RADIUS , envs de autorizar o autenticar en base a un directorio , el servidor selectamente usa Proxy para enviar una peticin AAA a otro proveedor de servicios, a otro servidor RADIUS o a un servidor RADIUS que hace de cliente que autentica y autoriza usuarios en base a otros directorios o bases de datos. Administracin de sesin y direcciones: Cisco Access R egistrar proporciona administradores de recursos que manejan la locacin dinmica de direcciones IP o IPX, y refuerza limite de sesiones de grupo y usuarios alrededor de mltiples servidores de acceso de red.
C lientes R ADIUS
Son pocas las opciones gratis disponibles, a diferencia de los servidores RADIUS en donde hay muchas opciones gratuitas, existe una tendencia por comercializar las licencias de los clientes, este es el caso de dos de los clientes MDC Aegis y Odyssey , clientes que no hace mucho tiempo se ofrecan gratis, ahora se ofrecen de manera comercial por el gran auge que han tenido las redes inalmbricas y por la necesidad creciente de buscar mecanismos para mantenerlas seguras. Los clientes que se vern son: Xsupplicant, Boingo, Aegis, Oddysey, Monarca, AXL.
Clientes comerciales:
Monaca RADIUS
Monaca entrega una suit de estndares fciles de usar, confiables y de alto desempeo basados en soluciones de seguridad embedded que incluye la especifiobre cacin RADIUS. El cliente RADIUS de Monaca se comunica a travs de la red con un servidor RADIUS, que guarda los nombres de usuario, las contraseas, y autoriza el acceso al usuario, a sistemas o aplicaciones. Caractersticas:
RFC 2865 (RADIUS), RFC-2866 (Uso de cuentas en RADIUS), RFC-1994 (CHAP) Zero threaring: slo se activa cuando es llamado, usa muy pocos recursos del sistema. Uso completo de cdigo entrante: Una robusta arquitectura evita errores en condiciones demandantes. Soporte de mtodos de autenticacin PAP, CHAP, Autenticacin Mltiple de Desafo Respuesta. Avanzadas apis muy bien documentadas Fcil de instalar y usar. Seguridad de alto grado para empresas, sin comprometer funcionalidad de los dispositivos Ciclo de desarrollo rpido: Te permite desarrollar sistemas para substituirlos por los componentes comerciales usados.
Kerberos
Kerberos es un protocolo de seguridad creado por MIT que usa una criptografa de claves simtricas para validar usuarios con los servicios de red, evitando as tener que enviar contraseas a travs de la red. Al validar los usuarios para los servicios de la red por medio de Kerberos, se frustran los intentos de usuarios no autorizados que intentan interceptar contraseas en la red.
Ventajas de Kerberos
Los servicios de redes ms convencionales usan esquemas de autenticacin basados en contraseas. Tales esquemas requieren que cuando un usuario necesita una autenticacin en un servidor de red, debe proporcionar un nombre de usuario y una contrasea. Lamentablemente, la informacin de autenticacin para muchos servicios se transmite sin estar encriptada. Para que un esquema de este tipo sea seguro, la red tiene que estar inaccesible a usuarios externos, y todos los usuarios de la red deben ser de confianza. An en este caso, una vez que la red se conecte a la Internet, ya no puede asumir que la red es segura. Cualquier intruso del sistema con acceso a la red y un analizador de paquetes puede interceptar cualquier contrasea enviada de este modo, comprometiendo las cuentas de usuarios y la integridad de toda la infraestructura de seguridad. El primer objetivo de Kerberos es el de eliminar la transmisin a travs de la red de informacin de autenticacin. Un uso correcto de Kerberos erradica la amenaza de analizadores de paquetes que intercepten contraseas en su red.
Desventajas de Kerberos
A pesar de que Kerberos elimina una amenaza de seguridad comn, puede ser difcil de implementar por una variedad de razones: La migracin de contraseas de usuarios desde una base de datos de contraseasestndar UNIX, tal como /etc/passwd o/etc/shadow, a una base de datos de contraseas Kerberos puede ser tediosa y no hay un mecanismo rpido para realizar esta tarea.
Kerberos presupone que cada usuario es de confianza pero que est utilizando una mquina no fiable en una red no fiable. Su principal objetivo es el de prevenir que las contraseas no encriptadas sean enviadas a travs de la red. Sin embargo, si cualquier otro usuario aparte del usuario adecuado, tiene acceso a la mquina que emite tickets usados para la autenticacin llamadoCentro de distribucin de llaves(KDC) , el sistema de autenticacin de Kerberos completo est en riesgo.
Desventajas de Kerberos
Para que una aplicacin use Kerberos, el cdigo debe ser modificado para hacer las llamadas apropiadas a las libreras de Kerberos. Las aplicaciones que son modificadas de esta forma son consideradaskerberizadas. Para algunas aplicaciones, esto puede suponer un esfuerzo excesivo de programacin, debido al tamao de la aplicacin o su diseo. Para otras aplicaciones incompatibles, los cambios se deben realizar en el modo en que el servidor de red y sus clientes se comunican; de nuevo, esto puede suponer bastante programacin. En general, las aplicaciones de cdigo cerrado que no tienen soporte de Kerberos son usualmente las ms problemticas.
Si se utiliza Kerberos en la red, hay que recordar que si se transmite cualquier contrasea a un servicio que no usa Kerberos para autenticar, se corre el riesgo de que el paquete pueda ser interceptado. As, la red no obtendr ningn beneficio de usar Kerberos. Para asegurar su red con Kerberos, solo debe utilizar las versioneskerberizadas(que funcionen con Kerberos) detodaslas aplicaciones cliente/servidor que envien contraseas sin encriptar o no utilizarningunade estas aplicaciones en la red.
Practica 1- Simple
Configuracion Freeradius
Hacemos apt-get install freradius para actualizar el demonio a la version 2.04.La configuracin del servidor se hace mediante el fichero radiusd.conf del directorio /etc/freeradius/. Aqu podemos seleccionar aspectos relacionados con el servidor (ficheros de log, parmetros de uso mximo, usuarios, grupos, ...), bases de datos autilizar para autenticar y autorizar (ficheros, SQL, LDAP, ...), mtodos de AAA, etc... radiusd.conf se subdivide en varios ficheros mediante la directiva $INCLUDE: eap.conf: Se utiliza para configurar el tipo de EAP a emplear clients .conf: Tiene la lista de clientes que estn autorizados para usar los servicios de AAA proporcionados. proxy.conf: Este fichero configura directivas relacionadas con el funcionamiento en modo proxy y la lista de realms. dictionary: contiene el valor numrico que tiene cada atributo y valor. us ers : contiene informacin sobre la autenticacin de suplicantes, de forma que incluso podemos aadir credenciales en forma de usuario y contrasea para permitir una configuracin sencilla de usuarios Otros ficheros como sql.conf (para configurar el acceso a bases de datos SQL), policy.conf, etc. Vamos a ver algunas opciones de arranque del servidor: freeradius -s -X & -s : Permite ejecutar el servicio en modo de servidor simple. -X: Permite el depuramiento. &: Correr el proceso en el background.
Practica 1- Simple
Primero importante asegurarse de cual es el nombre de nuestro servidor. Para ello hacemos hostname y nos devolvera el nombre. Si no aparece nada deberemos establecerle uno. Haciendo hostname x, donde x es el nombre que le pondremos a nuestro servidor. En el fichero /etc/hosts debemos asegurarnos de que la direccion loopback tiene el nombre del servidor. En la maquina virtual del cliente configuramos este archivo tambien, aadiendo la linea siguiente: 192.168.182.1 servidor //donde servidor es el nombre de hostname
Practica 1- Simple
Ahora mnodificaremos el fichero de configuracion de clientes en el servidor, para que pueda conectarse: Aadimos en cualquier parte del fichero lo siguiente: client 192.168.182.2 { netmask = 32 secret = uno require_message_authenticator = no shortname = da igual nastype = other }
Hay una copia de es te fichero de config uracion en el g z Ficheros deconf3
Ahora mnodificaremos el fichero de configuracion de usuarios en el servidor, para crear un nuevo usuario. Aadimos en cualquier parte del fichero lo siguiente: javi Cleartext-Password := "password
Hay una copia de es te fichero de config uracion en el g z Ficheros deconf3
Practica 1- Simple
Una vez hecho esto usamos una de las ventanas de consola de servidor para arrancar el demonio de radius. freeradius -X Si todo funciona aparecera un mensaje asi:
Practica 1- Simple
Ahora solo queda ejecutar el comando en cliente para testear la conexion. En la otra consola de servidor podemos usar un capturador para comprobar que clase de paquetes se intercambian. El comando para ejecutar en modo test tiene la siguiente sintaxis: radtest [-d raddb_directory] user password radius-server nas-port-number secret [ppphint] [nasname] En mi caso: radtest javi password servidor 1812 uno Si os aparece un mensaje como este significara que la peticion a sido enviada y el servidor ha respondido con una aceptacion.
Practica 1- Capturas
Vamos a ver que clase de paquetes se comparten dependiendo de la informacion en la peticion: Si introducimos de forma correcta todos los parametros:
Wireshark reconoce los paquetes de Radius. El cliente envia la peticion de acceso con el codigo 1, Access-Request. Si hacemos un UDP stream vemos el nombre de usuario y diferentes caracteres correspondientes a la contrasea. El servidor responde con una aceptacion de la peticion. Access- Accept(2) donde 2 como hemos visto corresponde al codigo de identificacion de este paquete.
Practica 1- Capturas
Ahora hemos cambiado el parametro de contrasea del cliente, y sucede lo siguiente:
El cliente envia la peticion. El servidor compara los datos con los de sus ficheros de configuracion. Se da cuenta de que el parametro incorrecto no es del usuario sino del cliente. Luego directamente envia una denegacion, ya que todos los parametros deben ser correctos. El mensaje de rechazo tiene el identificador 3 Access-Reject. Este mensaje ademas incorpora un texto de error informando sobre el parametro equivocado. Vemos ademas que el cliente intenta conectarse por todos los medios, reenviando la peticion.
Version 2.7 del nucleo Version 5.1 del sistema de ficheros de Fedora Version 2.8 del Kernel Usaremos: Freeradius: encargado de realizar las funciones AAA (Autenticacin, Autorizacin, Registro). Chillispot: Para hacer el portal cautivo, proporcionara una interfaz para Freeradius. Apache2: Para que el usuario pueda acceder y autenticarse con el servicio. Openldap: Para almacenar la base de datos de los usuarios.
NAS
Un Network Access Server (NAS) es un sistema que proporciona acceso a la red. En algunos casos tambin se conoce como Remote Access Server (RAS) o Terminal Server. Es un elemento que controla el acceso a un recurso protegido, que puede ser desde un sencillo telfono para VoIP o una impresora, hasta el acceso a una red inalmbrica o a Internet (proporcionado por un ISP). Es importante no confundir la definicin de NAS que hemos dado en este apartado con el NAS como Network-Attached Storage, que comunmente se refiere a discos duros conectados directamente a una red. Cuando un cliente quiere hacer uso de uno de estos servicios se conecta a NAS, quien a su vez se conecta a un servidor de AAA (tpicamente RADIUS) preguntando si los credenciales proporcionados por el cliente son vlidos. Basndose en su respuesta, NAS le permitir acceder o no a este recurso protegido.
NAS
NAS
El sistema NAS no contiene ninguna informacin sobre los usuarios que se pueden conectar, sino que utiliza esta informacin para enviarla a RADIUS, y que ste le informe sobre los permisos del cliente. Si nos centramos en el proceso de AAA, el cliente sera el sistema que proporciona el acceso a la red (por ejemplo NAS), mientras que el servidor es el sistema que autoriza o no dicho acceso (por ejemplo RADIUS), al contrario de lo que se conoce como la tipica estructura Servidor-cliente. Una ventaja del uso de RADIUS es que sus clientes tan slo tienen que implementar el protocolo de comunicacin con RADIUS, y no todas las posibilidades de AAA existentes (PAP, CHAP, LDAP, kerberos, mySQL, etc.). En el ejemplo del punto de acceso, tan slo necesitamos implementar una solucin NAS que realice las consultas a RADIUS. Otra ventaja del protocolo RADIUS es que, en su comunicacin con NAS, nunca transmite las contraseas directamente por la red, sino que usa algoritmos para ocultar las contraseas como MD5. Aunque es aconsejable utilizar sistemas adicionales de proteccin para cifrar el trfico de RADIUS, como puede ser Ipsec.
Practica 3 Todo en 1
Practica 3 Todo en 1
Usaremos un tunel tap para simular NAT en el router, de esta forma podemos acceder a internet a traves de cualquier maquina. Para ello hemos introducido en router: iptables -t nat -A POSTROUTING -j MASQUERADE Y en router.startup hemos configurado las interfaces entre el router y el anfitrion Hay que configurar el /etc/resolv.conf en las maquinas. Si vamos a descargarnos algo de los repositorios, antes que nada hacemos apt-get update.
Usaremos Chillispot para crear el portal cautivo. No est en netkit, habra que instalarlo.
En servidor hacemos: wget http://www.chillispot.info/download/chillispot_1.0_i386.deb //para descargar el paquete dpkg -i chillispot_1.0_i386.deb //para instalarlo O directamente pasamos el fichero de /hosthome/ a la maquina virtual y lo instalamos. Si sale el problema de la clave publica: gpg --keyserver subkeys.pgp.net --recv 9AA38DCD55BE302B gpg --export --armor 9AA38DCD55BE302B | apt-key add Y asi no saltara mas el error.
Para crear el certificado hace falta descargarse, ademas del paquete make, los siguientes paquetes:
apt-get install openssl ssl-cert Esta implementacion libre de ssl nos permite crear certificados. make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem Te preguntara el nombre del servidor. Finalmente creara el certificado. a2enmod ssl //para arrancar el modulo
Vamos a crear la pagina de inicio tal y como pusimos en el fichero de chilli. Asi que hacemos: nano -w /etc/apache2/sites-available/prelogin Y dentro aadimos: <a href="http://192.168.182.1:3990/prelogin">Click here to login</a> //Enlace al script Con el siguiente comando redirigiremos todas las peticiones http a la sigiente direccion. iptables -t nat -I PREROUTING 1 -s 192.168.182.0 -m tcp -p tcp --dport 80 -j DNAT --to 192.168.182.1:3990
Como hay que cambiar muchas cosas este es necesario que copiemos desde /hosthome/ Despues nos metemos en la carpeta y ejecutamos el siguiente comando: cd /etc/apache2/sites-available/ a2ensite ssl Hacemos el siguiente comando para reiniciar el demonio: /etc/init.d/apache 2 reload
http://www.wi-fiplanet.com/tutorials/article.php/10724_3114511_2 Radius en WLAN http://www.interlinknetworks.com/features.htm Especificaciones http://www.untruth.org/~josh/security/radius/radius-auth.html Paquetes Radius http://technet.microsoft.com/es-es/library/cc781821(WS.10).aspx Informacion de Microsoft http://www.ietf.org/rfc/rfc2866.txt RFC 2865 http://www.faqs.org/rfcs/rfc2866.html RFC2866 "Los protocolos en las redes de ordenadores" Antonio Salavert Casamor "RADIUS / AAA / 802.1x" Yago Fernndez Hansen
Curiosidad http://nonroot.blogspot.com/2009/08/how-to-pass-wargame-cp-2009-networking.html