servidor freeradius
TRANSCRIPT
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA DE INGENIERIA ELECTRICA
REDES DE COMPUTADORA (RDC-115)
CICLO I-2012
TAREA 1:
“Implementación de un servidor de Radius con gestión web: FreeRadius + daloRadius”
DOCENTE:
Ing. Carlos Osmin Pocasangre.
ALUMNOS:
Manfred Mauricio González Romero
Daniel Alejandro Flores Abrego
Marvin Ivan Hernández Vázquez
Carlos Mauricio Rodríguez Cruz
Ciudad Universitaria, 20 de Abril del 2012.
RADIUS (acrónimo en inglés de Remote Authentication Dial-In User Server). Es un protocolo
de autenticación y autorización para aplicaciones de acceso a la red o movilidad IP. Utiliza el
puerto 1812 UDP para establecer sus conexiones.
Cuando se realiza la conexión con un ISP mediante módem, DSL, cablemódem, Ethernet o
Wi-Fi, se envía una información que generalmente es un nombre de usuario y una
contraseña. Esta información se transfiere a un dispositivo Network Access Server (NAS)
sobre el protocolo PPP, quien redirige la petición a un servidor RADIUS sobre el protocolo
RADIUS.
El servidor RADIUS comprueba que la información es correcta utilizando esquemas de
autenticación 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 dirección IP, y otros parámetros
como L2TP, etc. Una de las características más importantes del protocolo RADIUS es su
capacidad de manejar sesiones, notificando cuando comienza y termina una conexión, así
que al usuario se le podrá determinar su consumo y facturar en consecuencia; los datos se
pueden utilizar con propósitos estadísticos.
En esta entrega vamos a ver cómo montar un servidor RADIUS con gestión Web para
nuestra infraestructura. Con la integración de este servicio conseguiremos unificar en un
lugar todas las peticiones de autenticación que se producen a través de los distintos
dispositivos que soportan este protocolo.
FREERADIUS : Es un open sourcer raduis server, entre sus principales características esta
la facilidad de usar un software de base de datos como openLDAP, MYSQL, Postgresql,
Oracle y soporta varios protocolos de autenticación.
A continuación se describen los pasos necesarios para la instalación, configuración y la
puesta en marcha del del servidor Radius:
Primero instalaremos los servicios necesarios para el uso y la gestion de freeradius.
#sudo apt-get install mysql-server mysql-client phpmyadmin php5 php-pear php5-gd php-DB
Luego instalaremos freeradius y la integración de este con mysql:
#sudo apt-get install freeradius freeradius-mysql
En caso de que los servicios no iniciaran de manera automática despues de la instalación,
estos se puede lograr de la siguiente forma:
#sudo /etc/init.d/apache2 start#sudo /etc/init.d/mysql start#sudo /etc/init.d/freeradius start
Se realiza un procedimiento similar para o reiniciar los servicios sustituyendo la palabra start
por stop o restart según sea el caso.
NOTA: recordar que cada vez que se modifica un archivo de configuración, es necesario
reiniciar el servicio al cual pertenece ese archivo para que los cambios surtan efecto.
Con esto ya podemos hacer pruebas en nuestro servidor radius, mediante la creación o el
uso de algún usuario que se encuentran en el archivo de texto plano llamado “users”. Antes
que nada nos ingresamos como usuario root; Seguidamente nos cambiamos al directorios
donde se encuentran los archivos de configuración:
#sudo -s#cd /etc/freeradius
Para realizar un prueba utilizamos el comando “radtest” de la siguiente manera:
#radtest redes123 1234 192.168.0.103 1812 testing123
El resultado esperado es Access-Accept como se muestra en la siguiente captura:
Si todo sale bien, procederemos a la integración de radius con mysql; para que radius
consulte la lista de usuarios en una base de datos. Creamos la base de datos en mysql.
#mysql -u root -pmysql>CREATE DATABASE radiusmysql>quit
Ahora crearemos las tablas necesarias para radius. Nos desplazamos al directorio que
contiene los scripts para crear las tablas.
#cd /etc/freeradius/sql/mysql
para crear las tablas hacemos lo siguiente:
Usuario Password IP Puerto Password para consultar a radius
#mysql -u root -p radius < nas-sql#mysql -u root -p radius < schema.sql
Si no nos muestra nada en ninguno de los dos casos la creación de las tablas fue exitosa.
Ahora que tenemos creadas las tablas nos regresamos a la carpeta de freeradius y ahi
modificaremos el archivo sql.conf. En el cual se configuran los parámetros con los cuales
freeradius se conectara a la base de datos de mysql.
#gedit sql.conf &
Nota: Es recomendable que el usuario que se conecta a la base de datos sea diferente al
root, y que este tenga privilegios sobre la base de datos radius. Esto se hace de la siguiente
manera:
Mysql> grant all on radius.* to 'usuario'@'localhost' identified by 'password_user';
Ahora modificaremos el archivo radiusd.conf
#gedit radiusd.conf &
Buscamos la sección mostrada y en elApartado de login colocamos el usurio con
El que se ingresara a la base de datos. Y el apartado de password la contraseña
De este usuario.
Casi al final del archivo tambiéndescomentamos la linea:
Readclients = yes
En el archivo buscamos la la linea donde diga $INCLUDE sql.conf y la descomentamos así
como aparece en la captura:
Luego editamos los archivos inner-tunel y default que se encuentran en el directorio “sites-
availables”:
#cd /etc/freeradius/sites-availables#gedit default inner-tunel &
En ambos archivos descomentamos todas las lineas que posean la palabra “sql” como se
muestra en la captura.
Ahora configuraremos el archivo clients.conf que esta en el directorio de freeradius. Es este
archivo incluiremos la información de los router, access point y tambien para la prueba localla
dirección ip de la maquina servidora.
#gedit clients.conf &
En el apartado secret se coloca el password con el cual el router, access point, etc harán las
consultas a radius.
Con esto terminamos la configuración de nuestro servidor radius. Ahora crearemos usuarios
en la base de datos radius en la tabla radcheck. Esto se puede realizar de tres maneras; se
puede ingresar al interprete de comando de mysql y hacer todo desde linea de comando. Se
puede hacer mediante el uso del administrador vía navegador web phpmyadmin o mediante
el uso de daloradius, que es el mas fácil de todos, pero este sera utilizara después. Entonces
para facilitar las cosas utilizaremos phpmyadmin.
Abrimos un navegador web y en la barra de url ingresaremos de la siguiente manera:
http://localhost/phpmyadmin o con la ip de la maquina donde se están ejecutando los
servicios que en nuestro caso es: 192.168.0.103/phpmyadmin. Al ingresar veremos lo
siguientes campos donde ingresaremos el usuario y la contraseña para entrar a la base de
datos.
Elegimos la base de datos de radius
Elegimos la tabla radcheck
Le damos insertar para crear un nuevo usuario
Lista de usuarios existentes en la basede datos.
Nombre de usuarioCleartext-password
password:=
Creamos tantos usuarios como queramos de esta forma. Ahora podemso realizar una prueba
con radtest para ver si lee a los usuarios desde la base de datos.
#radtest man3b1 1234 192.168.0.103 1812 testing123-2
Como no tenemos errores ahora procederemos a instalar daloradius. DaloRADIUS es una
plataforma de RADIUS web avanzada dirigida a la gestión de puntos de acceso y de uso
general despliegues ISP. DaloRADIUS está escrito en PHP y JavaScript, y utiliza una capa
de abstracción de base de datos de lo que significa que es compatible con muchos sistemas
de bases de datos, entre ellos el popular MySQL, PostgreSQL, SQLite, MSSQL, y muchos
otros.
Primero descargamos de la pagina de daloradius la ultima versión de este. En nuestro caso
es la “daloradius-0.9-9.tar.gz”. Nos desplazamos al directorio donde se haya descargado y en
una terminal los descomprimimos de la siguiente forma:
#tar xvzf daloradius-0.9-9.tar.gz
NOTA: Es muy importante descomprimirlo desde la terminal, puesto que si se hace mediante
el gestor de archivadores gráfico, no funcionara correctamente.
Copiamos la carpeta desciomprimida la directorio de publicación de apache:
#cp daloradius-0.9-9 /var/www/daloradius -R
Ahora cambiamos los permisos y propiedades del directorio de daloradius:
#chown www-data:www-data /var/www/daloradius/ -R
Cambiamos los permisos del archivo:
#chmod 644 /var/www/daloradius/library/daloradius.conf.php
Para que Daloradius funcione correctamente, se requiere agregar algunas tablas mas a la base de datos de MySQL. Estas tablas ya están incluidas en el directorio de DaloRadius, por lo que solo es necesario ejecutar el siguiente comando:
#mysql -u root -p radius < /var/www/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
Seguidamente editamos el archivo daloradius.conf.php para poner 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
Una vez hecho esto, reiniciamos el apache:
#/etc/init.d/apache2 restart
Ahora ya podemos accesar al GUI usando el siguiente enlace:
http://192.168.0.103/daloradius
Por defecto el usuario y la contraseña son:
Usuario: Administrator Password: radius
Para ingresar un nuevo usuario nos vamos a “Management”, después al costado izquierdo le damos en “New User”.
Ingresamos los datos en los campos mostrados y lo guardamos. Después si queremos ver la lista de usuarios le damos en “List Users” como se muestra en la captura de abajo.
Si queremos agregar muchos usuarios a la vez, nos vamos a la opción “import users”. Para ingresar los usuarios se hacen de la siguiente manera:
usuari1, password1,
usuario2, password2,
usuario3, password3,
.
.
.
.
usuarioN, passwordN,
Y luego le damos Apply, y con esto es se guardan los usuarios.
Con esto esta completo nuestro servidor radius, ahora para montar la infraestructura para que este entre en función. En nuestra practica utilizamos una pc funcionando como router mediante m0n0wall (router con portal cautivo), usamos un router configurado como un access point y con una contraseña cifrada en WEP como primera barrera de defensa.
En una de las interfases del router esta conectada la WAN y en otra de las interfases específicamente la LAN3 conectamos el router tonto.
NOTA: En este reporte no entraremos en detalles como se instala m0n0wall solo su configuración para que funcione como portal cautivo.
Para ingresar a la interfase web de configuración de m0n0wall lo hacemos utilizando cualquier navegador web he ingresamos la siguiente IP: https://172.16.2.1:10000
En la pantalla pagina principal nosDesplazamos en el muen de la izquierda
Hasta la opción de “Captive portal”
Interfase donde esta el Router en el router m0n0
Pagina a la que sera redirigidoDespues de ingresar.
Seleccionamos
IP de nuestro servidorRadius
Puerto de escucha
Password para hacerConsultas a radius
En esta opción uno puede Guardar una pagina web, con
Nuestro diseño dondeAparecerán los campos de
Usuario y password
Para que nuestro servidor radius deje Que le hagan consultas agregamos a
Client.conf un nuevo cliente que sera laDirección IP del router m0n0wall
PRUEBA Se selecciona la red
Ingresamos el pass del WAPDel router
Cando abrimos un navegador, lo primero que Nos aparece es la pagina diseñada para poner
El usuario y el password con el que se realizaraLa consulta a radius y si ellos esta en la base
De datos el router no direeciona a www.google.com.sv