Você está na página 1de 38

UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA ELECTRICA REDES DE COMPUTADORAS II CICLO II 2011

IMPLEMENTACION DE UN PORTAL CAUTIVO CON RADIUS Y PFSENSE

EXAMEN #1

ESTUDIANTES: David Samuel Martnez Lpez Tony Edwin Fuentes Gonzlez

PROFESOR: ING. CARLOS POCASANGRE

CIUDAD UNIVERSITARIA

LUNES 03 OCTUBRE 2011

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

INTRODUCCIN
Con el pasar de los ltimos aos se ha venido implementando cada vez en ms lugares la tecnologa de acceso inalmbrico a redes de rea local; en las empresas principalmente para brindarles a los usuarios movilidad y mediante ello puedan aumentar su productividad y eficiencia en el trabajo del da a da, y en lugares pblicos (tales como aeropuertos, cafs, parques, entre otros) para brindarles, como un servicio de valor agregado, el acceso a la Internet por esta va. Sin embargo, principalmente en el caso de las empresas que implementen redes inalmbricas en sus ambientes, suele descuidarse el aspecto de la seguridad, abriendo as una grieta por la cual sujetos ajenos a la empresa puedan acceder a la red, leer, escribir y hasta destruir uno de los activos ms importantes que puede tener: la informacin (desde los proyectos que la empresa pretende llevar a cabo en un futuro cercano hasta las base de datos en la que puede mantener informacin confidencial sobre sus empleados y clientes ms importantes). Con este documento se pretende explicar la implementacin de un portal cautivo con la distribucin libre de RADIUS y como base de datos a MySQL para el servidor de autenticacin y como router usaremos pfSense instalado en una computadora el cual crearemos una isla para la seguridad de nuestra LAN por medio de polticas de acceso por medio de Access list y nuestro portal cautivo.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

OBJETIVOS.
Estudiar la tecnologa Wi-Fi (IEEE 802.11), enfocndonos en el anlisis de los aspectos de seguridad que en ella se contemplan. Disear e implementar una red inalmbrica considerando los ms altos grados de seguridad: con autenticaciones usando FreeRadius y comunicaciones seguras implementando Access list con pfsense. Implementar una red con el mnimo de interfaces en el router usando el concepto de vlan usando un switch capa tres para la programacin de varias subredes.

MARCO TEORICO.
Introduccin a pfSense
pfSense es una distribucin basada en FreeBSD, derivada de m0n0wall. Su objetivo es tener un cortafuegos (firewall) fcilmente configurable a travs de una interfase web e instalable en cualquier PC, incluyendo los miniPC de una sola tarjeta. Se trata, por tanto, de una solucin muy completa, bajo licencia BSD y, por tanto, de libre distribucin. El cortafuegos forma parte del Kernel del sistema. De hecho, se trata del Packet Filter (PF) originario de OpenBSD, considerado com el sistema operativo ms seguro del mundo. Packet Filter (PF) est presente como estndar en FreeBSD desde noviembre de 2004. Incluye funcionalidades como el regulador de caudal ALTQ, que permite asignar prioridades por tipo de trfico. Los desarrolladores de pfSense escogieron FreeBSD en lugar de OpenBSD por su facilidad de instalacin en el mundo de lps PCs y porqu ya exista BSD Installer, una versin muy, muy reducida de FreeBSD. Todo ello da una gran flexibilidad a la solucin pfSense, ya que se puede montar tanto en equipos miniPC (basados en una sola placa) que emplean como disco una Compact Flash como en PC estndar con disco duro. En este ltimo caso se pueden aadir paquetes como Snort, Squid, Radius, etc.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

La versin utilizada de PFSense fue la versin beta 2.0 descargada como una imagen ISO desde el sitio http://www.pfsense.org/ en la pestaa downloads selecciona una regin y listo para ser utilizada para correrla desde el CD-ROM guardando todos los cambios en la USB.

Introduccin a RADIUS
RADIUS (acrnimo en ingls de Remote Authentication Dial-In User Server). Es un protocolo de autentificacin y autorizacin para aplicaciones de acceso a la red o movilidad IP. Utiliza los puertos 1812 y 1813 UDP para establecer sus conexiones (para autenticar/autorizar y contabilizar, respectivamente). Puntos importantes: Los sistemas embebidos generalmente no pueden manejar un gran nmero de usuarios con informacin diferente de autenticacin. Requiere una gran cantidad de almacenamiento. RADIUS facilita una administracin centralizada de usuarios. Si se maneja una enorme cantidad de usuarios, continuamente cientos de ellos son agregados o eliminados a lo largo del da y la informacin de autenticacin cambia continuamente. En este sentido, la administracin centralizada de usuarios es un requerimiento operacional. Debido a que las plataformas en las cuales RADIUS es implementado son frecuentemente sistemas embebidos, hay oportunidades limitadas para soportar protocolos adicionales. Algn cambio al protocolo RADIUS deber ser compatible con clientes y servidores RADIUS pre-existentes. Un cliente RADIUS enva credenciales de usuario e informacin de parmetros de conexin en forma de un mensaje RADIUS al servidor. ste autentica y autoriza la solicitud del cliente y enva de regreso un mensaje de respuesta. Los clientes RADIUS tambin envan mensajes de cuentas a servidores RADIUS. Los mensajes RADIUS son enviados como mensajes UDP (User Datagram Protocol). El puerto UDP 1812 es usado para mensaje de autenticacin RADIUS y, el puerto UDP 1813, es usado para mensajes de cuentas RADIUS. Algunos servidores usan el puerto UDP 1645 para mensajes de autenticacin y, el puerto 1646, para mensajes de cuentas. Esto ltimo debido a que son los puertos que se usaron inicialmente para este tipo de servicio. Anteriormente habamos mencionado que Radius autentica, autoriza y contabiliza La tupla autenticacin, autorizacin y registro es ms conocida como AAA, al ser ste su acrnimo de su denominacin original inglesa Authentication, Authorization, and Accounting. Veamos a continuacin a qu se refiere cada uno de estos trminos:

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Autenticacin (authentication) hace referencia al proceso por el cual se determina si un usuario tiene permiso para acceder a un determinado servicio de red 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. Autorizacin (authorization) se refiere a conceder servicios especficos (entre los que se incluye la negacin de servicio) a un determinado usuario, basndose para ellos en su propia autenticacin, los servicios que est solicitando, y el estado actual del sistema. 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. No se debe confundir los trminos autenticacin con autorizacin. Mientras que la autenticacin es el proceso de verificar un derecho reclamado por un individuo (persona o incluso ordenador), la autorizacin es el proceso de verificar que una persona ya autenticada tiene la autoridad para efectuar una determinada operacin. Registro (accounting, a menudo traducido tambin como contabilidad) 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.

Es interesante el uso del protocolo RADIUS cuando tenemos redes de dimensiones considerables sobre las que queremos proporcionar un servicio de acceso centralizado (aunque posiblemente jerarquizado por medio de diversos servidores RADIUS). Por este motivo, uno de los principales usos de RADIUS se encuentra en empresas que proporcionan acceso a Internet o grandes redes corporativas, en un entorno con diversas de tecnologas de red. 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. En general, NAS 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). 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. El sistema NAS no contiene ninguna informacin sobre los usuarios

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

que se pueden conectar ni sus credenciales, sino que utiliza esta informacin para enviarla a RADIUS, y que ste le informe sobre los permisos del cliente. Autenticacin EAP/PEAP para FreeRadius EAP Extensible Authentication Protocol (EAP) es una autenticacion framework usada habitualmente en redes inalambricas. EAP una estructura de soporte, no un mecanismo especifico de autenticacion. Provee algunas funciones comunes y negociaciones para el o los mecanismos de autenticacion escogidos. Estos mecanismos son llamados metodos EAP, de los cuales se conocen actualmente unos 40. Los metodos modernos capaces de operar en ambientes inalmbricos incluyen EAP-TLS, EAP-SIM, EAP-AKA, PEAP, LEAP y EAP-TTLS. PEAP Protected Extensible Authentication Protocol (PEAP) es un metodo para transmitir de manera segura informacion de autenticacion, incluyendo contrasenas, sobre redes cableadas e inalambricas. Hay que tener en cuenta que PEAP no es un protocolo de encriptacion, sino que como otros tipos EAP solo autentica un cliente a una red. El servidor RADIUS comprueba que la informacin es correcta utilizando esquemas de autentificacin como PAP, CHAP o EAP. Si es aceptado, el servidor autorizar el acceso al sistema del ISP y le asigna los recursos de red como una direccin IP. EAP es un marco general de autenticacin, y no un mecanismo de autenticacin concreto. EAP proporciona algunas funciones comunes y un mtodo para negociar el mecanismo de autenticacin a usar. Actualmente hay ms de 40 mtodos distintos. Es definida en el RFC 3748. Aunque el protocolo EAP no est limitado a LAN inalmbricas y puede ser usado para autenticacin en redes cableadas, es ms frecuentemente usado en redes inalmbricas. Recientemente los estndares WPA y WPA2 han adoptado cinco tipos de EAP como sus mecanismos oficiales de autenticacin.

DESAROLLO.

MATERIAL UTILIZADO

Hardware: Una PC con 4 tarjetas de red(solo son necesarias dos) y un CD-ROM donde correremos PFSense para que sirva como Router. Una laptop con Debian squeeze(puede ser cualquier otra versin linux) donde se instalara el servidor RADIUS y MySQL. Un Access point(ya sea linksys, DLINK, otros ). Una minilaptop para prueba de portal caultivo

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Switch capa tres allied Telesis USB donde se guardara la configuracin de PFSENSE CD con la ISO de PFSENSE para bootear la PC que servir como router de frontera

Software: PfSense version Beta 2.0(http://www.pfsense.org/) La versin de FreeRADIUS que vamos a instalar es la 2.1.1, que se puede bajar directamente de http://freeradius.org/download.html Librerias OpenSSL para los mdulos EAP de server RADIUS MySQL server para la manipulacin de base de datos de usuarios

PARTE I: Instalacin y configuracin del servidor FreeRADIUS


FreeRADIUS FreeRADIUS es un paquete de software de cdigo abierto y libre distribucin que implementa diversos elementos relacionados con RADIUS, tales como una biblioteca BSD para clientes, mdulos para soporte en apache, y lo que ms nos interesa en este punto, un servidor de RADIUS. El servidor de FreeRADIUS es modular, para facilitar su extensin, y es muy escalable. Adems, tiene casi todas las opciones que un usuario puede necesitar: Para realizar las tareas de AAA puede almacenar y acceder a la informacin por medio de mltiples bases de datos: LDAP (AD, OpenLDAP,), SQL (MySQL, PostgreSQL, Oracle,) y ficheros de texto (fichero local de usuarios, mediante acceso a otros Reales, fichero de sistema /etc/passwd,) Soporta prcticamente toda clase de clientes Radius (por ejemplo, ChilliSpot, JRadius, mod_auth_radius, pam_auth_radius, Pyrad, extensiones php de RADIUS, etc) Se puede ejecutar en mltiples sistemas operativos: Linux (Debian, Ubuntu, Suse, Mandriva, Fedora Core, etc.), FreeBSD, MacOS, OpenBSD, Solaris, e incluso MS Windows por medio de cygwin. Soporta el uso de proxies y la replicacin de servidores.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Instalacin La versin de FreeRADIUS que vamos a instalar es la 2.1.1, que se puede bajar directamente de http://freeradius.org/download.html, sin embargo vamos a instalar previamente otros paquetes. Actualmente, FreeRADIUS permite su instalacin mediante la descarga y compilacin del cdigo fuente. Sin embargo, para su mejor manejo, resulta ms prctico convertir el cdigo fuente en un paquete Debian e instalarlo desde el mismo sin embargo es un proceso que requiere mucho conocimientos de cmo funciona Debian por tanto lo haremos de una manera mas sencilla por medio de bajar el compilador. Cabe mencionar que buildessential no funciona en cualquier sistema Debian sin embargo es necesario para la debida compilacin del paquete de freeradius. Instalacin de MySQL FreeRadius puede trabajar con MySQL como base datos para los usuarios que se intenten autenticar. Para instalar MySQL en un sistema operativo basado en Debian, como root ingresemos el siguiente comando en una terminal: # apt-get install mysql-server Para descargar desde consola FreeRadius como root ponemos la siguiente lnea: # wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.10.tar.gz Antes de compilar e instalar freeradius bajamos las librerias de encriptamiento SSL para establecer conexiones seguras ya que si no se encuentra instalado los modulos para EAP/PEAP de FreeRadius no se instalaran. Para instalar SSL en un sistema operativo basado en Debian, como root ingresemos el siguiente comando: # apt-get install libssl-dev Luego de descargar el codigo fuente de FreeRadius, se procede a descomprimirlo e instalarlo. En una terminal, ubquese en el directorio donde descargo la fuente, y como root ejecute los siguiente comandos: # tar xzvf freeradius-server-2.1.10.tar.gz Recomendamos hacer una copia de seguridad del archivo por si existen errores en las modificaciones # cp -r freeradius-server-2.1.10.tar.gz /

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Antes que compilemos instalaremos el compilador # cd /freeradius-server-2.1.10.tar.gz / # apt-get install build-essential En primer lugar, debemos hacer una operacin de configuracin. Mediante la orden ./configure -help podemos ver las opciones disponibles, con esto estamos listos y ejecutamos la siguiente linea: # ./configure without-rlm_smb without-rlm_perl without-rlm_ldap without-rlm_krb5 Una vez configurado el proceso, realizaremos la compilacin mediante make, y posteriormente, si no ha ocurrido ningn error, instalaremos el software en el sistema mediante make install como superusuario. # make # make install

Configuracion de FreeRadius Configuracin de MySQL Vamos a configurar FreeRadius para que trabaje conjuntamente con MySQL. Para esto tenemos que crear la base de datos que usara FreeRadius, crear un usuario para conectarse a MySQL, agregar un usuario de prueba en la base de datos para conectarse a FreeRadius y por ultimo configurar FreeRadius para que trabaje con esta base de datos. Los comandos necesarios para crear la base de datos llamada radius y crear un usuario con el mismo nombre y contrasea radpass. Luego llenamos la base de datos a partir del esquema que trae FreeRadius:

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

en la lnea de comandos, se hace lo explicado abajo, lo cual correr un script que FreeRADIUS /etc/freeradius/sql/mysql y hay se encuentra las tables de nuestro sistema en schema.sql estan todas las tablas que se agregan a la base de datos mysql, as ya se cuenta con una base de datos para la autenticacin. Las tablas ms importantes son: usergroup: Aqu se define a qu grupo pertenece cada usuario. Sus atributos son: id. Identificador de registro. UserName. Nombre de usuario. GroupName. Grupo al que pertenece el usuario. radcheck: Aqu se definen las contraseas de cada usuario. Sus atributos son: id. Identificador de registro. UserName. Nombre de usuario. Attribute. Tipo de contrasea. En nuestro caso, User-Password. Op. Es el operador que se usar para la comprobacin. Para nosotros ==. Value. La contrasea. radreply: En esta tabla se definen los atributos sobre la conexin y sesin de los usuarios; por ejemplo, IP asignada y tiempo de espera mximo. En nuestro caso, permitimos que se asignen los de DEFAULT contenidos en el archivo users.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Ahora crearemos un usuario para hacer las pruebas de autenticacin con FreeRadius que se explicaran ms adelante, los comandos necesarios se muestran a continuacin: mysql> INSERT INTO radcheck( 'username','attribute','op','value')VALUES('usuario','CleartextPassword', ':=', 'usuario'); mysql> INSERT INTO radcheck VALUES (6,'david','Cleartext-Password',':=','david'); mysql> INSERT INTO radcheck VALUES (5,'francisco','Cleartext-Password',':=','francisco'); mysql> INSERT INTO radcheck VALUES (4,'rodrigo','Cleartext-Password',':=','rodrigo'); mysql> INSERT INTO radcheck VALUES (3,'user3','Cleartext-Password',':=','usuario3'); mysql> INSERT INTO radcheck VALUES (2,'user2','Cleartext-Password',':=','usuario'); Al ejecutar dentro de MySQL la primera lnea les dar error debido a que ya existe este formato dentro de la tabla Radcheck por lo que solo necesitamos crear los siguientes usuarios con el ID incrementndolo al final tendremos una tabla como la siguiente:
mysql> use radius; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select * from radcheck; +----+-----------+--------------------+----+-----------+ | id | username | attribute | op| value | +----+-----------+--------------------+----+-----------+ | 1 | usuari | Cleartext-Password | := | usuario | | 2 | user2 | Cleartext-Password | := | usuario | | 3 | user3 | Cleartext-Password | := | usuario3 | | 4 | rodrigo | Cleartext-Password | := | rodrigo | | 5 | Francisco | Cleartext-Password | := | Francisc | | 6 | david | Cleartext-Password | := | david | +----+-----------+--------------------+-----+----------+ 6 rows in set (0.00 sec)

Configuracin FreeRADIUS cuenta con diversos archivos que deben configurarse para lograr que funcione como se requiere. Los principales son: radiusd.conf, users, clients.conf, sql.conf y eap.conf, todos localizados en /etc/freeradius. A continuacin se describe la configuracin que debe haber en cada uno de ellos. Radiusd.conf habilitaremos la autenticacion de usuarios en mysql, para ello editamos el archivo /etc/freeradius/radiusd.conf; all descomentamos la linea include sql.conf

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

root@samaeldebian:/home/david# cd /usr/local/etc/raddb/ root@samaeldebian:/usr/local/etc/raddb# ls acct_users attrs.pre-proxy eap1.conf huntgroups preproxy_users sql attrs certs eap.conf ldap.attrmap proxy.conf sql.conf attrs.access_challenge clients1.conf example.pl modules radiusd.conf sqlippool.conf attrs.access_reject clients.conf experimental.conf policy.conf sites-available templates.conf attrs.accounting_response dictionary hints policy.txt sites-enabled users root@samaeldebian:/usr/local/etc/raddb# nano radiusd.conf
GNU nano 2.2.4 $INCLUDE clients.conf $INCLUDE eap.conf $INCLUDE sql.conf Fichero: radiusd.conf

Sql.conf Se decidi usar MySQL como backend para los usuarios de RADIUS debido a que permite administrarlos de forma simple y flexible. Es ms sencillo agregar campos a una base de datos (que puede hacerse incluso desde una aplicacin de escritorio o web) que modificar los archivos de configuracin de FreeRADIUS. Una vez que en el archivo de configuracin radiusd.conf se ha activado el soporte para SQL, debemos configurar el archivo sql.conf que contiene informacin sobre el servidor SQL y las consultas que se deben hacer para obtener la informacin de los usuarios, las modificaciones son:

GNU nano 2.2.4 # Connection info: server = "localhost" port = "1812" login = "radius" password = "radpass" Eap.conf

Fichero: sql.conf #el servidor donde est la base de datos #el nmero de Puerto de radius #el usuario creado para manipular MySQL #la contrasea del usuario de MySQL no del cliente

Se configura este archivo para que EAP (Extensible Authentication Protocol) funcione como protocolo de autenticacin. EAP se utilizar como PEAP (Protected EAP). El cual, a su vez, usar MSCHAPV2 (Microsoft Challenge-Handshake Authentication Protocol), la nica modificacin que se debe hacer es en la lnea siguiente cambiar su valor por peap como se muestra a continuacin: GNU nano 2.2.4 . . default_eap_type = peap Fichero: eap.conf

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Otro archivo que configuraremos es /usr/local/etc/raddb/sites-available/default Ac configuraremos las siguientes secciones, asegurndonos de tener des comentado los parmetros que se encuentran en rojo as como el parmetro sql en cada una de ellas: root@samaeldebian:/usr/local/etc/raddb# cd sites-available/ root@samaeldebian:/usr/local/etc/raddb/sites-available# ls buffered-sql copy-acct-to-home-server default1 example proxy-inner-tunnel status coa decoupled-accounting dhcp inner-tunnel README virtual.example.com control-socket default dynamic-clients originate-coa robust-proxy-accounting vmps root@samaeldebian:/usr/local/etc/raddb/sites-available# nano default

GNU nano 2.2.4 authorize { preprocess chap mschap digest suffix sql eap { files sql pap accounting { detail radutmp sql session { radutmp sql post-auth { sql

Fichero: default

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Users Este archivo es el que contiene la informacin de los usuarios que pueden acceder a la red, en caso de que no se use otro mtodo. En nuestro caso, este archivo no tiene mucho uso puesto que se us una base de datos en MySQL. Para lograr hacer las pruebas desde localhost necesitamos configurar el archivo /usr/local/etc/raddb/users donde definimos la linea test de la siguiente forma: GNU nano 2.2.4 test cleartext-password :="test" Fichero: users

NOTA: el fichero users 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 (ten en cuenta que estos usuarios sern realmente clientes del NAS, y no directamente del servidor RADIUS).

mschap
Ahora necesitamos modificar la configuracion del fichero mschap en el directorio modules Esta configuracion en versiones anteriores se hacia en el fichero radiusd.conf ahora tenemos que hacerlo bajo este directorio cambiamos los valores de la siguiente forma: root@samaeldebian:/usr/local/etc/raddb# cd modules/ root@samaeldebian:/usr/local/etc/raddb/modules# ls acct_unique checkval detail.log exec ippool mac2ip opendirectory perl smbpasswd unix always counter digest expiration krb5 mac2vlan otp policy smsotp wimax attr_filter cui dynamic_clients expr ldap mschap pam preprocess sqlcounter_expire_on_login attr_rewrite detail echo files linelog mschap1 pap radutmp sql_log chap detail.example.com etc_group inner-eap logintime ntlm_auth passwd realm sradutmp root@samaeldebian:/usr/local/etc/raddb/modules# nano mschap

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

GNU nano 2.2.4 mschap { use_mppe = yes require_encryption = yes require_strong = yes with_ntdomain_hack = yes

Fichero: mschap

Clients.conf Aqu se especifican los IPs o subredes desde las cuales se aceptarn peticiones. Si llega una peticin de acceso desde un IP que no est registrado aqu, el servidor RADIUS simplemente la ignora, negndole el acceso. Este es el archivo que enlaza nuestra red con el servidor por medio de que se define el cliente de radius es decir desde que IP estar escuchando las peticiones y recibiendo los paquetes del cliente para nuestra configuracin que explicaremos posteriormente. Aqu para nuestro testing vamos a definir localhost la IP asignada a la tarjeta de red de nuestro server y el Gateway del router de frontera como lo demostramos en las siguientes lneas de cdigo: root@samaeldebian:/usr/local/etc/raddb# nano clients.conf client 172.16.0.1 { secret = root shortname = pfsense } client 172.16.0.5 { secret = pincho shortname = nic }

NOTA: si se requiere adicionales configuraciones para un server radius mas coplejo se tiene que descomentarizar otras lneas en este y en todos los dems ficheros mencionados anteriormente.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Esta secret es la que se definir ya sea en tu AP o en nuestro router de frontera(gateway). Ahora solo nos resta actualizar las rutas de las nuevas libreras instaladas y levantar el servicio del demonio de radius, ejecutamos las siguientes lineas:

root@samaeldebian:/usr/local/etc/raddb# ldconfig root@samaeldebian:/usr/local/etc/raddb# radiusd -f -X


NOTA: Puede que sea necesario en algunos casos reiniciar tu ordenador antes de lanzar el demonio.

PRUEBAS Primeramente debemos hacer que nuestra IP de la NIC de nuestro server debe ser la misma siempre por lo tanto debemos modificar el archivo: root@samaeldebian:/home/david# nano /etc/network/interfaces

dentro del archivo editamos las siguientes lneas:

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).
# The loopback network interface auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 172.16.0.5 netmask 255.255.255.224 gateway 172.16.0.1 con estos cambios restablecemos la tarjeta de red por medio de: root@samaeldebian:/usr/local/etc/raddb# /etc/init.d/networking restart Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces ... (warning).

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Reconfiguring network interfaces...done.

Probamos que los cambios sean efectivos:


root@samaeldebian:/usr/local/etc/raddb# ifconfig eth0 Link encap:Ethernet HWaddr 00:26:22:a0:fc:d2 inet addr:172.16.0.5 Bcast:172.16.0.31 Mask:255.255.255.224 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:28 Base address:0xc000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:126 errors:0 dropped:0 overruns:0 frame:0 TX packets:126 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:9868 (9.6 KiB) TX bytes:9868 (9.6 KiB) Link encap:Ethernet HWaddr 00:26:82:33:a8:00 inet addr:192.168.2.3 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::226:82ff:fe33:a800/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1 RX packets:1894 errors:0 dropped:0 overruns:0 frame:0 TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1712218 (1.6 MiB) TX bytes:359792 (351.3 KiB)

wlan0

Ahora ya podemos hacer las pruebas respectivas ejecutamos los commandos siguientes: Lanzamos el demonio de radius mostrandonos algo similar como: root@samaeldebian:/usr/local/etc/raddb# radiusd -f -X . . rlm_sql (sql): Reserving sql socket id: 3 rlm_sql (sql): Released sql socket id: 3 ++[sql] returns ok ++[exec] returns noop Sending Access-Accept of id 95 to 172.16.0.5 port 48816 Finished request 0. Going to the next request Waking up in 4.9 seconds. Cleaning up request 0 ID 95 with timestamp +20 Ready to process requests.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

En otra solapa como root testeamos a radius nos mandara mensajes como los siguientes: root@samaeldebian:/home/david# radtest user2 usuario localhost 1812 testing123
root@samaeldebian:/home/david# radtest rodrigo rodrigo 172.16.0.5 1812 pincho Sending Access-Request of id 95 to 172.16.0.5 port 1812 User-Name = "rodrigo" User-Password = "rodrigo" NAS-IP-Address = 127.0.1.1 NAS-Port = 1812 rad_recv: Access-Accept packet from host 172.16.0.5 port 1812, id=95, length=20

Con estas pruebas vemos que esta listo nuestro server para enlazarlo con nuestro router y crear nuestra red de vlan. La configuracin de dicho router se muestra a continuacin.

PARTE II: Instalacin y configuracin de PFSense


Booteando con PFSense

Ahora ya puedes arrancar el PC que va a servir de Host para PFSense desde el Cdrom con la iso de PFSense en su interior y con la USB puesta, ya que es aqu donde en un pequeo archivo .xml PFSense guardar todas las configuraciones que hagamos.
Verificando Interfaces

Iniciamos una computadora desde el cd-rom, se vern varias opciones de cmo iniciar pfsense y se selecciona la de correr en usb (opcin 3). Lo primero que se tiene que hacer al haber entrado en pfsense es seleccionar una tarjeta de red para la WAN y para la LAN, tambin nos pregunta que si queremos crear otras opciones de LAN pero en nuestro caso eso lo haremos despus. Ahora asignamos IP a la LAN para as poder accesar al modo de interfaz web del router ya que su configuracin en interfaz web es mucho ms fcil.
webGUI PFSense

Ya cuando nuestra LAN tiene una ip asignada necesitamos una PC con una ip del mismo rango que la que se asigno a la LAN para poder accesar a su interfaz web. Para conectar el router con la una PC utilizamos un switch. Se abre el navegador web de una computadora y colocamos la ip que

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

asignamos a la LAN del router, en seguida nos abre una ventana que nos pedir un usuario y un password para que podamos acceder al router, en nuestro caso tanto el usuario como el password eran admin. Una vez entremos a la interfaz web comenzamos la configuracin. Nosotros necesitamos crear tres VLANs, una VLAN contendr un servidor de autenticacin (servidor radius), otra de las VLAN tendr a los usuarios de nuestra red y en la ltima conectaremos un Access point para poder proporcionar internet inalmbrico. Antes de comenzar la configuracin de las VLAN previamente configuramos nuestro switch como se explic anteriormente.
Definiendo Interfaces

Para crear una VLAN en pfsense nos vamos a INTERFACES VLAN, le colocamos a cada VLAN un ID que es el nmero con el que se va identificar cada VLAN, tambin escogemos que tarjeta de red va ser nuestro troncal y para terminar colocamos una descripcin de la VLAN:

Despus vamos a INTERFACES ASSIGN NETWORK PORTS y agregamos tres nuevas interfaces y seleccionamos el puerto por el que se van a conectar al router, al ver las opciones vamos a ver

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

que tenemos para seleccionar todas las tarjetas de red que tenga nuestro router y las tres VLANs que acabamos de crear, vamos a seleccionar una VLAN como puerto para cada interfaz que acabamos de crear y tendremos algo como esto:

Al agregar las nuevas interfaces nos aparece como OPT1, OPT2 y OPT3, para ponerles otro nombre nos dirigimos a INTERFACES y ah se nos mostrara una lista de todas las interfaces que tenemos: WAN, LAN OPT1, OPT2 y OPT3, seleccionamos OPT1 y damos clic. Ahora seleccionamos la casilla de ENABLE INTERFACE y podremos cambiar el nombre de nuestra interfaz. Para asignarle una IP en TYPE seleccionamos STATIC y nos permitir asignar IP y mascara, hay otras opciones que nos ofrece pfsense pero nosotros solo configuraremos estas opciones, abajo al final de la ventana y damos clic en SAVE.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Al guardar nos mostrara la opcin aplicar cambios pero nos dice que antes de aplicarlos si vamos a necesitar un DHCP para nuestra VLAN y lo configuremos primero y despus apliquemos los cambios:

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Configurando DHCP para interfaz LAN

Para esto nos vamos a SERVICES DHCP SERVER, seleccionamos la pestaa de la interfaz a la que le queremos activar DHCP y damos clic en la casilla ENABLE DHCP SERVER. Para tener un DHCP necesitamos un rango de IPs que van a ser que va usar el servidor, entonces colocamos un rango de las IPs que tengamos disponibles despus de esto guardamos:

Regresamos a INTERFACE y ahora si aplicamos los cambios. Ya tenemos casi configurado lo que necesitamos, seguiremos entonces con el portal cautivo.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Configurando Portal Cautivo (Captive Portal) en PFSense Primero, una breve explicacin de lo que es un portal cautivo: Captive Portal (o portal cautivo en espaol) es una tcnica que fuerza a un cliente HTTP dentro de una Red a ver una pgina en especial, generalmente con propsitos de autentificacin, antes de poder navegar libremente. Esto se hace interceptando todo el trfico HTTP, independiente de la direccin a la cual se intente acceder, hasta que al usuario se le permite salir del portal y pude navegar libremente, si es que no existen otras restricciones. Para la configuracin del portal cautivo nos vamos a SERVICES CAPTIVE PORTAL y ah seleccionamos la casilla de ENABLE CAPTIVE PORTAL, despus seleccionamos la interfaz en la que queremos poner el portal cautivo, en nuestro caso es en la interfaz WIFI:

Pfsense nos da muchas opciones ms para la configuracin pero nos la saltaremos y bajamos con el scroll hasta llegar a una casilla que dice ENABLE LOGOUT POPUP WINDOW, seleccionamos la casilla, esto es para que despus de autenticarnos y navegar si queremos salirnos de internet no quede abierta nuestra sesin y si necesitamos acceder a internet de nuevo tengamos que autenticarnos otra vez.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Seguimos bajando hasta una seccin de autenticacin y seleccionamos la opcin de RADIUS AUTHENTICATION, esto es si nuestro servidor es externo, es decir, que nuestro router aunque puede servir de servidor de autenticacin nosotros queremos un servidor externo, a continuacin colocamos la IP de la PC en la que est montado el servidor RADIUS, el puerto por el que se va a comunicar el router con el servidor y una SHARED SECRET que es la misma que se configura en el servidor RADIUS:

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Para terminar bajamos hasta la seccin PORTAL PAGE CONTENS y subimos un archivo html, este ser la pgina que veremos cuando queramos acceder a internet, se nos pedir un usuario y un password para poder autenticarnos y poder acceder a internet

Damos clic en SAVE y listo. Lo que nos resta por hacer, es configurar un archivo HTML para la pgina Portal, este archivo debe contener 2 campos de formulario, uno para el User y otro para el Password, a continuacin voy a poner un cdigo de ejemplo que puedes copiar y pegar:
<html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Ejemplo Portal Cautivo</title> <meta content="Ejemplo de Portal Cautivo" name="PuLpo"> </head> <body style="color: rgb(204, 204, 204); background-color: rgb(33, 56, 90);" alink="#000088" link="#cccccc" vlink="#ff0000"> <div style="text-align: center;"><span style="font-family: arial; font-weight: bold;"><span style="color: rgb(204, 204, 204);">Ejemplo de p&aacute;gina de Autentificaci&oacute;n <br> <br> Captive Portal<br> <br> m0n0wall</span></span><br> </div> <br> <br> <form method="post" action="$PORTAL_ACTION$">

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

<blockquote> <p align="left"> <font style="font-size: 9pt;" color="#ffffff" face="Arial"><span style="color: rgb(0, 0, 0);"><small><span style="color: rgb(255, 255, 255);">User </span>&nbsp;</small><span style="color: rgb(255, 255, 255);"> &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;</span></span><span style="color: rgb(255, 255, 255);" lang="es-cl">&nbsp; </span></font><span style="font-size: 9pt; color: rgb(255, 255, 255);"><input name="auth_user" size="15"> <br> </span> <font style="font-size: 9pt;" color="#ffffff" face="Arial"><small style="color: rgb(255, 255, 255);"><br> </small><span style="color: rgb(0, 0, 0);"><small style="color: rgb(255, 255, 255);">Password</small><span style="color: rgb(255, 255, 255);"> &nbsp;&nbsp;</span>&nbsp;</span> &nbsp;&nbsp; </font> <span style="font-size: 9pt;"> <input name="auth_pass" size="15" type="password"> <input name="redirurl" value="$PORTAL_REDIRURL$" type="hidden"><br> <br> </span> <span style="font-size: 9pt;"><br> </span> <span lang="es-cl"> </span><br> <input value="Ingresar" name="accept" type="submit"></p> </blockquote> </form> </body> </html>

Debera verse algo similar a esto:

NOTA: dicho cdigo se modific por uno ms acuerdo a requerimientos de prctica.

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Si en nuestro archivo html colocamos imgenes como fuente tenemos que colocar captiveportalnombredeimag.jpg despus colocar las imgenes dentro del router, para esto seleccionamos la pestaa FILE MANAGER siempre en SERVICE CAPTIVE PORTAL y aqu las subimos:

Esta configuracin es porque si ponemos otra direccin o no subimos las imgenes al router cuando alguien accese por WIFI a internet y le muestre la ventana de autenticacin no se vern las imgenes que se hallan puesto.

Configurando polticas de acceso a la red Para que nuestro router quede totalmente configurado solamente nos falta el firewall, para la configuracion nos vamos a FIREWALL RULES, seleccionamos la interfaz a la que le configuraremos el firewall y agregamos una lista de acceso. Para la WAN permitiremos que todo pueda salir pero que de internet hasta nuestra red nada pueda entrar

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

En la interfaz de WIFI solo permitiremos paso por el puerto 80(HTTP), puerto 53(DNS), puerto 443(HTTPS) y puerto 8000(radius) lo dems esta denegado:

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Nuestra interfaz de usuario tendr acceso a el puerto 80(HTTP), puerto 53(DNS) y del rango de IP una que tendr acceso a todo, esto es porque funcionara como puerta trasera:

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

UNIVERSIDAD DE EL SALVADOR REDES DE COMPUTADORAS II CICLOII 2011

EXAMEN # 1 IMPLEMENTACION DE PORTAL CAUTIVO CON RADIUS Y PFSENSE

Configurando ponto de acceso La configuracin del punto de acceso se remite solo con los valores por defecto que trae el punto de acceso y cambios solo el SSID con un nombre con el cual se identificara la red que se desea acceso independiente de cual estemos usando ya sea un CISCO u D-LINK ya que este no lo utilizaremos(en este caso) como un router solo como un acceso inalmbrico a nuestra LAN por tanto no requiere mayor configuracin porque hasta el DHCP lo controlara nuestro Router de frontera tampoco necesitaremos una IP para este router.

Esquema de nuestra red

WAN LAN

ELEMENTOS UTILIZADOS: 1. Nuestro router es PFSense el cual fue una computadora booteda con CD-ROM Con dos elementos importantes definidos como LAN y WAN que se asignaron a tarjetas de red una al switch y la otra a un acceso a internet. 2. El switch capa 3 fue uno marca allied telesis con tres VLAN denominadas Usuarios, servidores,WI-FI 3. Nuestro server Radius 4. Nuestro Access-point que no fue un Linksys 5. Minilaptop como suplicante 6. La nube fue la red del centro de computo el cual fue nuestro acceso a internet

Você também pode gostar