Wifi Gratuito
-
Upload
francisco-alexander-flores-castro -
Category
Documents
-
view
305 -
download
1
Transcript of Wifi Gratuito
UUNNIIVVEERRSSIIDDAADD DDEE EELL SSAALLVVAADDOORR
FFAACCUULLTTAADD MMUULLTTIIDDIISSCCIIPPLLIINNAARRIIAA DDEE OOCCCCIIDDEENNTTEE
DDEEPPAARRTTAAMMEENNTTOO DDEE IINNGGEENNIIEERRIIAA YY AARRQQUUIITTEECCTTUURRAA
CATEDRA:
PROTOCOLOS DE COMUNICACIÓN
CATEDRATICO:
ING. JUAN CARLOS PEÑA
ALUMNOS: CANALES MANCIA GUILLERMO ERNESTO
FLORES CASTRO FRANCISCO ALEXANDER
LAZO HERNANDEZ FLORENTIN
SANTA ANA 25 DE JUNIO 2012
IINNDDIICCEE
PROBLEMA PLANTEADO...................................................................................................................... 1
PLANTEAMIENTO DE LA SOLUCION .................................................................................................... 2
CONFIGURACIONES ........................................................................................................................... 13
BIBLIOGRAFIA .................................................................................................................................... 34
PROTOCOLOS DE COMUNICACION 2012
1
PPRROOBBLLEEMMAA PPLLAANNTTEEAADDOO
El grupo roble empezará a brindar acceso a redes de forma gratuita en cada centro
comercial que posee en Centro América. Para acceder a sus servicios, los usuarios
simplemente deberán registrarse en un kiosko para que se les brinde un usuario y una
contraseña que servirán como credenciales para uso de la red. El problema de este
despliegue es que algunos de estos centros comerciales ya poseen bases de datos con
información similar, pero en distintos motores (MySQL, Postgresql, etc.), y las
implementaciones nuevas se harán en Active Directory/LDAP. Por tanto se le pide que
implemente algún mecanismo que permita autenticar a cada usuario sin importar en qué
base se encuentre, justo antes de hacer uso de la red
PROTOCOLOS DE COMUNICACION 2012
2
PPLLAANNTTEEAAMMIIEENNTTOO DDEE LLAA SSOOLLUUCCIIOONN
Como solución al problema planteado se propone usar un sistema de autenticación basado
en Freeradius para la integración de bases de datos, para el caso se utilizara una base de
datos LDAP (Lightweight Directory Access Protocol, Protocolo Ligero de Acceso a
Directorios) funcionando de forma integrada a una base de datos de MYSQL, además se
utilizara pfSense como herramienta de control para el acceso a la red y otras características.
Antes de empezar a mostrar cada una de las configuraciones respectivas asi como el uso
adecuado de cada una de las herramientas, introduciremos diversos conceptos cuyo
conocimiento es clave para poder entender que se esta haciendo (que perseguimos y que
conseguimos).
RRAADDIIUUSS
RADIUS (Remote Authentication Dial-In User Server) es un protocolo que nos permite
gestionar la “autenticación, autorización y contabilización o registro” de usuarios remotos
sobre un determinado recurso. La tupla “autenticación, autorización y registro” es mas
conocida como AAA, al ser este su acrónimo de su denominación original inglesa
“Authentication, Authorization and Accounting”, cada uno de estos términos hace
referencia a un papel especifico los cuales son:
AAuutteenntt iiccaacciióónn ((aauutthheenntt iiccaatt iioonn))::
Este término hace referencia al proceso por el cual se determina si un usuario tiene permiso
para acceder a un determinado servicio de red del que se quiere hacer uso. El proceso de
autenticación se realiza mediante la presentación de una identidad y una credencial por
parte del usuario que demanda el acceso.
Un tipo habitual de credencial es el uso de una contraseña (o password) que junto al
nombre de usuario nos permite acceder a determinados recursos. El nombre de usuario es la
identidad, que puede ser públicamente conocida, mientras que la contraseña se mantiene en
secreto, y sirve para que nadie suplante nuestra identidad. Otros tipos más avanzados de
credenciales son los certificados digitales.
PROTOCOLOS DE COMUNICACION 2012
3
Existen muchos métodos concretos que implementan el proceso de la autenticación.
Algunos de los soportados por RADIUS son:
Autenticación de sistema (system authentication) típica en un sistema Unix,
normalmente realizada mediante el uso del fichero /etc/passwd;
Los protocolos PAP (Password Authentication Protocol), y su versión segura CHAP
(Challenge Handshake Authentication Protocol), que son métodos de autenticación
usados por proveedores de servicios de Internet (ISPs) accesibles vía PPP.
LDAP (Lightweight Directory Access Protocol), un protocolo a nivel de aplicación
(sobre TCP/IP) que implementa un servicio de directorio ordenado, y muy
empleado como base de datos para contener nombres de usuarios y sus contraseñas.
Kerberos, el famoso método de autenticación diseñado por el MIT.
EAP (Extensible Authentication Protocol) que no es un método concreto sino un
entorno universal de autenticación empleado frecuentemente en redes inalámbricas
y conexiones punto a punto;
Por último, también se permite la autenticación basada en ficheros locales de
configuración del propio servidor RADIUS.
AAuutthhoorriizzaacciióónn ((aauutthhoorriizzaatt iioonn))
Este término hace referencia a conceder servicios específicos (entre los que se incluye la
“negación de servicio”) a un determinado usuario, basándose para ello en su propia
autenticación, los servicios que está solicitando, y el estado actual del sistema. Es posible
configurar restricciones a la autorización de determinados servicios en función de aspectos
como, por ejemplo, la hora del día, la localización del usuario, o incluso la posibilidad o
imposibilidad de realizar múltiples “logins” de un mismo usuario.
El proceso de autorización determina la naturaleza del servicio que se concede al usuario,
como son: la dirección IP que se le asigna, el tipo de calidad de servicio (Qos) que va a
recibir, el uso de encriptación, o la utilización obligatoria de túneles para determinadas
conexiones.
PROTOCOLOS DE COMUNICACION 2012
4
Los métodos de autorización 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 configuración locales al servidor.
No se debe confundir los términos autenticación con autorización, Mientras que la
autenticación es el proceso de verificar un derecho reclamado por un individuo (persona o
incluso ordenador), la autorización es el proceso de verificar que una persona ya
autenticada tiene la autoridad para efectuar una determinada operación.
RReeggiiss ttrroo ((aaccccoouunntt iinngg,, aa mmeennuuddoo tt rraadduucciiddoo ttaammbbiiéénn ccoommoo ccoonnttaabbii ll iiddaadd))
Este término hace referencia 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 cuando 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 diversad de
tecnologías de red (incluyendo módems, xDSL, VPNs y redes inalámbricas) no solo para
gestionar el acceso a la propia red, sino también para servicios propios de Internet (como e-
mail, Web o incluso dentro del proceso de señalización SIP en VoIP).
NNAASS
Un Network Access Server (NAS) es un sistema que proporciona acceso a la red. En
algunos casos también 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 teléfono para VoIP o una impresora, hasta el acceso a una red
inalámbrica 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 (típicamente RADIUS) preguntando si los
credenciales proporcionados por el cliente son válidos. Basándose en su respuesta, NAS le
PROTOCOLOS DE COMUNICACION 2012
5
permitirá acceder o no a este recurso protegido. El sistema NAS no contiene ninguna
información sobre los usuarios que se pueden conectar ni sus credenciales, sino que utiliza
esta información para enviarla a RADIUS, y que éste le informe sobre los permisos del
cliente.
Es de observar que nos encontramos en un escenario en el que hay dos niveles de la
arquitectura cliente-servidor. Desde un punto de vista más global, tenemos la típica
arquitectura en la que un usuario quiere acceder a un servicio, siendo el usuario el cliente, y
el servidor el sistema que proporciona dicho servicio. Sin embargo, si nos centramos en el
proceso de AAA, el cliente sería 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). Dado que este caso se centra en este proceso, a lo largo del desarrollo
hablaremos de servidores RADIUS cuyos clientes son los elementos a proteger (por
ejemplo, un punto de acceso para la conexión inalámbrica). Por tanto, desde nuestro punto
de vista, los usuarios que quieren acceder al recurso protegido (por ejemplo, la persona que
se desea conectar a la red inalámbrica por medio del punto de acceso), no son clientes de
RADIUS sino que se denominan suplicantes.
Una ventaja del uso de RADIUS es que sus clientes tan sólo tienen que implementar el
protocolo de comunicación con RADIUS, y no todas las posibilidades de AAA existentes
(PAP, CHAP, LDAP, kerberos, MySQL, etc.). En el ejemplo del punto de acceso, tan sólo
se necesita implementar una solución NAS que realice las consultas a RADIUS.
Otra ventaja del protocolo RADIUS es que, en su comunicación con NAS, nunca transmite
las contraseñas directamente por la red (lo que se conoce como en cleartext), ni siquiera al
usar PAP, sino que usa algoritmos para ocultar las contraseñas como MD5. Sin embargo, al
no ser considerado MD5 un sistema de protección de credenciales demasiado seguro, es
aconsejable utilizar sistemas adicionales de protección para cifrar el tráfico de RADIUS,
como puede ser túneles de IPsec.
PROTOCOLOS DE COMUNICACION 2012
6
SSEEGGUURRIIDDAADD EENN TTEECCNNOOLLOOGGÍÍAASS DDEE RREEDD IINNAALLÁÁMMBBRRIICCAA
En redes inalámbricas con infraestructura se utiliza un punto de acceso (wireless access
point, WAP o simplemente AP) para interconectar todos los dispositivos inalámbricos de la
red. Usualmente un AP se conecta también a una red cableada, transmitiendo datos entre
los dispositivos conectados a la red cable y los dispositivos inalámbricos.
La seguridad es un tema importante en las redes inalámbricas porque, al contrario que en
una red cableada a la que sólo tienen acceso las personas que físicamente pueden
conectarse, cualquier persona de la calle o pisos o edificios vecinos pueden conectarse a
una red inalámbrica o ver el contenido de los paquetes que circulan por ella si ésta no está
convenientemente protegida.
Algunos de los principales protocolos estándar para proporcionar seguridad en redes
inalámbricas IEEE 802.11 son:
WEP (Wired Equivalent Privacy). Fue introducido en 1997 con objeto de
proporcionar un nivel de confidencialidad similar al de las redes cableadas. Usa una
clave estática de 64 ó 128 bits con el algoritmo RC4. Su uso se desaconseja
completamente, ya que aunque es muy fácil de configurar y está muy extendido al
ser el primero que surgió, presenta graves fallos de seguridad.
WPA (Wi-Fi Protected Access) fue creado para corregir los múltiples fallos
detectados en el protocolo WEP. WPA fue diseñado por el consorcio Wi-Fi
Alliance basándose en un borrador del estándar 802.11i (es un subconjunto del
mismo), y utiliza TKIP (Temporal Key Integrity Protocol) como protocolo de
cifrado que sustituye a WEP sin necesidad de modificar el hardware existente
(podría funcionar actualizando el firmware).
En concreto, WPA sigue usando RC4 como algoritmo de cifrado con claves de 128
bits, pero usa TKIP para cambiar dinámicamente estas claves.
WPA fue diseñado para ser usado junto a un servidor AAA (habitualmente
RADIUS), de manera que se le asignan claves distintas a cada uno de los posibles
usuarios. Sin embargo, para entornos domésticos o pequeñas oficinas también se
PROTOCOLOS DE COMUNICACION 2012
7
puede usar, de forma menos segura, con una única clave compartida (pre-shared
key, PSK).
WPA2 se basa en el nuevo estándar 802.11i, y el cambio más significativo respecto
a WPA es que usa el protocolo de cifrado AES en lugar de RC4. Mientras que WAP
puede ejecutarse en el hardware que soporte WEP (tras actualizar el firmware),
WAP2 necesita un hardware más nuevo (posterior al 2004). Sin embargo, se sabe
que WAP también terminará siendo comprometido a medio plazo y por tanto sólo
se recomienda como transición a WAP2.
Otro concepto relacionado con la seguridad en redes inalámbricas que merece la pena
destacar es EAP (Extensible Authentication Protocol). EAP es un marco general de
autenticación, y no un mecanismo de autenticación concreto. EAP proporciona algunas
funciones comunes y un método para negociar el mecanismo de autenticación a usar.
Actualmente hay más de 40 métodos distintos.
FFRREEEERRAADDIIUUSS
FreeRADIUS es un paquete de software de código abierto y libre distribución que
implementa diversos elementos relacionados con RADIUS, tales como una biblioteca BSD
para clientes, módulos para soporte en apache, y lo que más nos interesa en este punto, un
servidor de RADIUS.
El servidor de FreeRADIUS es modular, para facilitar su extensión, y es muy escalable.
Además, tiene casi todas las opciones que un usuario puede necesitar:
Para realizar las tareas de AAA puede almacenar y acceder a la información por
medio de múltiples 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 prácticamente toda clase de clientes Radius (por ejemplo, ChilliSpot,
JRadius, mod_auth_radius, pam_auth_radius, Pyrad, extensiones php de RADIUS,
etc)
PROTOCOLOS DE COMUNICACION 2012
8
Se puede ejecutar en múltiples 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 replicación de servidores.
LLDDAAPP
LDAP son las siglas de Lightweight Directory Access Protocol (en español Protocolo
Ligero de Acceso a Directorios) que hacen referencia a un protocolo a nivel de aplicación
el cual permite el acceso a un servicio de directorio ordenado y distribuido para buscar
diversa información en un entorno de red. LDAP también es considerado una base de datos
(aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse
consultas.
Un directorio es un conjunto de objetos con atributos organizados en una manera lógica y
jerárquica. El ejemplo más común es el directorio telefónico, que consiste en una serie de
nombres (personas u organizaciones) que están ordenados alfabéticamente, con cada
nombre teniendo una dirección y un número de teléfono adjuntos.
Un árbol de directorio LDAP a veces refleja varios límites políticos, geográficos u
organizacionales, dependiendo del modelo elegido. Los despliegues actuales de LDAP
tienden a usar nombres de Sistema de Nombres de Dominio (DNS por sus siglas en inglés)
para estructurar los niveles más altos de la jerarquía. Conforme se desciende en el
directorio pueden aparecer entradas que representan personas, unidades organizacionales,
impresoras, documentos, grupos de personas o cualquier cosa que representa una entrada
dada en el árbol (o múltiples entradas).
Habitualmente, almacena la información de autenticación (usuario y contraseña) y es
utilizado para autenticarse aunque es posible almacenar otra información (datos de contacto
del usuario, ubicación de diversos recursos de la red, permisos, certificados, etc.). A manera
de síntesis, LDAP es un protocolo de acceso unificado a un conjunto de información sobre
una red. La versión actual es LDAPv3.
PROTOCOLOS DE COMUNICACION 2012
9
MMyySSQQLL
El software MySQL proporciona un servidor de base de datos SQL (Structured Query
Language) veloz, multi-hilo, multiusuario y robusto. El servidor está proyectado tanto para
sistemas críticos en producción soportando intensas cargas de trabajo como para
empotrarse en sistemas de desarrollo masivo de software. El software MySQL tiene
licencia dual, pudiéndose usar de forma gratuita bajo licencia GNU o bien adquiriendo
licencias comerciales de MySQL AB en el caso de no desear estar sujeto a los términos de
la licencia GPL. MySQL es una marca registrada de MySQL AB
PPFFSSEENNSSEE
pfSense es una distribución personalizada de FreeBSD adaptado para su uso como Firewall
y Router. Se caracteriza por ser de código abierto, puede ser instalado en una gran variedad
de ordenadores, y además cuenta con una interfaz web sencilla para su configuración.
CCaarraacctteerr ííss tt ii ccaass
La siguiente lista muestra algunas funcionalidades que se incluyen por defecto en el
sistema:
Firewall: pfSense se puede configurar como un cortafuego permitiendo y denegando
determinado tráfico de redes tanto entrante como saliente a partir de una dirección
ya sea de red o de host de origen y de destino, también haciendo filtrado avanzado
de paquetes por protocolo y puerto.
Servidor VPN: pfSense se puede se puede configurar como un servidor VPN
usando protocolos de tunneling tales como IPSec, PPTP, entre otras.
Servidor de Balanceo de Carga: pfSense puede ser configurado como servidor de
balanceo de carga tanto entrante como saliente, esta característica es usada
comúnmente en servidores web, de correo, de DNS. También para proveer
estabilidad y redundancia en él envió de tráfico a través del enlace WAN evitando
los cuellos de botella.
Portal Cautivo: Este servicio consiste en forzar la autenticación de usuarios
redirigiéndolos a una página especial de autenticación y/o para aceptar los términos
PROTOCOLOS DE COMUNICACION 2012
10
de uso, realizar un pago etc. para poder tener acceso a la red. El portal cautivo es
usado comúnmente para control de accesos a la red en los puntos de accesos
inalámbricos de los hoteles, restaurantes, parques y kioscos.
Tabla de estado: pfSense es un stateful firewall, el cual como característica principal
guarda el estado de las conexiones abiertas en una tabla. La mayoría de los firewall
no tienen la capacidad de controlar con precisión la tabla de estado. pfSense tiene
un enorme número de características que permiten una granularidad muy fina para
el manejo de la tabla de estado.
Servidor DNS y reenviador de cache DNS: pfSense se puede configurar como un
servidor DNS primario y reenviador de consultas de DNS.
Servidor DHCP: También funciona como servidor de DHCP, se puede también
implementar VLAN desde pfSense.
Servidor PPPoE: Este servicio es usado por los ISP para la autenticación de usuarios
que puedan ingresar a internet, por una base local o vía radius.
Enrutamiento estático: pfSense funciona como un enrutador ya que entrega
direccionamiento IP y hace el nateo hacia afuera.
Redundancia: pfSense permite configurar dos o más cortafuegos a través del
protocolo CARP (Common Address Redundancy Protocol) por si uno de los
cortafuegos se cae el otro se declara como cortafuegos primario.
Reportes Y Monitoreo: A través de los gráficos RDD pfSense muestra el estado de
los siguientes componentes:
Utilización de CPU
Rendimiento Total
Estado del Firewall
Rendimiento individual por cada interface
Paquetes enviados y recibidos por cada interface
Manejo de tráfico y ancho de banda
pfSense cuenta con un gestor de paquetes para ampliar sus funcionalidades, al elegir
el paquete deseado el sistema automáticamente lo descarga e instala. Existen
alrededor de setenta módulos disponibles, entre los que se encuentran el proxy
Squid, IMSpector, Snort, ClamAV, entre otros.
PROTOCOLOS DE COMUNICACION 2012
11
PfSense puede instalarse en cualquier ordenador o servidor que cuente con un mínimo de
dos tarjetas de red, el proceso de instalación es similar a FreeBSD. Una vez copiados los
archivos del sistema al disco duro, se procede a configurar las direcciones IP de las tarjetas
de red. Una vez concluido lo anterior, se puede acceder al sistema desde un explorador
web. El portal de administración está basado en PHP y teóricamente todas las
configuraciones y administración se pueden realizar desde allí, por lo tanto no es
indispensable contar con conocimientos avanzados sobre la línea de comandos UNIX para
su manejo.
Hay dos tipos de imágenes de pfSense:
Embedded. Es la que se emplea para Compact Flash, tiene los accesos a disco minimizados
y no admite instalación de paquetes. De esta forma se preserva la vida de la Compact Flash.
Se presenta comprimida con gzip, con la extensión img. No soporta ni teclado ni monitor,
hay que conectar cable serie para acceder a la consola de pfSense y poder hacer la
configuración inicial.
LiveCD. Es una imagen iso, también comprimida con gzip, para ser ejecutada desde el
propio CD. Tiene una opción para instalar pfSense en disco duro y a partir de entonces se
pueden instalar paquetes, muchos de ellos administrables desde la interfaz web.
pfSense permite balanceo de carga con detección de fallo (fail-over), lo que resulta muy
interesante si se tiene más de una ADSL. Esta prestación permite pues equilibrar las cargas
de las ADSL y en caso de fallo de una de ellas redireccionar su tráfico hacia otra.
pfSense emplea para el balanceo el demonio (daemon) slbd. Como la mayoría de
balanceadores, su intención es mejorar la navegación por Internet y no entiende las
conexiones múltiples. Ello descarta su uso en accesos FTP. Por tanto, o se renuncia a
balanceo o se renuncia a FTP. O bien se monta otro pfSense sólo para FTP.
El balanceo se configura definiendo una pila (pool) donde se indica la IP pública de cada
ADSL (IP a monitorizar) y la IP privada por la que se accede a la ADSL. Entonces pfSense
comprueba periódicamente si la ADSL en cuestión está funcionando, haciéndole un ping.
PROTOCOLOS DE COMUNICACION 2012
12
Se necesita, por tanto, que la IP pública de la ADSL conteste a estos ping internos. De lo
contrario, pfSense no sabrá ver si la ADSL está activa.
PROTOCOLOS DE COMUNICACION 2012
13
CCOONNFFIIGGUURRAACCIIOONNEESS
EEnn pprriimmeerr lluuggaarr vvaammooss aa iinnssttaallaarr yy ccoonnff iigguurraarr nnuueessttrroo sseerrvviiddoorr LLDDAAPP::
aptitude install slapd
aptitude install ldap-utils
aptitude install openjdk-6-jre
aptitude install jxplorer (explorador y administrador de directorio LDAP)
Estructura del árbol a usar:
org
internacionales
admin
paises
lector
Belice
Costa Rica
El Salvador
otros
Ciudad Belice
Otras Ciu.
Sucursal 1
Otras Suc.
usuarios
usuarios
chepe
juan maria xxx
xxx xxx
PROTOCOLOS DE COMUNICACION 2012
14
Crear cada una de las ramas hasta terminar la estructura del árbol ya se con archivos ldif o
por medio del administrador de directorios:
Ejemplo de uno de los ldif:
rama.ldif
dn:ou=países, dc=internacionales, dc=org
objectClass: organizationalUnit
objectClass: top
ou: países.
Comando para agregar la rama:
ldapadd –D “cn=admin, dc=internacionales, dc=org” –W –h localhost –x –f rama.ldif
Ahora que ya hemos instalado y configurado el servidor ldap pasamos a las configuraciones
de Freeradius. Como ya dijimos anteriormente Freeradius es un servidor Radius de código
abierto.
Para instalar un servidor radius es necesario bajar los paquetes propios para la distribución
de Sistema Operativo a usar, así como también cada uno de los módulos que el servidor va
a manejar:
EEnn sseegguunnddoo LLuuggaarr vveerreemmooss llaa ccoonnffiigguurraacciióónn ddee ffrreeeerraaddiiuuss ++ LLDDAAPP::
aptitude install freeradius
aptitude install freeradius-utils
aptitude install freeradius-ldap
Una vez instalado el servidor Radius y el servidor OpenLDAP, solo necesitaremos decirle
al servidor freeradius que se autentifique con OpenLDAP:
En /etc/freeradius/sites-available/default descomentamos la linea que pone ldap para
habilitar el módulo LDAP en la parte de autorización y descomentamos el apartado
de ldap para la parte de autenticación de la siguiente forma:
authorize {
#
PROTOCOLOS DE COMUNICACION 2012
15
#
# The ldap module will set Auth-Type to LDAP if it has not
# already been set
ldap
#
}
authenticate {
Auth-Type LDAP {
ldap
}
En /etc/freeradius/sites-available/inner-tunnel descomentamos la linea que pone
ldap para habilitar el módulo LDAP en la parte de autorización y descomentamos el
apartado de ldap para la parte de autenticación de la siguiente forma:
server inner-tunnel {
authorize {
#
# The ldap module will set Auth-Type to LDAP if it has #not
# already been set
ldap
#}
authenticate {
#
# PAP authentication, when a back-end database listed
# in the 'authorize' section supplies a password. The
# password can be clear-text, or encrypted.
Auth-Type PAP {
pap
}
# Uncomment it if you want to use ldap for authentication
#
# Note that this means "check plain-text password against
# the ldap database", which means that EAP won't work,
# as it does not supply a plain-text password.
Auth-Type LDAP {
ldap
}
#
}
PROTOCOLOS DE COMUNICACION 2012
16
En /etc/freeradius/modules/ldap configuramos los parámetros de conexión con
nuestro OpenLDAP
# -*- text -*-
#
# $Id$
# Lightweight Directory Access Protocol (LDAP)
#
# This module definition allows you to use LDAP for
# authorization and authentication.
#
# See raddb/sites-available/default for reference to the
# ldap module in the authorize and authenticate sections.
#
# However, LDAP can be used for authentication ONLY when the
# Access-Request packet contains a clear-text User-Password
# attribute. LDAP authentication will NOT work for any other
# authentication method.
#
# This means that LDAP servers don't understand EAP. If you
# force "Auth-Type = LDAP", and then send the server a
# request containing EAP authentication, then authentication
# WILL NOT WORK.
#
# The solution is to use the default configuration, which does
# work.
#
# Setting "Auth-Type = LDAP" is ALMOST ALWAYS WRONG. We
# really can't emphasize this enough.
#
ldap {
#
# Note that this needs to match the name in the LDAP
# server certificate, if you're using ldaps.
server = "172.16.1.3"
identity = "cn=lector,dc=internacionales,dc=org"
password = alexander
basedn = "dc=internacionales,dc=org"
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
base_filter = "(objectclass=radiusprofile)"
}
En /etc/freeradius/clients.conf agregamos los clientes respectivos de nuestro
servidor freeradius. pfSense para nuestro caso, aunque es completamente valido
agregar como cliente el AP (NAS) como cliente de nuestro servidor radius, caso en
PROTOCOLOS DE COMUNICACION 2012
17
el cual se estaría trabajando con el protocolo 802.1x, para agregar a pfSense como
nuestro el cliente de freeradius abrimo el fichero y agregamos lo siguiente:
Client 172.16.1.1 {
secret =123456
shortname =francisco
}
Una vez hemos terminado las configuraciones necesarias, detenemos el servicio y lo
reiniciamos en modo debug para nuestra conveniencia a través del comando:
service slapd stop
freeradius –X
Hecho esto ya tenemos configurado nuestro servidor freeradius para efectuar el
servicio de autenticación y autorización con ldap para comprobar si nuestro servidor
está corriendo de la manera adecuada, usamos el siguiente comando:
radtest usuario contraseña ipdelservidor puerto secreto.
radtest usuario contraseña 127.0.0.1 1812 testing123
Hemos de realizar las mismas configuraciones para el servidor freeradius
secundario con la diferencia que no apuntaran de forma local si no hacia otra
maquina que tiene corriendo de manera correcta los servicios requeridos, para con
ello implementar redudancia.
CCoommoo tteerrcceerr ppuunnttoo vveerreemmooss llaa ccoonnffiigguurraacciióónn ddee FFrreeeerraaddiiuuss yy MMyySSQQLL
Vamos a instalar los paquetes para manejar MySQL con Freeradius y MySQL server
aptitude install freeradius-mysql
aptitude install mysql mysql-server
Iniciamos el servicio de mysql si no se ha iniciado de forma automática después de la
instalación:
service mysqld start
Accedemos al intérprete de MySQL:
mysql –u root –p
PROTOCOLOS DE COMUNICACION 2012
18
ingresamos la contraseña
Creamos la base de datos denominada radius:
CREATE DATABASE radius;
Declaramos un usuario para la base de datos creada:
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY 'radius';
En este caso asumimos que la Base de datos se llama "radius" y creamos un
usuario también "radius" con password "radius"
Salimos de la base de datos usando: exit;
Una vez hecho esto creamos algunas tablas en la base de datos usando los esquemas
incluidos en Freeradius para la base de datos:
mysql -u root -p radius < /etc/freeradius/sql/mysql/admin.sql
mysql – u root –p radius < /etc/freeradius/sql/mysql/cui.sql
mysql - u root –p radius < /etc/freeradius/sql/mysql/ippool.sql
mysql - u root –p radius < /etc/freeradius/sql/mysql/nas.sql
mysql - u roor –p radius < /etc/freeradius/sql/mysql/schema.sql
mysql - u root –p radius < /etc/freeradius/sql/mysql/wimax.sql
Ahora si queremos verificar las tablas creadas solo necesitamos hacer lo siguiente:
mysql -u root –p
use radius;
show tables;
Se mostrara una table con la informacion respectiva de las tablas de la base de datos
+------------------+
| Tables_in_radius |
+------------------+
| nas |
| radacct |
| radcheck |
PROTOCOLOS DE COMUNICACION 2012
19
| radgroupcheck |
| radgroupreply |
| radippool |
| radpostauth |
| radreply |
| radusergroup |
+------------------+
9 rows in set (0.00 sec)
Por último nos salimos de la base con:
quit;
Despues de agregar los esquemas nos dirigimos al archivo sql.conf y descomentamos o
agregamos la línea $INCLUDE sql.conf además definimos los valores para acceder a la
base de datos:
nano /etc/freeradius/sql.conf
Descomentamos $INCLUDE sql.conf
Definimos los valores para acceder
# Connection info:
server = "localhost"
#port = 3306
login = "radius"
password = "admin"
Por ultimo descomentamos el parámetro
readclients=yes.
Por último al igual que se hace con ldap se editan los archivos, default e inner-tunnel y se
descomentan las líneas de parámetros para la verificación de autenticación y autorización
nano /etc/freeradius/sites-available/default
authorize {
#
# Look in an SQL database. The schema of the database
#is meant to mirror the “users” file
#
PROTOCOLOS DE COMUNICACION 2012
20
#See “Authorization Queries” in sql.conf
Sql
#
}
accounting {
detail
sql
}
nano /etc/freeradius/sites-available/inner-tunnel
authorize {
#
# Look in an SQL database. The schema of the database
#is meant to mirror the “users” file
#
#See “Authorization Queries” in sql.conf
Sql
#
}
DDaalloorraaddiiuuss
Daloradius es una avanzada aplicación HTTP que sirve de sistema de administración para
RADIUS, y está diseñada para ser utilizada para administrar hotspots (puntos calientes, es
decir zona de cobertura Wi-Fi, en el que un punto de acceso o varios proveen servicios de
red a través de un Proveedor de Servicios de Internet Inalámbrico o WISP) y uso general
para la autenticación de Proveedores de Acceso a Internet (ISP). Incluye gestión de
usuarios, reportes gráficos, contabilidad, motor de cobranza e integración con GoogleMaps
para Geolocalización.
PROTOCOLOS DE COMUNICACION 2012
21
Instalación
aptitude install daloradius-x-xx
Una vez instalado agregamos algunas libreiras que son necesarias para el buen
funcionamiento de la aplicación
aptitude install php5 php5-mysql php-pear php5-gd php-DB
Una vez hecho, cambiamos los permisos y propiedades del directorio de daloradius.
chown www-data:www-data /var/www/daloradius/ -R
Para que Daloradius funcione correctamente, se requiere agregar algunas tablas mas a la
base de datos de MySQL. Estas tablas ya estan incluidas en el directorio de DaloRadius,
por lo que solo es necesario ejecutar el siguiente comando:
mysql -u root -p admin < /var/www/daloradius/contrib/db/fr2-mysql-
daloradius-and-freeradius.sql
Aparte de daloradius es recommendable instalar phpmyadmin:
aptitude install phpmyadmin
Por último antes de poder accesar a la GUI modificamos el archivo daloradius.conf.php en
el cual ponemos los valores de la conexión al server de la base de datos:
……………………………..
CONFIG_DB_ENGINE = mysql
CONFIG_DB_HOST = 127.0.0.1
CONFIG_DB_USER = radius
CONFIG_DB_PASS = labserver
CONFIG_DB_NAME = radius
.......................
Después de editar reiniciamos apache y accedemos a través del siguiente enlace:
PROTOCOLOS DE COMUNICACION 2012
22
service apache2 restart
http://x.x.x.x/daloradius
ppffSSeennssee
Se realizo una instalación en disco duro, para ello se descarga una imagen iso. Desde la
pagina de www.pfsense.org.
Los pasos de la instalación no son nada complicados:
1. Se configura el BIOS de la PC para que el primer dispositivo de arranque sea la
unidad de CD/DVD, se guardan los cambios y se reinicia el equipo, se inserta el cd
de pfSense en la unidad de CD e inicia el proceso de arranque.
2. Tras ver pasar varias pantallas informativas del proceso de carga se llega a la
siguiente en la cual se produce una pausa de 10 segundos para dar la opción de
hacer una instalación nueva (I) o recuperar una instalación (R), en este caso
tecleamos la letra I.
PROTOCOLOS DE COMUNICACION 2012
23
3. llegamos a una pantalla azul de la configuración de la consola de instalación, en la
cual por lo general basta con navegar con las teclas de cursor a "Accept these
settings"y dar enter
4. Se nos presentará la pantalla de Select Task (seleccionar tarea) en la cual
escogeremos "Quick/Easy nstall" para hacer una instalación de manera
automatizada y sin mayores preguntas.
PROTOCOLOS DE COMUNICACION 2012
24
5. El programa de instalación nos pregunta si estamos seguros de lo que queremos
hacer, como es una instalación desde cero seleccionamos "OK"
6. Se lleva a cabo toda una serie de procesos de partición, formateo, y copia de
archivos en las distintas particiones que se generan en el disco duro, todo lo cual
puede llevar unos 20 minutos, tras lo cual presenta la pantalla de instalación de
Kernel, en la cual dependiendo del tipo de procesador seleccionaremos el kernel
adecuado al sistema (multiproceso simétrico si el equipo tiene un procesador
PROTOCOLOS DE COMUNICACION 2012
25
multinúcleo o es tarjeta con 2 procesadores separados, o uniprocesador si es un solo
procesador de un solo núcleo)
7. termina la instalación del kernel, seleccionamos "Reboot" y se reiniciará el equipo
(debemos de sacar el CD de instalación del lector), tomen nota del usuario y
contraseña que muestra en la pantalla, será la base para entrar al cofigurador web.
PROTOCOLOS DE COMUNICACION 2012
26
8. arranca el sistema, y nos pregunta si queremos configurar VLAN, tecleamos una N
(indicamos que no)
9. nos muestra las interfaces instaladas, en este caso em0 (e eme cero, no emo =/ ) y
em1, si tenemos la completa certeza de cual tarjeta de red es em0 y em1 (en este
caso mi ejemplo) escribimos directamente el nombre de la interface LAN (es la
primera por la que pregunta), en este caso em0 y aceptamos, nos pregunta por el
PROTOCOLOS DE COMUNICACION 2012
27
nombre de la interface WAN y escribimos em1 y aceptamos, tecleamos otro enter
cuándo nos pregunte por la interface Optional 1 (en este caso no la hay)
Otra opción para configurar las tarjetas de red es indicar tecleando la letra A si se
quiere llevar a cabo la autoconfiguración, en este caso tras teclear esa A el sistema
pedirá que se conecte un cable de red que esté activo a la tarjeta de red a configurar
(primero es la LAN) y cuándo se enciendan los LED de la tarjeta de red se da enter
para aceptar la asignación, se repite el mismo pricedimiento para configurar la
tarjeta WAN.
PROTOCOLOS DE COMUNICACION 2012
28
10. el sistema pregunta si se procede con la configuración
11. nos presenta la pantalla de información y configuración, y con eso tenemos
instalado un sistema pfSense básico.
PROTOCOLOS DE COMUNICACION 2012
29
CONFIGURACION DE PFSENSE – MODO GRAFICO
1- Accedemos a pfSense através de la dirección ip que trae por defecto pfsense para
ingresar a sus configuraciones la cual es 192.168.1.1 y nos mostrará la siguiente
pantalla. El Username es: admin, y la contraseña: pfsense.
2- Una vez nos hemos logueado en el modo gráfico necesitamos instalar los paquetes
necesarios para la versión, seleccionando para ello a la pestaña system de donde
elegiremos la opción packages, en donde nos desplazaremos a la subpestaña de
available packages e instalaremos el paquete freeradius2 y squid (Pfsense tiene una
valiosa herramienta conocida como Squid, el cual es un servidor proxy en el cual
podemos poner en una lista negra (o blacklist) todas las direcciones URL que no
queremos que sean visitadas en nuestra red).
PROTOCOLOS DE COMUNICACION 2012
30
Una vez hemos instalado los paquetes podremos elegir la pestaña Installed Packages y ver
si estos ha sido instalados satisfactoriamente.
3- Ahora que ya hemos instalado los paquetes, nos aparecerá la opción de Freeradius y de
proxy server en la pestaña de services, el primer cambio que debemos de realizar es
desplazarnos a la pestaña de proxy server en donde elegiremos poner que escuche en
modo transparente.
4- Seguidamente pasaremos a definir una IP estática para la o las interfaces LAN que
vamos a usar mientras que las WAN las editaremos para recibir DHCP, para el caso
usaremos el caso nos dirigimos a la pestaña Interfaces, seleccionamos la interfaz LAN y
escogemos la opción enable interface seguidamente nos desplazamos al combo box
donde elegiremos static seguidamente nos desplazamos y establecemos la dirección ip
de la interfaz y guardaremos los cambios.
5- Hecho esto nos ubicamos en Services elegimos Captive Portal: Es aquí donde
seleccionamos la opción Enable captive portal seguidamente elegiremos la/s
interfaces sobre las cuales se desplegara el portal cautivo en primera instancia, hecho
esto la forma por la cual los usuarios serán autenticados, y varios aspectos más como
habilitar la opción de logout para desconectarse de la red. Además podemos poner una
URL para redireccionar a los usuarios una vez estos han sido autenticados exitosamente
esto a groso modo es una forma de publicidad, para un sitio en especifico, ahora bien se
puede implementar publicidad basada en perfiles.
PROTOCOLOS DE COMUNICACION 2012
31
6- Dado que para nuestro proyecto estamos usando servidores freeradius externos a la
aplicación elegimos RADIUS authentication al hacer esto se nos despliegan las
opciones para ingresar ya sea un servidor local o externo, para el caso elegimos como
servidor primario ubicado en la dirección 172.16.1.3 indicamos esto en la opción
correspondiente y proporcionamos la contraseña para el acceso del cliente radius
(hemos de recordarnos de las marcadas diferencias entre clientes y usuarios de
freeradius). Hacemo el mismo proceso para el servidor freeradius secundario, servidor
que solo entrara en funciones una vez el primario deje de funcionar por algún motivo.
PROTOCOLOS DE COMUNICACION 2012
32
7- Una vez hemos terminado las configuraciones pertinentes y necesarias solo nos queda
guardar todas las configuraciones, hemos de recordar que pfsense es un firewall y que
para nuestro diseño este está enfrente de nuestra nube, lo que quiere decir que esta
directamente a nuestra conexión a internet al mismo tiempo este se encuentra conectado
a nuestro/s NAS y este a su vez esta conectado ya sea directamente o por wireless a
nuestro/s NAS, y cada individuo que desee obtener conexión a internet deberá de
autenticarse, sea este un usuario de ldap, mysql ó cualquier otro soportado por
freeradius, una vez un individuo conecte un dispositivo a la red se le desplegara la
pagina del portal cautivo para que provea sus credenciales.
PROTOCOLOS DE COMUNICACION 2012
33
DDIIAAGGRRAAMMAA DDEE SSOOLLUUCCIIOONN AALL PPRROOBBLLEEMMAA
PROTOCOLOS DE COMUNICACION 2012
34
BBIIBBLLIIOOGGRRAAFFIIAA
http://www.soportejm.com.sv/kb/index.php/article/daloradius
http://www.youtube.com/watch?v=Mw_jrGX635Y
http://www.youtube.com/watch?v=B6Hjxd1Af-s
http://www.alcancelibre.org/staticpages/index.php/como-freeradius-basico
http://vuksan.com/linux/dot1x/802-1x-LDAP.html
Otros pequeños aportes de guías y paginas variadas.
Archivo Publicado en: