SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Área de la Energía, las Industrias y los Recursos
Naturales No Renovables
“TESIS PREVIA A LA OBTENCIÓN
DEL TÍTULO EN INGENIERO EN
SISTEMAS”
AUTORES:
Fabricio Alejandro Flores Gallardo
Lisset Alexandra Neyra Romero
DIRECTOR:
Ing. Juan Manuel Galindo Vera
Loja-Ecuador
2012
2
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
MANUAL TÉCNICO
1. ÍNDICE GENERAL
1. ÍNDICE GENERAL........................................................................................2
2. INDICE DE FIGURAS...................................................................................4
3. INTRODUCCIÓN...........................................................................................5
4. ¿A QUIÉN VA DIRIGIDO EL MANUAL?...................................................5
5. CONSIDERACIONES PREVIAS................................................................5
6. REQUERIMIENTOS DEL SISTEMA..........................................................5
7. CONFIGURACIONES PREVIAS................................................................6
7.1. Instalación de paquetes............................................................................6
7.2. Configuración de interfaces de red.........................................................9
7.3. Configuración del ip_forward .................................................................10
7.4. Activación del modo tun..........................................................................11
8. CONFIGURACIÓN DEL SERVIDOR.......................................................11
8.1. FreeRADIUS.............................................................................................12
8.1.1. Instalación de paquetes de FreeRADIUS ........................................12
8.1.2. Configuración de la base de datos....................................................12
8.1.3. Configuración de la conexión con la base de datos.......................14
8.1.4. Configuración de la Autorización y Contabilidad.............................15
8.1.5. Conexión con el web services del S.G.A..........................................16
8.1.6. Configuración del cliente localhost....................................................17
8.1.7. Arrancando FreeRADIUS....................................................................18
8.2. Coovachilli.................................................................................................20
8.2.1. Instalación..............................................................................................20
8.2.2. Configuración del archivo principal de CoovaChilli.........................20
8.2.3. Configuración del portal cautivo.........................................................23
8.2.4. Archivo hotspotlogin.php.....................................................................24
3
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
8.2.5. Creación del archivo ipup.sh ..............................................................35
8.2.6. Generación de certificados SSL apache2.......................................38
8.2.7. Creación de host virtual.......................................................................39
8.3. daloRADIUS..............................................................................................43
8.3.1. Instalación..............................................................................................43
8.3.2. Configuración ........................................................................................44
8.4. Errores Comunes.....................................................................................46
8.4.1. Error al crear el directorio /var/log/freeradius/radacct ....................46
8.4.2. Error de reinicio de servicio FreeRADIUS.......................................47
8.4.3. Error al leer los logs de daloRADIUS................................................48
4
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
2. INDICE DE FIGURAS
Figura 1. Taskel............................................................................... 7
Figura 2. Introducir Contraseña MySQL para el usuario root........... 8
Figura 3. Ventana de configuración de certificado SSL ................. 39
Figura 4. Dirección de Ingreso con IP ........................................... 45
Figura 5. Dirección de Ingreso con dominio .................................. 45
Figura 6. Ventana de Logeo.......................................................... 46
Figura 7. Error al levantar el servicio FreeRADIUS ....................... 47
Figura 8. Archivo rc.local............................................................... 48
5
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
3. INTRODUCCIÓN
El presente manual técnico tiene como objetivo fundamental
presentar de una manera detallada y concreta los pasos a seguir
para poder configurar adecuadamente el servidor RADIUS con un
portal cautivo para la Universidad Nacional de Loja.
4. ¿A QUIÉN VA DIRIGIDO EL MANUAL?
El manual va dirigido a los administradores de red de la Unidad de
Telecomunicaciones e Información de la Universidad Nacional de
Loja. Además se plantea como una solución para personas que
deseen implementar una solución similar en cualquier otro ámbito.
5. CONSIDERACIONES PREVIAS
Para configurar adecuadamente el servidor se debe tomar en
cuenta que primeramente se debe tener ciertas consideraciones
como:
 Conocimientos previos en Linux Ubuntu Server (Instalación y
Configuración)
 Conocimientos previos de networking (redes, NAT, iptables)
6. REQUERIMIENTOS DEL SISTEMA
Para la instalación y configuración del servidor RADIUS con un
portal cautivo para la Universidad Nacional de Loja es necesario
ciertos requerimientos importantes tanto en hardware como en
software.
Tomando en cuenta el estudio realizado durante el desarrollo del
presente proyecto se ha considerado que los requerimientos
6
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
mínimos para el correcto funcionamiento del servidor son los
siguientes:
Hardware:
 Procesador: Intel Core2Duo CPU E7500 @ 2.93 GHz x 2
 2 GB de Memoria RAM
 320 GB de Disco Duro
 Dos tarjetas de red Ethernet
Software:
 Ubuntu Server 12.04
 FreeRADIUS versión 2.1.10
 CoovaChilli versión 1.2.6
 daloRADIUS versión 0.9.9
7. CONFIGURACIONES PREVIAS
Para la configuración adecuada del servidor es necesario realizar
primeramente unas configuraciones al sistema operativo.
7.1. Instalación de paquetes
Luego de la instalación del sistema operativo lo primero que se
debe hacer es actualizar el listado de paquetes, lo que se realiza
con el siguiente comando.
$ sudo apt-get update
Posteriormente procedemos a instalar tasksel, que es un sistema
de instalación de paquetes por consola. Tasksel agrupa los
7
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
paquetes de software por tareas y ofrece un modo sencillo de
instalar todos los paquetes que son necesarios para dicha tarea.
Se Instala tasksel con el siguiente comando:
$ sudo apt-get install tasksel
Ahora se ejecuta Tasksel:
$ sudo tasksel
A continuación se presentará dentro del terminal una pantalla con
varios paquetes de software, en donde se va a seleccionar los
paquetes que interesan: LAMP server y OpenSSH server.
Figura 1. Taskel
Tasksel se encargará de descargar todos los paquetes y
dependencias tanto del LAMP Server (Apache, MySQL y Php) y de
OpenSSH.
Durante la instalación del LAMP Server va a pedir la contraseña de
root para MySQL, entonces se procederá a colocarla.
8
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Figura 2. Introducir Contraseña MySQL para el usuario
root
Además de los paquetes anteriores, es también necesario instalar
algunos paquetes indispensables para el correcto funcionamiento
de todas las aplicaciones que van a funcionar en el servidor.
$ sudo apt-get install debhelper libltdl3-dev
libpam0g-dev libmysqlclient15-dev build-essential
libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-
dev libkrb5-dev snmp autotools-dev dpatch libperl-
dev libtool dpkg-dev libpq-dev libsnmp-dev libssl-
dev php5 php5-mysql php-pear php5-gd php-DB
libxml-simple-perl libxml-libxml-simple-perl
libtest-xml-simple-perl libdbi-perl libwww-perl
9
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
7.2. Configuración de interfaces de red
Como se dijo anteriormente, el equipo necesita dos tarjetas de red.
Una tarjeta de red (eth0) tiene que estar conectada a la red y
configurada para internet.
La otra tarjeta de red tiene que dejarse sin configuración. Esto
significa, no IP estática y no DHCP. Esto se logra previniendo que el
Administrador de Red, manipule la tarjeta.
Para evitar que el Administrador de Red manipule la tarjeta, se tiene
que editar /etc/network/interfaces.
$ sudo vi /etc/network/interfaces
En el archivo se debe añadir la interfaz como una tarjeta de
configuración manual.
En este caso, la tarjeta de red en la que funcionara con el portal
cautivo (hacia la red inalámbrica) es eth1, y con la configuración
estática de la interfaz de red eth0 para que se conecte a internet, el
archivo quedará de la siguiente manera.
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address x.x.x.x
netmask x.x.x.x
network x.x.x.x
broadcast x.x.x.x
10
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
gateway x.x.x.x
dns-nameservers x.x.x.x
dns-search unl.edu.ec
iface eth1 inet manual
Luego se procede a reiniciar los servicios de red para que se
apliquen los cambios con el siguiente comando:
$ sudo /etc/init.d/networking restart
De esta forma se esta configurando el interfaz eth0 para que tenga
una dirección IP estática, dejando la interfaz eth1 (que estará
conectada a los puntos de acceso) a merced del portal cautivo, que
será el que la administre.
7.3. Configuración del ip_forward
El mecanismo de IP forwarding se encarga de la retransmisión de
los paquetes que se reciben por una interfaz física y de
retransmitirlos por otra interfaz. El IP forwarding debe ser habilitado,
pues una vez que el usuario se autentique a través del portal
cautivo se redireccionará su tráfico hacia la interfaz de red eth0,
permitiendo así que el usuario pueda navegar. Para habilitar la
función de IP forwarding se necesita configurar el archivo
/etc/sysctl.conf con el siguiente comando:
$ vi /etc/sysctl.conf
Allí se busca la línea net.ipv4.ip_forward=1 y se la descomenta.
net.ipv4.ip_forward=1
11
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Además, es necesario cambiar el valor a 1 del IP forwarding en
/proc/sys/net/ipv4/ip_forward con el siguiente comando:
$ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Y se reinicia nuevamente el servicio de networking.
$ sudo /etc/init.d/networking restart
7.4. Activación del modo tun
Para finalizar con la configuración de las interfaces de red, se debe
habilitar el módulo tun, ya que este permitirá a Coovachilli hacer un
“túnel” entre las interfaces eth0 y la red virtual que crea en eth1.
Para ello ejecutamos los siguientes comandos:
$ sudo modprobe tun
Con esta orden cargamos el módulo tun en el kernel del sistema
directamente sin tener que reiniciar. Además tenemos que
agregarlo la palabra “tun” al final del archivo /etc/modules
$ sudo vi /etc/modules
8. CONFIGURACIÓN DEL SERVIDOR
Luego de dejar preparado el servidor con todas las configuraciones
anteriormente explicadas se procederá a instalar y configurar los
paquetes de software utilizados para el correcto funcionamiento del
servidor. Ellos son: FreeRADIUS, CoovaChilli y daloRADIUS.
12
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
8.1. FreeRADIUS
A continuación se describirá el procedimiento correcto para la
instalación y configuración del servidor RADIUS usando
FreeRADIUS.
8.1.1.Instalación de paquetes de FreeRADIUS
La instalación de FreeRADIUS sobre Ubuntu no es compleja,
puesto que se encuentran los paquetes dentro de los repositorios.
$ sudo apt-get install freeradius freeradius-mysql
freeradius-utils
Con el comando anterior se realiza el proceso de instalación de
FreeRADIUS y de las librerías adicionales que va a requiere para su
correcto funcionamiento.
8.1.2.Configuración de la base de datos
Luego de la instalación de los paquetes de FreeRADIUS se tiene
que realizar la configuración de la base de datos que va a usar
FreeRADIUS para obtener los usuarios. Cabe resaltar que
primeramente los usuarios los va a obtener mediante el web
services del Sistema de Gestión Académica de la Universidad
Nacional de Loja, pero se van a almacenar en una base de datos
local, para asegurar conectividad así el web services no esté
disponible.
Se accede a la consola de MySQL, se digita la contraseña y se crea
la base de datos que va a utilizar FreeRADIUS en este caso se
llama radius.
13
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
$ mysql –u root –p
Enter password:
Welcome to the MySql monitor. Commands end with ;
or g.
mysql> CREATE DATABASE radius;
Luego se debe de crear un usuario para que pueda acceder a la
base de datos con todos los privilegios.
mysql> GRANT ALL ON radius.*TO radius@localhost
IDENTIFIED BY ”clavesegura”;
En este caso se asume que la Base de datos se llama "radius" y se
creó un usuario también "radius" con la contraseña "clavesegura".
Finalmente se debe de salir del promp de MySQL.
mysql> exit;
Las tablas que usa FreeRADIUS se encuentran almacenadas
dentro del directorio /etc/freeradius/sql/mysql/. Para ello
primeramente se tiene que loguear como superusuario (root) para
acceder a ese directorio.
radius@radius:~# sudo su
[sudo] password for radius:
root@radius:/home/radius# cd
/etc/freeradius/sql/mysql/
Se debe ejecutar los scripts sql que se encuentran en ese directorio.
root@radius:/etc/freeradius/sql/mysql# mysql –u
root –p radius < ippool.sql
14
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
root@radius:/etc/freeradius/sql/mysql# mysql –u
root –p radius < nas.sql
root@radius:/etc/freeradius/sql/mysql# mysql –u
root –p radius < schema.sql
8.1.3.Configuración de la conexión con la base de datos
Aquí se configurará los parámetros para se conecte FreeRADIUS
con la base de datos ya creada anteriormente para lo cual se realiza
lo siguiente:
Se edita el archivo /etc/freeradius/sql.conf que es un archivo
donde se encuentran todas las configuraciones de conexión de
FreeRADIUS con MySQL.
root@radius:#~ vi /etc/freeradius/sql.conf
En el archivo se debe modificar las líneas correspondientes a la
conexión con el server de MySQ como lo son:
Server: “localhost”
Login: “radius” que es el usuario que se creó anteriormente.
Password: “clavesegura” que es la clave que corresponde a ese
usuario.
sql {
database = “mysql”
driver = “rlm_sql_${database}”
server = “localhost”
login = “radius”
password = “clavesegura”
15
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Además dentro del mismo archivo se descomenta la variable:
readclients = yes. El descomentar esta línea permite que se lea
los clientes radius desde la base de datos.
readclients = yes
8.1.4.Configuración de la Autorización y Contabilidad
Se debe editar el Archivo: /etc/freeradius/sites-available/default y
agregar la variable "sql" en las secciones de: authorize{},
accounting{}, session{}, post-auth{}. También se agrega la variable
“perl” antes de “sql” en authorize. Esto permitirá que primero se
realice la conexión con el web services del S.G.A. y luego realizar la
autorización y la contabilidad desde MySQL.
root@radius:#~ vi /etc/freeradius/sites-
available/default
authorize {
preprocess
chap
mschap
digest
suffix
eap {
ok = return
}
files
perl
sql
expiration
logintime
pap
}
accounting {
detail
unix
16
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
radutmp
sql
exec
attr_filter.accounting_response
}
Luego se edita el archivo de configuración principal de
FreeRADIUS, y se procede a descomentar la línea $INCLUDE
sql.conf
root@radius:#~ vi /etc/freeradius/radiusd.conf
# Include another file that has the SQL-related
configuration.
# This is another file only because it tends to be
big.
#
$INCLUDE slq.conf
8.1.5.Conexión con el web services del S.G.A
Para la conexión de FreeRADIUS con el web services del S.G.A. es
necesario desarrollar un script en el lenguaje Perl, en el cual se
deben enviar como parámetros el usuario y la contraseña obtenidos
de la solicitud (request) y agregarlos a la base de datos local. El
código del scipt Perl se encuentran en el CD ajunto a la
documentación.
El script debe estar ubicado dentro del directorio principal de
FreeRADIUS /etc/freeradius/ y se debe editar el archivo
/etc/freeradius/modules/perl
root@radius:#~ vim /etc/freeradius/modules/perl
17
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Y en la línea module especificar la ruta del archivo.
Perl {
module = ${confdir}/example.pl
8.1.6.Configuración del cliente localhost
Es necesario agregar un cliente en FreeRADIUS para que el portal
cautivo se comunique con el servidor RADIUS, ya que en este caso
tanto FreeRADIUS como el portal cautivo estarán instalados en el
mismo equipo el cliente va a ser localhost en caso de que estén en
distintos equipos ahí se debería de configurar la dirección IP del
portal cautivo.
Para mayor seguridad, se requiere que se coloque una contraseña
para el cliente localhost puesto que ese cliente va a ser el portal
cautivo que va a estar en el mismo servidor. Para ello se modifica el
archivo clients.conf
root@radius:#~ vi /etc/freeradius/clients.conf
Se edita la contraseña que se encuentra en el parámetro secret
dentro del cliente localhost.
client localhost {
ipaddr = 127.0.0.1
secret = clavesegura2
18
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
8.1.7.Arrancando FreeRADIUS
Es importante saber que cuando se instaló FreeRADIUS se ejecutó
el servicio es por eso que se debe de parar para poder iniciarlo
nuevamente con el sript de perl.
root@radius:#~ /etc/init.d/freeradius stop
La razón por la que se para el servicio y no se lo reinicia es porque
para arrancar correctamente es necesario que antes del comando
de iniciar el servicio se coloque un comando, el cual hace que las
librerías que utiliza el script perl se carguen antes de la ejecución de
freeRadius y se pueda levantar el servicio y ejecutar el script.
Para ver que versión de perl que esta en el equipo se ejecuta el
siguiente comando.
root@radius:#~ perl -V | grep libperl
Cuando se conoce la versión de perl en este caso libperl.so.5.14.2
se puede ejecutar el comando para iniciar, reiniciar o detener
FreeRADIUS.
root@radius:#~
LD_PRELOAD=/usr/lib/libperl.so.5.14.2
/etc/init.d/freeradius restart
Para comprobar la conexión y funcionalidad tanto del script perl
como la configuración de FreeRADIUS existe el comando radtest el
19
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
cual permite simular una solicitud de acceso RADIUS y comprueba
tanto conectividad como parámetros de envío.
root@radius:#~ radtest usuarioSGA claveSGA
127.0.0.1 1812 clavesegura2
Donde:
 radtest: nombre del comando
 usuarioSGA: usuario almacenado en el Sistema de Gestión
Académico
 claveSGA: clave del usuario almacenado en el Sistema de
Gestión Académico
 127.0.0.1: cliente de FreeRADIUS
 1812: Puerto por donde escucha la solicitud FreeRADIUS
 clavesegura2: clave del cliente de FreeRADIUS
Una vez enviada la solicitud de acceso, FreeRADIUS se encarga de
receptar esta solicitud y dar una respuesta.
Sending Access-Request of id 42 to 127.0.0.1 port
1812
User-Name = “usuarioSGA”
User-Password = “claveSGA”
NAS-IP-Address = x.x.x.x
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1
port 1812, id=42, length=20
En este caso, al ser correctas las credenciales la solicitud de
acceso receptada se acepta al usuario.
20
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
8.2. Coovachilli
A continuación de detalla cuidadosamente el procedimiento de la
instalación y configuración de CoovaChilli (portal cautivo) lo que
permitirá su adecuado funcionamiento.
8.2.1.Instalación
Para configurar Coovachilli lo primero que hay que realizar es
descargar la última versión desde la página oficial de Coovachilli.
root@radius:#~ wget
hhtp://ap.coova.org/chilli/coova-
chilli_1.2.6_i386.deb
Luego se procede a instalar del paquete descargado.
root@radius:#~ dpkg –i coova-chilli_1.2.6_i386.deb
8.2.2.Configuración del archivo principal de CoovaChilli
Dentro de los archivos de CoovaChilli viene un archivo de ejemplo
donde están todas las configuraciones globales del portal cautivo.
Se procede a copiar el archivo de muestra y renombrarlo como
config.
root@radius:#~ cp /etc/chilli/defaults
/etc/chilli/config
Se edita el archivo anteriormente creado en donde se encuentran
todas las directivas, las cuales se modificaran de acuerdo a las
necesidades.
21
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
root@radius:#~ vi /etc/chilli/config
En este caso se seleccionó la red 10.1.0.0 /24 para la interfaz eth1
que es donde se va a recibir las solicitudes de acceso y la interfaz
eth0 es donde va tener la conexión con la red de la universidad y el
internet.
A continuación se muestra los parámetros configurados.
HS_WANIF=eth0 #WAN Interface toward the
Internet
HS_LANIF=eth1 #Subscriber Interface for
client devices
HS_NETWORK=10.1.0.0 #HotSpot Network (must
include HS_UAMLISTEN)
HS_NETMASK=255.255.255.0 #HotSpot Network Netmask
HS_UAMLISTEN=10.1.0.1 #HotSpot IP Address (on
subscriber network)
HS_UAMPORT=3990 #HotSpot UAM Port (on
subscriber network)
HS_DNS1=x.x.x.x
HS_DNS2=10.1.0.1
###
# HotSpot settings for simple Captive Portal
#
HS_NASID=nas01
HS_RADIUS=127.0.0.1 #o localhost
HS_RADIUS2=127.0.0.1
HS_UAMALLOW=10.1.0.1/24
HS_RADSECRET=clavesegura2 # Set to be your
RADIUS shared secret
HS_UAMSECRET=clavesegura3 # Set to be your UAM
secret
HS_UAMALIASNAME=chilli
HS_UAMFORMAT=https://$HS_UAMLISTEN/cgi-
bin/hotspotlogin.php
HS_DEFSESSIONTIMEOUT=7200
22
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
HS_DEFIDLETIMEOUT=1800
Donde:
HS_LANIF: Interfaz de red donde se va a escuchar las peticiones
DHCP y donde se conecta los puntos de acceso en este caso es la
eth1.
HS_NETWORK: Dirección de red del portal cautivo.
HS_NETMASK: Dirección de mascara de la red del portal cautivo.
HS_UAMPORT: Puerto donde escucha CoovaChilli.
HS_DNS1: Dirección IP del DNS (Sistema de Nombres de
Dominio).
HS_RADIUS: Aquí se define la dirección IP del servidor RADIUS en
este caso como el servidor esta en el mismo equipo que el portal
cautivo se define la IP del localhost.
HS_RADIUS2: Dirección de IP del servidor RADIUS.
HS_RADSECRET: Clave secreta del cliente localhost de
FreeRADIUS que se agregó anteriormente en el archivo
clients.conf.
HS_UAMSECRET: clave segura del portal cautivo.
HS_UAMFORMAT: Ruta donde se ubica el archivo que se muestra
al usuario al momento de conectarse al servidor RADIUS, en este
caso se llama hotspotlogin.php el cual se lo describe más adelante.
HS_DEFSESSIONTIMEOUT: tiempo que va a durar las sesiones
de los usuarios logeados definido en segundos.
23
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
HS_DEFIDLETIMEOUT: tiempo de inactividad para desconectar a
un usuario, también esta definido en segundos.
8.2.3.Configuración del portal cautivo
Se crea el directorio donde van a estar almacenados archivos
propios del portal cautivo.
root@radius:#~ mkdir –p /var/www/hotspot/uam
Luego se debe de copiar los archivos necesarios para el
funcionamiento de Coovachilli al directorio anteriormente creado.
root@radius:#~ cp /etc/chilli/www/*
/var/www/hotspot
Se accede al directorio en donde se va a descargar archivos
adicionales para el correcto funcionamiento del portal cautivo.
root@radius:#~ cd /var/www/hotspot/uam
Y se procede a descargarlas
root@radius:#~ wget http://ap.coova.org/uam/
Se hace un cambio dentro del archivo
/var/www/hotspot/uam/index.html ubicando la dirección IP del
portal cautivo.
root@radius:#~ sed –i
‘s/coova.org/js/chilli.js/10.1.0.1/uam/chilli.
js/g’ /var/www/hotspot/uam/index.html
24
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Se edita el archivo /etc/default/chilli y se modifica la ruta del
archivo de configuración.
root@radius:#~ vi /etc/default/chilli
Para que inicie coovachilli automáticamente se debe poner 1 en
START_CHILLI y además para no tener problemas con el usuario
que va a manipular el Coovachilli se coloca root en HS_USER
START_CHILLI=1
CONFFILE=”/etc/chilli.conf”
HS_USER=”root”
8.2.4.Archivo hotspotlogin.php
Para la parte visible al usuario donde ingresara los credenciales
(Cedula de identidad y clave del SGA) se procedió a modificar un
archivo proporcionado por chillispot.org que originalmente esta
hecho en perl el cual se lo convirtió a un archivo php.
Este archivo se encuentra ubicado en el directorio del servidor web
apache2 en /var/www/hotspot/cgi-bin/. tambien se adecuó de
acuerdo a las sugerencias de los administradores del departamento
de redes de la Unidad de Redes y Telecomunicaciones.
A continuación se muestra el archivo hotspotlogin.php $uamsecret
debido a que aquí se pone la clave que se configuró en el archivo
principal de CoovaChilli en HS_UAMSECRET, también se fijó en
la variable $redirurl = 'http://www.unl.edu.ec'; ya que esto
permitirá que después de logearse el portal cautivo lo redireccione a
la pagina de la universidad.
25
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
<head>
<style type="text/css">
#body{
background-image:
url(https://10.1.0.1/fondo3.jpg);
background-repeat: no-repeat;
background-attachment: fixed;
background-position: 50% 0%;
}
</style>
</head>
<div id="body">
<?php
$uamsecret = "clavesegura3";
$userpassword=1;
$loginpath = "hotspotlogin.php";
$titel = '';
$headline = '';
$bodytext = '';
$body_onload = '';
$footer_text = '<center>
<br><img src="https://10.1.0.1/1.png">
<br><br><br>Si experimenta errores en
conexion contactarse
<br>por favor al (07) 2547252 ext. 127 o
envie un correo a
<br><A
HREF="mailto:soporte@unl.edu.ec">soporte@unl.edu.e
c</A>
</center>';
# attempt to login
if ($_GET['login'] == login) {
$hexchal = pack ("H32", $_GET['chal']);
if (isset ($uamsecret)) {
$newchal = pack ("H*", md5($hexchal .
$uamsecret));
} else {
$newchal = $hexchal;
}
26
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
$response = md5("0" . $_GET['Password'] .
$newchal);
$newpwd = pack("a32", $_GET['Password']);
$pappassword = implode ("", unpack("H32",
($newpwd ^ $newchal)));
$titel = 'Inicio de Sesion red UNL';
$headline = 'Inicio de Sesion red UNL';
$bodytext = '';
print_header();
if ((isset ($uamsecret)) &&
isset($userpassword)) {
print '<meta http-equiv="refresh"
content="0;url=http://' . $_GET['uamip'] . ':' .
$_GET['uamport'] . '/logon?username=' .
$_GET['UserName'] . '&password=' . $pappassword .
'">';
} else {
print '<meta http-equiv="refresh"
content="0;url=http://' . $_GET['uamip'] . ':' .
$_GET['uamport'] . '/logon?username=' .
$_GET['UserName'] . '&response=' . $response .
'&userurl=' . $_GET['userurl'] . '">';
}
print_body();
print_footer();
}
# 1: Login successful
if ($_GET['res'] == success) {
$result = 1;
$titel = 'Registrado en red UNL';
$headline = 'Registrado en red UNL';
$bodytext = 'Bienvenido';
$body_onload = 'onLoad="javascript:popUp(' .
$loginpath . '?res=popup&uamip=' . $_GET['uamip']
27
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
. '&uamport=' . $_GET['uamport'] . '&timeleft=' .
$_GET['timeleft'] . ')"';
print_header();
print_body();
if ($reply) {
print '<center>' . $reply .
'</BR></BR></center>';
}
print '<center><a href="http://' .
$_GET['uamip'] . ':' . $_GET['uamport'] .
'/logoff">Cerrar Sesion</a></center>';
print_footer();
}
# 2: Login failed
if ($_GET['res'] == failed) {
$result = 2;
$titel = 'Registro Fallido';
$headline = 'Registro Fallido';
$bodytext = 'Disculpe, intente nuevamente<br>';
print_header();
print_body();
if ($_GET['reply']) {
print '<center>' . $_GET['reply'] .
'</center>';
}
print_login_form();
print_footer();
}
# 3: Logged out
if ($_GET['res'] == logoff) {
28
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
$result = 3;
$titel = 'Desconectado de red UNL';
$headline = 'Desconectado de red UNL';
$bodytext = '<a href="http://' . $_GET['uamip']
. ':' . $_GET['uamport'] . '/prelogin">Login</a>';
print_header();
print_body();
print_footer();
}
# 4: Tried to login while already logged in
if ($_GET['res'] == already) {
$result = 4;
$titel = 'Sesion ya iniciada en red UNL';
$headline = 'Sesion ya iniciada en red UNL';
$bodytext = '<a href="http://' . $_GET['uamip']
. ':' . $_GET['uamport'] . '/logoff">Logout</a>';
print_header();
print_body();
print_footer();
}
# 5: Not logged in yet
if ($_GET['res'] == notyet) {
$result = 5;
$titel = 'Bienvenido a la red UNL';
$headline = 'Bienvenido a la red UNL';
$bodytext = 'Usted esta intentando acceder a la
red de la UNL<br>Por favor use sus datos del
S.G.A.';
print_header();
print_body();
print_login_form();
print_footer();
}
29
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
#11: Popup1
if ($_GET['res'] == popup1) {
$result = 11;
$titel = 'Ingresando a red UNL';
$headline = 'Ingresando a red UNL';
$bodytext = 'por favor espere...';
print_header();
print_body();
print_footer();
}
#12: Popup2
if ($_GET['res'] == popup2) {
$result = 12;
$titel = 'Sesion iniciada en red UNL';
$headline = 'Sesion iniciada en red UNL';
$bodytext = '<a href="http://' . $_GET['uamip']
. ':' . $_GET['uamport'] . '/logoff">Cerrar
Sesion</a>';
print_header();
print_body();
print_footer();
}
#13: Popup3
if ($_GET['res'] == popup3) {
$result = 13;
$titel = 'Desconectado de red UNL';
$headline = 'Desconectado de red UNL';
$bodytext = '<a href="http://' . $_GET['uamip']
. ':' . $_GET['uamport'] . '/prelogin">Iniciar
Sesion</a>';
print_header();
print_body();
print_footer();
}
# 0: It was not a form request
# Send out an error message
if ($_GET['res'] == "") {
30
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
$result = 0;
$titel = 'Atencion. No debe estar aqui';
$headline = 'Inicio de Sesion Fallido';
$bodytext = 'Salga de aqui inmediatamente. El
logueo debe realizarse mediante el demonio';
print_header();
print_body();
print_footer();
}
# functions
function print_header(){
global $titel, $loginpath;
$uamip = $_GET['uamip'];
$uamport = $_GET['uamport'];
print "
<html>
<head>
<title>$titel</title>
<meta http-equiv="Cache-control"
content="no-cache">
<meta http-equiv="Pragma" content="no-
cache">
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-
1">
<SCRIPT LANGUAGE="JavaScript">
var blur = 0;
var starttime = new Date();
var startclock = starttime.getTime();
var mytimeleft = 0;
function doTime() {
window.setTimeout( "doTime()", 1000 );
t = new Date();
31
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
time = Math.round((t.getTime() -
starttime.getTime())/1000);
if (mytimeleft) {
time = mytimeleft - time;
if (time <= 0) {
window.location =
"$loginpath?res=popup3&uamip=$uamip&uamport=$uamp
ort";
}
}
if (time < 0) time = 0;
hours = (time - (time % 3600)) / 3600;
time = time - (hours * 3600);
mins = (time - (time % 60)) / 60;
secs = time - (mins * 60);
if (hours < 10) hours = "0" + hours;
if (mins < 10) mins = "0" + mins;
if (secs < 10) secs = "0" + secs;
title = "Online time: " + hours + ":" +
mins + ":" + secs;
if (mytimeleft) {
title = "Remaining time: " + hours +
":" + mins + ":" + secs;
}
if(document.all || document.getElementById){
document.title = title;
}
else {
self.status = title;
}
}
function popUp(URL) {
if (self.name != "chillispot_popup") {
chillispot_popup = window.open(URL,
'chillispot_popup',
'toolbar=0,scrollbars=0,location=0,statusbar=0,men
ubar=0,resizable=1,width=500,height=375');
}
}
function doOnLoad(result, URL, userurl,
redirurl, timeleft) {
32
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
if (timeleft) {
mytimeleft = timeleft;
}
if ((result == 1) && (self.name ==
"chillispot_popup")) {
doTime();
}
if ((result == 1) && (self.name !=
"chillispot_popup")) {
chillispot_popup = window.open(URL,
'chillispot_popup',
'toolbar=0,scrollbars=0,location=0,statusbar=0,men
ubar=0,resizable=1,width=500,height=375');
}
if ((result == 2) || result == 5) {
document.form1.UserName.focus()
}
if ((result == 2) && (self.name !=
"chillispot_popup")) {
chillispot_popup = window.open('',
'chillispot_popup',
'toolbar=0,scrollbars=0,location=0,statusbar=0,men
ubar=0,resizable=1,width=400,height=200');
chillispot_popup.close();
}
if ((result == 12) && (self.name ==
"chillispot_popup")) {
doTime();
if (redirurl) {
opener.location = redirurl;
}
else if (opener.home) {
opener.home();
}
else {
opener.location = "about:home";
}
self.focus();
blur = 0;
}
if ((result == 13) && (self.name ==
"chillispot_popup")) {
33
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
self.focus();
blur = 1;
}
}
function doOnBlur(result) {
if ((result == 12) && (self.name ==
"chillispot_popup")) {
if (blur == 0) {
blur = 1;
self.focus();
}
}
}
</script>";
}
function print_body(){
global $headline, $bodytext, $body_onload,
$result, $loginpath;
$uamip = $_GET['uamip'];
$uamport = $_GET['uamport'];
$userurl = $_GET['userurl'];
$redirurl = 'http://www.unl.edu.ec';
$userurldecode = $_GET['userurl'];
$redirurldecode = $_GET['redirurl'];
$timeleft = $_GET['timeleft'];
print "
</head>
<body onLoad="javascript:doOnLoad($result,
'$loginpath?res=popup2&uamip=$uamip&uamport=$uampo
rt&userurl=$userurl&redirurl=$redirurl&timeleft=$t
imeleft','$userurldecode', '$redirurldecode',
'$timeleft')" onBlur =
"javascript:doOnBlur($result)" bgColor =
'#ffffff'>
<h1 style="text-align:
center;">$headline</h1>
<center>$bodytext</center><br>";
}
function print_login_form(){
global $loginpath;
print '
34
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
<FORM name="form1" METHOD="get" action="' .
$loginpath . '?">
<INPUT TYPE="HIDDEN" NAME="chal" VALUE="' .
$_GET['challenge'] . '">
<INPUT TYPE="HIDDEN" NAME="uamip" VALUE="' .
$_GET['uamip'] . '">
<INPUT TYPE="HIDDEN" NAME="uamport" VALUE="' .
$_GET['uamport'] . '">
<INPUT TYPE="HIDDEN" NAME="userurl" VALUE="' .
$_GET['userurl'] . '">
<center>
<table border="0" cellpadding="5" cellspacing="0"
style="width: 217px;">
<tbody>
<tr>
<td align="right">C.I.:</td>
<td><input type="text" name="UserName"
size="20" maxlength="255"></td>
</tr>
<tr>
<td align="right">Clave:</td>
<td><input type="password"
name="Password" size="20" maxlength="255"></td>
</tr>
<tr>
<td align="center" colspan="2"
height="23"><input type="submit" name="login"
value="login"></td>
</tr>
</tbody>
</table>
</center>
</form>';
}
function print_footer(){
global $footer_text;
print $footer_text . '</body></html>';
exit(0);
}
exit(0);
?>
</div>
35
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
8.2.5.Creación del archivo ipup.sh
En el paquete CoovaChilli, existen archivos con reglas tipo iptables
ya creadas. Se usó estas mismas reglas y se añadió más reglas
acordes con las políticas de seguridad de la Unidad de
Telecomunicaciones e Información.
Existen dos scripts de shell que contienen las reglas de iptables que
maneja CoovaChilli los que son up.sh y down.sh, estos scripts se
ejecutan al instante en que se levanta el proceso de CoovaChilli.
Para agregar mas reglas de iptables se debe a crear el scripts de
Shell llamado ipup.sh donde se establecieron los siguientes
aspectos:
 Conexión ssh
Para permitir administrar remotamente el servidor mediante SSH
desde la interfaz eth0, ya que por defecto está inhabilitado se
procedió a abrir el puerto que se usa dentro de la unidad de
telecomunicaciones.
 Resolución de Nombres (DNS)
Se procedió a abrir el puerto 53 udp donde el DNS trabaja y ahí se
especifico la dirección IP del DNS de la universidad.
 Peticiones http
Para que se permita la navegación se procedió a abrir el puerto 80
tcp.
36
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
 Conexión segura
Para que el servidor web escuche por el puerto de conexión segura
se procedio a abrir el puerto 443 tcp.
 Puerto por el que escucha CoovaChilli
Para que CoovaChilli escuche las peticiones de los usuarios se
procedió a abrir el puerto 3990 tcp.
 NAT (Traducciones de direcciones de red)
El NAT permite la traducciones de direcciones ip en este caso se da
con la Red 10.1.0.0/24, de modo que todo el trafico generado en
esta red pueda salir por la IP x.x.x.x/x, ya que esta ip esta configura
en la interfaz eth0 que es el medio por el cual se da acceso a
internet.
A continuación se detalla las reglas que se aplicó en el archivo.
#! /bin/sh
echo "Iniciando Script | aplicancdo reglas"
#Interfaces eth0: x.x.x.x eth1: 10.1.0.1
IPTABLES="/sbin/iptables"
IPETH0="eth0"
IPETH1="eth1"
DNS=x.x.x.x
INTRANET=x.x.x.x/x
HOST=x.x.x.x
CERO=0.0.0.0/0
#Limpiando todo filter - nat
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F
37
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
$IPTABLES -t nat -X
$IPTABLES -t nat -Z
#estableciendo politicas por default DROP
#$IPTABLES -P INPUT DROP
#$IPTABLES -P OUTPUT DROP
#$IPTABLES -P FORWARD DROP
##Estableciendo reglas en las cadenas INPUT y
OUTPUT
##aceptar todas las acciones en localhost
127.0.0.1
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
#acciones sobre ICMP todos "type" 0-8
$IPTABLES -A INPUT -i eth0 -p icmp --icmp-type 8 -
s $INTRANET -d $HOST -j ACCEPT
$IPTABLES -A OUTPUT -o eth0 -p icmp --icmp-type 0
-s $HOST -d $INTRANET -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p icmp --icmp-type 0 -
s $CERO -d $HOST -j ACCEPT
$IPTABLES -A OUTPUT -o eth0 -p icmp --icmp-type 8
-s $HOST -d $CERO -j ACCEPT
#abriendo puerto 3779 para desconectar usuarios
$IPTABLES -A INPUT -p udp -m udp --dport 3779 -j
ACCEPT
#DNS
$IPTABLES -A INPUT -s $DNS -d x.x.x.x -i eth0 -p
udp --sport 53 --dport 1024: -j ACCEPT
$IPTABLES -A OUTPUT -s x.x.x.x -d $DNS -o eth0 -p
udp --sport 1024: --dport 53 -j ACCEPT
#abriendo el puerto 80
$IPTABLES -A INPUT -p tcp -m tcp --sport 80 -j
ACCEPT
$IPTABLES -A OUTPUT -p tcp -m tcp --dport 80 -j
ACCEPT
#abriendo puerto 443
38
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
$IPTABLES -A INPUT -p tcp -m tcp --sport 443 -j
ACCEPT
$IPTABLES -A OUTPUT -p tcp -m tcp --dport 443 -j
ACCEPT
# puerto 3990
$IPTABLES -A INPUT -p tcp -m tcp --dport 3990 --
syn -j ACCEPT
#nat
$IPTABLES -t nat -A POSTROUTING -o $IPETH0 -j
MASQUERADE
echo final
8.2.6.Generación de certificados SSL apache2
Como se va a usar conexiones SSL para mayor seguridad. Se
tiene que instalar el módulo SSL.
root@radius:~# apt-get install apache2 ssl-cert
Se debe crear un directorio llamado ssl dentro de /etc/apache2
root@radius:~# mkdir /etc/apache2/ssl
Es necesario saber el nombre del equipo esto va a servir al generar
el certificado. Se lo obtiene con el siguiente comando.
root@radius:~# hostname -f
A continuación, habrá que hacer un certificado SSL que será
utilizado por el host virtual que se detalla más adelante. El sistema
preguntará por una serie de parámetros (Localidad, Provincia, etc.),
siendo el más importante el nombre del host. En este caso será
“10.1.0.1”. De esta forma se consigue que el nombre del host y el
39
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
del certificado coincidan, ya que los navegadores dan avisos de
posibilidad de intrusión en caso de que no coincidan:
root@radius:~# make-ssl-cert /usr/share/ssl-
cert/ssleay.cnf /etc/apache2/ssl/apache.pem
Aparecerá una ventana donde se debe escribir el nombre del
equipo que ya anteriormente se obtuvo con el comando hostname –
f. En este caso es radius.unl.edu.ec.
Figura 3. Ventana de configuración de certificado SSL
Para activar el módulo ssl se debe ejecutar el siguiente comando.
root@radius:~# a2enmod ssl
8.2.7.Creación de host virtual
Para la configuración correcta del virtual host es necesario tener en
cuenta los siguientes aspectos.
NameVirtualHost: se indica la dirección IP de la tarjeta de red y el
puerto.
40
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
DocumentRoot: Directorio principal que contiene la estructura de
directorios visible desde la Web Esta directiva especifica el
directorio desde el cuál apache2 servirá los ficheros.
ServerName: La directiva ServerName especifica el nombre de
host y el puerto que usa el servidor para identificarse.
Directory index: Engloba a un grupo de directivas que se aplicarán
solamente al directorio del sistema de ficheros especificado y a sus
subdirectorios. Aquí es donde se indica el nombre de la página
principal del sitio.
ServerAdmin: Dirección de email que el servidor incluye en los
mensajes de error que se envían al cliente.
ErrorLog: Ubicación del fichero en el que se almacenan los
mensajes de error.
CustomLog: Ubicación de donde esta el archivo en el cual se
registran los accesos al sitio.
SSLCertificateFile: Aquí se ubica la ruta del certificado ssl.
Se procede a crear un archivo llamado hotspot donde se va a
agregar el host virtual dentro del directorio /etc/apache2/sites-
available.
root@radius:~# vim /etc/apache2/sites-
available/hotspot
A continuación se muestra la configuración del virtual host . Aquí se
agrega la ruta donde se creó el certificado ssl.
<IfModule mod_ssl.c>
41
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
<VirtualHost 10.1.0.1:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/hotspot
ServerName radius.unl.edu.ec
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/hotspot/>
Options Indexes FollowSymLinks
MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias "/dialupadmin/"
"/usr/share/freeradius-
dialupadmin/htdocs/"
<Directory "/usr/share/freeradius-
dialupadmin/htdocs/">
Options Indexes FollowSymLinks
MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /var/www/hotspot/cgi-
bin/
42
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
<Directory "/var/www/hotspot/cgi-bin/">
AllowOverride None
Options +ExecCGI -MultiViews
+SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log
combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews
FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0
::1/128
</Directory>
SSLEngine on
SSLCertificateFile
/etc/apache2/ssl/apache.pem
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log
combined
Alias /doc/ "/usr/share/doc/"
43
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Se ejecuta los siguientes comandos para finalizar la configuración
de apache2
root@radius:~# a2ensite hotspot
root@radius:~# apache2ctl -t
root@radius:~# /etc/init.d/apache2 reload
Finalmente se reinicia todos los servicios (FreeRADIUS y
CoovaChilli) y se tendrá al servidor RADIUS funcionando con el
portal cautivo. Es importante tener en cuenta que al reiniciar el
servicio de FreeRADIUS debe de ser con las instrucciones ya
anteriormente mencionadas.
8.3. daloRADIUS
A continuación se detalla el proceso de instalación y configuración
del daloRADIUS, al ser una herramienta de administración web, el
uso correcto se detalla en el manual de usuario.
8.3.1.Instalación
El siguiente paso es descargar daloRADIUS desde su Web .
root@radius:~#wget
http://sourceforge.net/projects/daloradius/files/d
aloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
Una vez descargado el paquete de daloRADIUS se procede a
descomprimir la aplicación y se debe crear la base de datos con las
tablas pertinentes. Como root se ejecuta los siguientes comandos:
Se descomprime el paquete descargado
44
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
root@radius:~# tar xvzf daloradius-0.9-9.tar.gz
Se copia la carpeta daloradius-0.9-9 al directorio de /var/www/
root@radius:~# cp daloradius-0.9-9
/var/www/daloradius –R
Se da permiso al apache sobre el directorio del daloRADIUS que
esta en el directorio /var/www/daloradius
root@radius:~# chown www-data:www-data
/var/www/daloradius/ -R
Se cambian los permisos del archivo daloradius.conf.php
root@radius:~# chmod 644
/var/www/daloradius/library/daloradius.conf.php
8.3.2.Configuración
Para que daloRADIUS funcione correctamente, se requiere agregar
algunas tablas más 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:
root@radius:~# mysql -u root -p radius <
/var/www/daloradius/contrib/db/fr2-mysql-
daloradius-and-freeradius.sql
45
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Seguidamente se edita el archivo daloradius.conf.php para poner
los valores de la conexión al server de la base de datos:
root@radius:~# vi /var/www/daloradius/
daloradius.conf.php
$configValues[‘CONFIG_DB_ENGINE’] = ‘mysql’;
$configValues[‘CONFIG_DB_HOST’] = ‘127.0.0.1’;
$configValues[‘CONFIG_DB_USER’] = ‘radius’;
$configValues[‘CONFIG_DB_PASS’] = ‘clavesegura’;
$configValues[‘CONFIG_DB_NAME’] = ‘radius’;
Una vez esto, se reinicia el apache:
root@radius:~# /etc/init.d/apache2 restart
Para poder visualizar la interfaz de daloRADIUS se debe ingresar a
un navegador de prefencia Mozilla Firefox y se coloca la dirección
IP del servidor o el dominio: http://172.16.32.20/daloradius o
http://radius.unl.edu.ec/daloradius
Figura 4. Dirección de Ingreso con IP
Figura 5. Dirección de Ingreso con dominio
y en la sección de password se ingresa la contraseña: radius
46
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Figura 6. Ventana de Logeo
8.4. Errores Comunes
A continuación se detallan algunos de los errores más comunes y
se presenta la solución correspondiente.
8.4.1. Error al crear el directorio /var/log/freeradius/radacct
Uno de los errores que aparece al leer los log de FreeRADIUS en
daloRADIUS es el siguiente:
Failed to create directory
/var/log/freeradius/radacct: Permission denied
Para corregir el error se debe seguir los siguientes pasos:
root@radius:~# mkdir /var/log/freeradius/radacct/
47
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
root@radius:~# touch
/var/log/freeradius/radacct/sql-relayOpen
8.4.2.Error de reinicio de servicio FreeRADIUS
Es importante recordar que el reinicio del servicio de freeradius no
se lo puede ejecutar con los comandos comunes sino que se debe
ejecutar un comando especial como lo es:
LD_PRELOAD=/usr/lib/libperl.so.5.14.2
/etc/init.d/freeradius restart /etc/init.d/chilli
restart
Es por esto que cada vez que se reinicie el equipo se va a dar el
siguiente error por el scrip que se agregó de perl.
Figura 7. Error al levantar el servicio FreeRADIUS
Este error se lo solucionó agregando unas líneas en el archivo
/etc/rc.local que se ejecuta al reiniciar el equipo. A continuación se
muestra los comandos agregados:
48
FreeRADIUS, CoovaChilli y daloRADIUS
Universidad Nacional de Loja Lisset Neyra
Fabricio Flores
Figura 8. Archivo rc.local
8.4.3.Error al leer los logs de daloRADIUS
Este error aparece al momento de visualizar los logs de daloradius
mediante su interfaz gráfica debido a que se guardan dentro de
/tmp/daloradius.log y como es un archivo temporal se lo debe de
crear dar permisos cada vez que se reinicie el equipo. Por esto se
procedió a agregar en /etc/rc.local los siguientes comandos.
touch /tmp/daloradius.log
chown www-data:www-data /tmp/daloradius.log

Mais conteúdo relacionado

Mais procurados

MPLS WC 2014 Segment Routing TI-LFA Fast ReRoute
MPLS WC 2014  Segment Routing TI-LFA Fast ReRouteMPLS WC 2014  Segment Routing TI-LFA Fast ReRoute
MPLS WC 2014 Segment Routing TI-LFA Fast ReRouteBruno Decraene
 
SQL Server ASYNC_NETWORK_IO Wait Type Explained
SQL Server ASYNC_NETWORK_IO Wait Type ExplainedSQL Server ASYNC_NETWORK_IO Wait Type Explained
SQL Server ASYNC_NETWORK_IO Wait Type ExplainedConfio Software
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureChris Changmo Yoo
 
14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) conceptMostafa El Lathy
 
Anatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business SuiteAnatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business Suitevasuballa
 
InstalacionyConfiguracion_wpa2+radius+ldap
InstalacionyConfiguracion_wpa2+radius+ldapInstalacionyConfiguracion_wpa2+radius+ldap
InstalacionyConfiguracion_wpa2+radius+ldapMaria Jesus Suarez
 
Lab- Full IPsec Implementation.pdf
Lab- Full IPsec Implementation.pdfLab- Full IPsec Implementation.pdf
Lab- Full IPsec Implementation.pdfNesibusami
 
Standard Edition High Availability (SEHA) - The Why, What & How
Standard Edition High Availability (SEHA) - The Why, What & HowStandard Edition High Availability (SEHA) - The Why, What & How
Standard Edition High Availability (SEHA) - The Why, What & HowMarkus Michalewicz
 
Deep review of LMS process
Deep review of LMS processDeep review of LMS process
Deep review of LMS processRiyaj Shamsudeen
 
WebLogic authentication debugging
WebLogic authentication debuggingWebLogic authentication debugging
WebLogic authentication debuggingMaarten Smeets
 
Examining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesExamining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesBobby Curtis
 
How to Use EXAchk Effectively to Manage Exadata Environments
How to Use EXAchk Effectively to Manage Exadata EnvironmentsHow to Use EXAchk Effectively to Manage Exadata Environments
How to Use EXAchk Effectively to Manage Exadata EnvironmentsSandesh Rao
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Felipe Blini
 
Taller permisos de archivos y directorios ubuntu
Taller permisos de archivos y directorios ubuntuTaller permisos de archivos y directorios ubuntu
Taller permisos de archivos y directorios ubuntuJose Diaz Silva
 
Oracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesOracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesBobby Curtis
 
Jerarquia de internet
Jerarquia de internetJerarquia de internet
Jerarquia de internetesdecolor
 
ACI MultiPod Config Guide
ACI MultiPod Config GuideACI MultiPod Config Guide
ACI MultiPod Config GuideWoo Hyung Choi
 

Mais procurados (20)

MPLS WC 2014 Segment Routing TI-LFA Fast ReRoute
MPLS WC 2014  Segment Routing TI-LFA Fast ReRouteMPLS WC 2014  Segment Routing TI-LFA Fast ReRoute
MPLS WC 2014 Segment Routing TI-LFA Fast ReRoute
 
SQL Server ASYNC_NETWORK_IO Wait Type Explained
SQL Server ASYNC_NETWORK_IO Wait Type ExplainedSQL Server ASYNC_NETWORK_IO Wait Type Explained
SQL Server ASYNC_NETWORK_IO Wait Type Explained
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW Architecture
 
14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept
 
Anatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business SuiteAnatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business Suite
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
InstalacionyConfiguracion_wpa2+radius+ldap
InstalacionyConfiguracion_wpa2+radius+ldapInstalacionyConfiguracion_wpa2+radius+ldap
InstalacionyConfiguracion_wpa2+radius+ldap
 
Lab- Full IPsec Implementation.pdf
Lab- Full IPsec Implementation.pdfLab- Full IPsec Implementation.pdf
Lab- Full IPsec Implementation.pdf
 
Standard Edition High Availability (SEHA) - The Why, What & How
Standard Edition High Availability (SEHA) - The Why, What & HowStandard Edition High Availability (SEHA) - The Why, What & How
Standard Edition High Availability (SEHA) - The Why, What & How
 
Deep review of LMS process
Deep review of LMS processDeep review of LMS process
Deep review of LMS process
 
WebLogic authentication debugging
WebLogic authentication debuggingWebLogic authentication debugging
WebLogic authentication debugging
 
Convert single instance to RAC
Convert single instance to RACConvert single instance to RAC
Convert single instance to RAC
 
Examining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesExamining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail Files
 
How to Use EXAchk Effectively to Manage Exadata Environments
How to Use EXAchk Effectively to Manage Exadata EnvironmentsHow to Use EXAchk Effectively to Manage Exadata Environments
How to Use EXAchk Effectively to Manage Exadata Environments
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
Taller permisos de archivos y directorios ubuntu
Taller permisos de archivos y directorios ubuntuTaller permisos de archivos y directorios ubuntu
Taller permisos de archivos y directorios ubuntu
 
Oracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesOracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API Examples
 
Jerarquia de internet
Jerarquia de internetJerarquia de internet
Jerarquia de internet
 
ACI MultiPod Config Guide
ACI MultiPod Config GuideACI MultiPod Config Guide
ACI MultiPod Config Guide
 
Brkdct 3101
Brkdct 3101Brkdct 3101
Brkdct 3101
 

Destaque

Managing HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadiusManaging HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadiusDashamir Hoxha
 
Metamaterial laser filters for aviation LamdaGuard Ltd
Metamaterial laser filters for aviation LamdaGuard LtdMetamaterial laser filters for aviation LamdaGuard Ltd
Metamaterial laser filters for aviation LamdaGuard LtdGeorge Palikaras
 
Medios de comunicación
Medios de comunicaciónMedios de comunicación
Medios de comunicaciónNico Castro
 
Study visit. Grundtvig. Education system and ICT in Andalusia
Study visit. Grundtvig. Education system and ICT in AndalusiaStudy visit. Grundtvig. Education system and ICT in Andalusia
Study visit. Grundtvig. Education system and ICT in AndalusiaPilar Torres
 
T1 grupo 1_sistema_operativo
T1 grupo 1_sistema_operativoT1 grupo 1_sistema_operativo
T1 grupo 1_sistema_operativotony9594
 
Linked in para usos profesionales
Linked in para usos profesionalesLinked in para usos profesionales
Linked in para usos profesionalesIgnacio Delgado
 
¿Quién es Tomás Caballero?
¿Quién es Tomás Caballero?¿Quién es Tomás Caballero?
¿Quién es Tomás Caballero?Tomás Caballero
 
Teaching with technology research
Teaching with technology   researchTeaching with technology   research
Teaching with technology researchUnisa
 
Presentacion personal 2
Presentacion personal 2Presentacion personal 2
Presentacion personal 2aron45
 
disquete, floppy disk, dico fexible
disquete, floppy disk, dico fexibledisquete, floppy disk, dico fexible
disquete, floppy disk, dico fexibleguest570e24
 
Halalways primer hotel halal madrid
Halalways primer hotel halal madridHalalways primer hotel halal madrid
Halalways primer hotel halal madridHalalways Hotel
 
Revista Mercadoindustrial.es Nº 72 Abril 2013
Revista Mercadoindustrial.es Nº 72 Abril 2013Revista Mercadoindustrial.es Nº 72 Abril 2013
Revista Mercadoindustrial.es Nº 72 Abril 2013Mercadoindustrial Revista
 
Chrysler Sales Brochure from Ancira Chrysler Jeep Dodge
Chrysler Sales Brochure from Ancira Chrysler Jeep DodgeChrysler Sales Brochure from Ancira Chrysler Jeep Dodge
Chrysler Sales Brochure from Ancira Chrysler Jeep DodgeAncira Auto Group
 
Swimming upstream
Swimming upstreamSwimming upstream
Swimming upstreamOPNFV
 
15. perhitungan n lentur
15. perhitungan n lentur15. perhitungan n lentur
15. perhitungan n lenturKHRISTIAN MAUKO
 
2010 Cycling Australia Annual Report
2010 Cycling Australia Annual Report2010 Cycling Australia Annual Report
2010 Cycling Australia Annual Reportcyclingaust
 

Destaque (20)

Radius Proxy
Radius ProxyRadius Proxy
Radius Proxy
 
Managing HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadiusManaging HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadius
 
Metamaterial laser filters for aviation LamdaGuard Ltd
Metamaterial laser filters for aviation LamdaGuard LtdMetamaterial laser filters for aviation LamdaGuard Ltd
Metamaterial laser filters for aviation LamdaGuard Ltd
 
Medios de comunicación
Medios de comunicaciónMedios de comunicación
Medios de comunicación
 
Study visit. Grundtvig. Education system and ICT in Andalusia
Study visit. Grundtvig. Education system and ICT in AndalusiaStudy visit. Grundtvig. Education system and ICT in Andalusia
Study visit. Grundtvig. Education system and ICT in Andalusia
 
T1 grupo 1_sistema_operativo
T1 grupo 1_sistema_operativoT1 grupo 1_sistema_operativo
T1 grupo 1_sistema_operativo
 
Linked in para usos profesionales
Linked in para usos profesionalesLinked in para usos profesionales
Linked in para usos profesionales
 
¿Quién es Tomás Caballero?
¿Quién es Tomás Caballero?¿Quién es Tomás Caballero?
¿Quién es Tomás Caballero?
 
Teaching with technology research
Teaching with technology   researchTeaching with technology   research
Teaching with technology research
 
Presentacion personal 2
Presentacion personal 2Presentacion personal 2
Presentacion personal 2
 
disquete, floppy disk, dico fexible
disquete, floppy disk, dico fexibledisquete, floppy disk, dico fexible
disquete, floppy disk, dico fexible
 
Guía de Nueva York
Guía de Nueva YorkGuía de Nueva York
Guía de Nueva York
 
MATEMATICAS Y TALL.COMP.
MATEMATICAS Y TALL.COMP.MATEMATICAS Y TALL.COMP.
MATEMATICAS Y TALL.COMP.
 
Presentación alvarezcastelli
Presentación alvarezcastelliPresentación alvarezcastelli
Presentación alvarezcastelli
 
Halalways primer hotel halal madrid
Halalways primer hotel halal madridHalalways primer hotel halal madrid
Halalways primer hotel halal madrid
 
Revista Mercadoindustrial.es Nº 72 Abril 2013
Revista Mercadoindustrial.es Nº 72 Abril 2013Revista Mercadoindustrial.es Nº 72 Abril 2013
Revista Mercadoindustrial.es Nº 72 Abril 2013
 
Chrysler Sales Brochure from Ancira Chrysler Jeep Dodge
Chrysler Sales Brochure from Ancira Chrysler Jeep DodgeChrysler Sales Brochure from Ancira Chrysler Jeep Dodge
Chrysler Sales Brochure from Ancira Chrysler Jeep Dodge
 
Swimming upstream
Swimming upstreamSwimming upstream
Swimming upstream
 
15. perhitungan n lentur
15. perhitungan n lentur15. perhitungan n lentur
15. perhitungan n lentur
 
2010 Cycling Australia Annual Report
2010 Cycling Australia Annual Report2010 Cycling Australia Annual Report
2010 Cycling Australia Annual Report
 

Semelhante a Free radius coovachilli y daloradius

Manual Instalación ClearOS | ITCA FEPADE | RNST | Ministerio de Educación
Manual Instalación ClearOS | ITCA FEPADE | RNST | Ministerio de EducaciónManual Instalación ClearOS | ITCA FEPADE | RNST | Ministerio de Educación
Manual Instalación ClearOS | ITCA FEPADE | RNST | Ministerio de EducaciónAna Rita Velez
 
Actividadno1seguridadperimetral -conversion-gate01
Actividadno1seguridadperimetral -conversion-gate01Actividadno1seguridadperimetral -conversion-gate01
Actividadno1seguridadperimetral -conversion-gate01pattala01
 
Seguridad perimetral - Mikrotik Firewall
Seguridad perimetral - Mikrotik FirewallSeguridad perimetral - Mikrotik Firewall
Seguridad perimetral - Mikrotik FirewallVanesa Rodríguez Percy
 
Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1Ecatel SRL
 
Instalacion y configuracion optima de directivas del sistema en ws 2003
Instalacion y configuracion optima de directivas del sistema en ws 2003Instalacion y configuracion optima de directivas del sistema en ws 2003
Instalacion y configuracion optima de directivas del sistema en ws 2003Gabriel Cruz
 
Guia de inicio rsview32
Guia de inicio rsview32Guia de inicio rsview32
Guia de inicio rsview32Gilbert_28
 
Actividad 5 software de sistema y aplicaciones-lina constanza naranjo-13219...
Actividad 5   software de sistema y aplicaciones-lina constanza naranjo-13219...Actividad 5   software de sistema y aplicaciones-lina constanza naranjo-13219...
Actividad 5 software de sistema y aplicaciones-lina constanza naranjo-13219...LINA CONSTANZA NARANJO
 
Bd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlBd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlKARY
 
Bd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlBd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlKARY
 
Bd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlBd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlKARY
 
Servicios de impresion y documentos
Servicios de impresion y documentosServicios de impresion y documentos
Servicios de impresion y documentosAlexisrios23
 
Granja de renderizacion
Granja de renderizacionGranja de renderizacion
Granja de renderizacionjorgejpl1
 
Introduccion a la informatica
Introduccion  a la informaticaIntroduccion  a la informatica
Introduccion a la informaticawuero69
 

Semelhante a Free radius coovachilli y daloradius (20)

Manual Instalación ClearOS | ITCA FEPADE | RNST | Ministerio de Educación
Manual Instalación ClearOS | ITCA FEPADE | RNST | Ministerio de EducaciónManual Instalación ClearOS | ITCA FEPADE | RNST | Ministerio de Educación
Manual Instalación ClearOS | ITCA FEPADE | RNST | Ministerio de Educación
 
Guia del programador_web_-_centrales_impacta
Guia del programador_web_-_centrales_impactaGuia del programador_web_-_centrales_impacta
Guia del programador_web_-_centrales_impacta
 
Actividadno1seguridadperimetral -conversion-gate01
Actividadno1seguridadperimetral -conversion-gate01Actividadno1seguridadperimetral -conversion-gate01
Actividadno1seguridadperimetral -conversion-gate01
 
Seguridad perimetral - Mikrotik Firewall
Seguridad perimetral - Mikrotik FirewallSeguridad perimetral - Mikrotik Firewall
Seguridad perimetral - Mikrotik Firewall
 
Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1
 
Manual I
Manual IManual I
Manual I
 
Consulta redes
Consulta redesConsulta redes
Consulta redes
 
Instalacion y configuracion optima de directivas del sistema en ws 2003
Instalacion y configuracion optima de directivas del sistema en ws 2003Instalacion y configuracion optima de directivas del sistema en ws 2003
Instalacion y configuracion optima de directivas del sistema en ws 2003
 
Paso a paso zenoss 2.5
Paso a paso zenoss  2.5Paso a paso zenoss  2.5
Paso a paso zenoss 2.5
 
Guia rapida programacion_twido
Guia rapida programacion_twidoGuia rapida programacion_twido
Guia rapida programacion_twido
 
Guia de inicio rsview32
Guia de inicio rsview32Guia de inicio rsview32
Guia de inicio rsview32
 
Actividad 5 software de sistema y aplicaciones-lina constanza naranjo-13219...
Actividad 5   software de sistema y aplicaciones-lina constanza naranjo-13219...Actividad 5   software de sistema y aplicaciones-lina constanza naranjo-13219...
Actividad 5 software de sistema y aplicaciones-lina constanza naranjo-13219...
 
Bd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlBd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys ql
 
Bd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlBd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys ql
 
Bd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys qlBd eq.#3 actividad 2 reporte instalacion mys ql
Bd eq.#3 actividad 2 reporte instalacion mys ql
 
Servicios de impresion y documentos
Servicios de impresion y documentosServicios de impresion y documentos
Servicios de impresion y documentos
 
Base De Conocimiento De Computools
Base De Conocimiento De ComputoolsBase De Conocimiento De Computools
Base De Conocimiento De Computools
 
Granja de renderizacion
Granja de renderizacionGranja de renderizacion
Granja de renderizacion
 
Introduccion a la informatica
Introduccion  a la informaticaIntroduccion  a la informatica
Introduccion a la informatica
 
7 curso
7 curso7 curso
7 curso
 

Último

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 

Último (20)

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 

Free radius coovachilli y daloradius

  • 1. Área de la Energía, las Industrias y los Recursos Naturales No Renovables “TESIS PREVIA A LA OBTENCIÓN DEL TÍTULO EN INGENIERO EN SISTEMAS” AUTORES: Fabricio Alejandro Flores Gallardo Lisset Alexandra Neyra Romero DIRECTOR: Ing. Juan Manuel Galindo Vera Loja-Ecuador 2012
  • 2. 2 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores MANUAL TÉCNICO 1. ÍNDICE GENERAL 1. ÍNDICE GENERAL........................................................................................2 2. INDICE DE FIGURAS...................................................................................4 3. INTRODUCCIÓN...........................................................................................5 4. ¿A QUIÉN VA DIRIGIDO EL MANUAL?...................................................5 5. CONSIDERACIONES PREVIAS................................................................5 6. REQUERIMIENTOS DEL SISTEMA..........................................................5 7. CONFIGURACIONES PREVIAS................................................................6 7.1. Instalación de paquetes............................................................................6 7.2. Configuración de interfaces de red.........................................................9 7.3. Configuración del ip_forward .................................................................10 7.4. Activación del modo tun..........................................................................11 8. CONFIGURACIÓN DEL SERVIDOR.......................................................11 8.1. FreeRADIUS.............................................................................................12 8.1.1. Instalación de paquetes de FreeRADIUS ........................................12 8.1.2. Configuración de la base de datos....................................................12 8.1.3. Configuración de la conexión con la base de datos.......................14 8.1.4. Configuración de la Autorización y Contabilidad.............................15 8.1.5. Conexión con el web services del S.G.A..........................................16 8.1.6. Configuración del cliente localhost....................................................17 8.1.7. Arrancando FreeRADIUS....................................................................18 8.2. Coovachilli.................................................................................................20 8.2.1. Instalación..............................................................................................20 8.2.2. Configuración del archivo principal de CoovaChilli.........................20 8.2.3. Configuración del portal cautivo.........................................................23 8.2.4. Archivo hotspotlogin.php.....................................................................24
  • 3. 3 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores 8.2.5. Creación del archivo ipup.sh ..............................................................35 8.2.6. Generación de certificados SSL apache2.......................................38 8.2.7. Creación de host virtual.......................................................................39 8.3. daloRADIUS..............................................................................................43 8.3.1. Instalación..............................................................................................43 8.3.2. Configuración ........................................................................................44 8.4. Errores Comunes.....................................................................................46 8.4.1. Error al crear el directorio /var/log/freeradius/radacct ....................46 8.4.2. Error de reinicio de servicio FreeRADIUS.......................................47 8.4.3. Error al leer los logs de daloRADIUS................................................48
  • 4. 4 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores 2. INDICE DE FIGURAS Figura 1. Taskel............................................................................... 7 Figura 2. Introducir Contraseña MySQL para el usuario root........... 8 Figura 3. Ventana de configuración de certificado SSL ................. 39 Figura 4. Dirección de Ingreso con IP ........................................... 45 Figura 5. Dirección de Ingreso con dominio .................................. 45 Figura 6. Ventana de Logeo.......................................................... 46 Figura 7. Error al levantar el servicio FreeRADIUS ....................... 47 Figura 8. Archivo rc.local............................................................... 48
  • 5. 5 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores 3. INTRODUCCIÓN El presente manual técnico tiene como objetivo fundamental presentar de una manera detallada y concreta los pasos a seguir para poder configurar adecuadamente el servidor RADIUS con un portal cautivo para la Universidad Nacional de Loja. 4. ¿A QUIÉN VA DIRIGIDO EL MANUAL? El manual va dirigido a los administradores de red de la Unidad de Telecomunicaciones e Información de la Universidad Nacional de Loja. Además se plantea como una solución para personas que deseen implementar una solución similar en cualquier otro ámbito. 5. CONSIDERACIONES PREVIAS Para configurar adecuadamente el servidor se debe tomar en cuenta que primeramente se debe tener ciertas consideraciones como:  Conocimientos previos en Linux Ubuntu Server (Instalación y Configuración)  Conocimientos previos de networking (redes, NAT, iptables) 6. REQUERIMIENTOS DEL SISTEMA Para la instalación y configuración del servidor RADIUS con un portal cautivo para la Universidad Nacional de Loja es necesario ciertos requerimientos importantes tanto en hardware como en software. Tomando en cuenta el estudio realizado durante el desarrollo del presente proyecto se ha considerado que los requerimientos
  • 6. 6 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores mínimos para el correcto funcionamiento del servidor son los siguientes: Hardware:  Procesador: Intel Core2Duo CPU E7500 @ 2.93 GHz x 2  2 GB de Memoria RAM  320 GB de Disco Duro  Dos tarjetas de red Ethernet Software:  Ubuntu Server 12.04  FreeRADIUS versión 2.1.10  CoovaChilli versión 1.2.6  daloRADIUS versión 0.9.9 7. CONFIGURACIONES PREVIAS Para la configuración adecuada del servidor es necesario realizar primeramente unas configuraciones al sistema operativo. 7.1. Instalación de paquetes Luego de la instalación del sistema operativo lo primero que se debe hacer es actualizar el listado de paquetes, lo que se realiza con el siguiente comando. $ sudo apt-get update Posteriormente procedemos a instalar tasksel, que es un sistema de instalación de paquetes por consola. Tasksel agrupa los
  • 7. 7 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores paquetes de software por tareas y ofrece un modo sencillo de instalar todos los paquetes que son necesarios para dicha tarea. Se Instala tasksel con el siguiente comando: $ sudo apt-get install tasksel Ahora se ejecuta Tasksel: $ sudo tasksel A continuación se presentará dentro del terminal una pantalla con varios paquetes de software, en donde se va a seleccionar los paquetes que interesan: LAMP server y OpenSSH server. Figura 1. Taskel Tasksel se encargará de descargar todos los paquetes y dependencias tanto del LAMP Server (Apache, MySQL y Php) y de OpenSSH. Durante la instalación del LAMP Server va a pedir la contraseña de root para MySQL, entonces se procederá a colocarla.
  • 8. 8 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Figura 2. Introducir Contraseña MySQL para el usuario root Además de los paquetes anteriores, es también necesario instalar algunos paquetes indispensables para el correcto funcionamiento de todas las aplicaciones que van a funcionar en el servidor. $ sudo apt-get install debhelper libltdl3-dev libpam0g-dev libmysqlclient15-dev build-essential libgdbm-dev libldap2-dev libsasl2-dev libiodbc2- dev libkrb5-dev snmp autotools-dev dpatch libperl- dev libtool dpkg-dev libpq-dev libsnmp-dev libssl- dev php5 php5-mysql php-pear php5-gd php-DB libxml-simple-perl libxml-libxml-simple-perl libtest-xml-simple-perl libdbi-perl libwww-perl
  • 9. 9 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores 7.2. Configuración de interfaces de red Como se dijo anteriormente, el equipo necesita dos tarjetas de red. Una tarjeta de red (eth0) tiene que estar conectada a la red y configurada para internet. La otra tarjeta de red tiene que dejarse sin configuración. Esto significa, no IP estática y no DHCP. Esto se logra previniendo que el Administrador de Red, manipule la tarjeta. Para evitar que el Administrador de Red manipule la tarjeta, se tiene que editar /etc/network/interfaces. $ sudo vi /etc/network/interfaces En el archivo se debe añadir la interfaz como una tarjeta de configuración manual. En este caso, la tarjeta de red en la que funcionara con el portal cautivo (hacia la red inalámbrica) es eth1, y con la configuración estática de la interfaz de red eth0 para que se conecte a internet, el archivo quedará de la siguiente manera. auto lo iface lo inet loopback auto eth0 iface eth0 inet static address x.x.x.x netmask x.x.x.x network x.x.x.x broadcast x.x.x.x
  • 10. 10 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores gateway x.x.x.x dns-nameservers x.x.x.x dns-search unl.edu.ec iface eth1 inet manual Luego se procede a reiniciar los servicios de red para que se apliquen los cambios con el siguiente comando: $ sudo /etc/init.d/networking restart De esta forma se esta configurando el interfaz eth0 para que tenga una dirección IP estática, dejando la interfaz eth1 (que estará conectada a los puntos de acceso) a merced del portal cautivo, que será el que la administre. 7.3. Configuración del ip_forward El mecanismo de IP forwarding se encarga de la retransmisión de los paquetes que se reciben por una interfaz física y de retransmitirlos por otra interfaz. El IP forwarding debe ser habilitado, pues una vez que el usuario se autentique a través del portal cautivo se redireccionará su tráfico hacia la interfaz de red eth0, permitiendo así que el usuario pueda navegar. Para habilitar la función de IP forwarding se necesita configurar el archivo /etc/sysctl.conf con el siguiente comando: $ vi /etc/sysctl.conf Allí se busca la línea net.ipv4.ip_forward=1 y se la descomenta. net.ipv4.ip_forward=1
  • 11. 11 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Además, es necesario cambiar el valor a 1 del IP forwarding en /proc/sys/net/ipv4/ip_forward con el siguiente comando: $ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward Y se reinicia nuevamente el servicio de networking. $ sudo /etc/init.d/networking restart 7.4. Activación del modo tun Para finalizar con la configuración de las interfaces de red, se debe habilitar el módulo tun, ya que este permitirá a Coovachilli hacer un “túnel” entre las interfaces eth0 y la red virtual que crea en eth1. Para ello ejecutamos los siguientes comandos: $ sudo modprobe tun Con esta orden cargamos el módulo tun en el kernel del sistema directamente sin tener que reiniciar. Además tenemos que agregarlo la palabra “tun” al final del archivo /etc/modules $ sudo vi /etc/modules 8. CONFIGURACIÓN DEL SERVIDOR Luego de dejar preparado el servidor con todas las configuraciones anteriormente explicadas se procederá a instalar y configurar los paquetes de software utilizados para el correcto funcionamiento del servidor. Ellos son: FreeRADIUS, CoovaChilli y daloRADIUS.
  • 12. 12 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores 8.1. FreeRADIUS A continuación se describirá el procedimiento correcto para la instalación y configuración del servidor RADIUS usando FreeRADIUS. 8.1.1.Instalación de paquetes de FreeRADIUS La instalación de FreeRADIUS sobre Ubuntu no es compleja, puesto que se encuentran los paquetes dentro de los repositorios. $ sudo apt-get install freeradius freeradius-mysql freeradius-utils Con el comando anterior se realiza el proceso de instalación de FreeRADIUS y de las librerías adicionales que va a requiere para su correcto funcionamiento. 8.1.2.Configuración de la base de datos Luego de la instalación de los paquetes de FreeRADIUS se tiene que realizar la configuración de la base de datos que va a usar FreeRADIUS para obtener los usuarios. Cabe resaltar que primeramente los usuarios los va a obtener mediante el web services del Sistema de Gestión Académica de la Universidad Nacional de Loja, pero se van a almacenar en una base de datos local, para asegurar conectividad así el web services no esté disponible. Se accede a la consola de MySQL, se digita la contraseña y se crea la base de datos que va a utilizar FreeRADIUS en este caso se llama radius.
  • 13. 13 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores $ mysql –u root –p Enter password: Welcome to the MySql monitor. Commands end with ; or g. mysql> CREATE DATABASE radius; Luego se debe de crear un usuario para que pueda acceder a la base de datos con todos los privilegios. mysql> GRANT ALL ON radius.*TO radius@localhost IDENTIFIED BY ”clavesegura”; En este caso se asume que la Base de datos se llama "radius" y se creó un usuario también "radius" con la contraseña "clavesegura". Finalmente se debe de salir del promp de MySQL. mysql> exit; Las tablas que usa FreeRADIUS se encuentran almacenadas dentro del directorio /etc/freeradius/sql/mysql/. Para ello primeramente se tiene que loguear como superusuario (root) para acceder a ese directorio. radius@radius:~# sudo su [sudo] password for radius: root@radius:/home/radius# cd /etc/freeradius/sql/mysql/ Se debe ejecutar los scripts sql que se encuentran en ese directorio. root@radius:/etc/freeradius/sql/mysql# mysql –u root –p radius < ippool.sql
  • 14. 14 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores root@radius:/etc/freeradius/sql/mysql# mysql –u root –p radius < nas.sql root@radius:/etc/freeradius/sql/mysql# mysql –u root –p radius < schema.sql 8.1.3.Configuración de la conexión con la base de datos Aquí se configurará los parámetros para se conecte FreeRADIUS con la base de datos ya creada anteriormente para lo cual se realiza lo siguiente: Se edita el archivo /etc/freeradius/sql.conf que es un archivo donde se encuentran todas las configuraciones de conexión de FreeRADIUS con MySQL. root@radius:#~ vi /etc/freeradius/sql.conf En el archivo se debe modificar las líneas correspondientes a la conexión con el server de MySQ como lo son: Server: “localhost” Login: “radius” que es el usuario que se creó anteriormente. Password: “clavesegura” que es la clave que corresponde a ese usuario. sql { database = “mysql” driver = “rlm_sql_${database}” server = “localhost” login = “radius” password = “clavesegura”
  • 15. 15 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Además dentro del mismo archivo se descomenta la variable: readclients = yes. El descomentar esta línea permite que se lea los clientes radius desde la base de datos. readclients = yes 8.1.4.Configuración de la Autorización y Contabilidad Se debe editar el Archivo: /etc/freeradius/sites-available/default y agregar la variable "sql" en las secciones de: authorize{}, accounting{}, session{}, post-auth{}. También se agrega la variable “perl” antes de “sql” en authorize. Esto permitirá que primero se realice la conexión con el web services del S.G.A. y luego realizar la autorización y la contabilidad desde MySQL. root@radius:#~ vi /etc/freeradius/sites- available/default authorize { preprocess chap mschap digest suffix eap { ok = return } files perl sql expiration logintime pap } accounting { detail unix
  • 16. 16 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores radutmp sql exec attr_filter.accounting_response } Luego se edita el archivo de configuración principal de FreeRADIUS, y se procede a descomentar la línea $INCLUDE sql.conf root@radius:#~ vi /etc/freeradius/radiusd.conf # Include another file that has the SQL-related configuration. # This is another file only because it tends to be big. # $INCLUDE slq.conf 8.1.5.Conexión con el web services del S.G.A Para la conexión de FreeRADIUS con el web services del S.G.A. es necesario desarrollar un script en el lenguaje Perl, en el cual se deben enviar como parámetros el usuario y la contraseña obtenidos de la solicitud (request) y agregarlos a la base de datos local. El código del scipt Perl se encuentran en el CD ajunto a la documentación. El script debe estar ubicado dentro del directorio principal de FreeRADIUS /etc/freeradius/ y se debe editar el archivo /etc/freeradius/modules/perl root@radius:#~ vim /etc/freeradius/modules/perl
  • 17. 17 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Y en la línea module especificar la ruta del archivo. Perl { module = ${confdir}/example.pl 8.1.6.Configuración del cliente localhost Es necesario agregar un cliente en FreeRADIUS para que el portal cautivo se comunique con el servidor RADIUS, ya que en este caso tanto FreeRADIUS como el portal cautivo estarán instalados en el mismo equipo el cliente va a ser localhost en caso de que estén en distintos equipos ahí se debería de configurar la dirección IP del portal cautivo. Para mayor seguridad, se requiere que se coloque una contraseña para el cliente localhost puesto que ese cliente va a ser el portal cautivo que va a estar en el mismo servidor. Para ello se modifica el archivo clients.conf root@radius:#~ vi /etc/freeradius/clients.conf Se edita la contraseña que se encuentra en el parámetro secret dentro del cliente localhost. client localhost { ipaddr = 127.0.0.1 secret = clavesegura2
  • 18. 18 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores 8.1.7.Arrancando FreeRADIUS Es importante saber que cuando se instaló FreeRADIUS se ejecutó el servicio es por eso que se debe de parar para poder iniciarlo nuevamente con el sript de perl. root@radius:#~ /etc/init.d/freeradius stop La razón por la que se para el servicio y no se lo reinicia es porque para arrancar correctamente es necesario que antes del comando de iniciar el servicio se coloque un comando, el cual hace que las librerías que utiliza el script perl se carguen antes de la ejecución de freeRadius y se pueda levantar el servicio y ejecutar el script. Para ver que versión de perl que esta en el equipo se ejecuta el siguiente comando. root@radius:#~ perl -V | grep libperl Cuando se conoce la versión de perl en este caso libperl.so.5.14.2 se puede ejecutar el comando para iniciar, reiniciar o detener FreeRADIUS. root@radius:#~ LD_PRELOAD=/usr/lib/libperl.so.5.14.2 /etc/init.d/freeradius restart Para comprobar la conexión y funcionalidad tanto del script perl como la configuración de FreeRADIUS existe el comando radtest el
  • 19. 19 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores cual permite simular una solicitud de acceso RADIUS y comprueba tanto conectividad como parámetros de envío. root@radius:#~ radtest usuarioSGA claveSGA 127.0.0.1 1812 clavesegura2 Donde:  radtest: nombre del comando  usuarioSGA: usuario almacenado en el Sistema de Gestión Académico  claveSGA: clave del usuario almacenado en el Sistema de Gestión Académico  127.0.0.1: cliente de FreeRADIUS  1812: Puerto por donde escucha la solicitud FreeRADIUS  clavesegura2: clave del cliente de FreeRADIUS Una vez enviada la solicitud de acceso, FreeRADIUS se encarga de receptar esta solicitud y dar una respuesta. Sending Access-Request of id 42 to 127.0.0.1 port 1812 User-Name = “usuarioSGA” User-Password = “claveSGA” NAS-IP-Address = x.x.x.x NAS-Port = 1812 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=42, length=20 En este caso, al ser correctas las credenciales la solicitud de acceso receptada se acepta al usuario.
  • 20. 20 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores 8.2. Coovachilli A continuación de detalla cuidadosamente el procedimiento de la instalación y configuración de CoovaChilli (portal cautivo) lo que permitirá su adecuado funcionamiento. 8.2.1.Instalación Para configurar Coovachilli lo primero que hay que realizar es descargar la última versión desde la página oficial de Coovachilli. root@radius:#~ wget hhtp://ap.coova.org/chilli/coova- chilli_1.2.6_i386.deb Luego se procede a instalar del paquete descargado. root@radius:#~ dpkg –i coova-chilli_1.2.6_i386.deb 8.2.2.Configuración del archivo principal de CoovaChilli Dentro de los archivos de CoovaChilli viene un archivo de ejemplo donde están todas las configuraciones globales del portal cautivo. Se procede a copiar el archivo de muestra y renombrarlo como config. root@radius:#~ cp /etc/chilli/defaults /etc/chilli/config Se edita el archivo anteriormente creado en donde se encuentran todas las directivas, las cuales se modificaran de acuerdo a las necesidades.
  • 21. 21 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores root@radius:#~ vi /etc/chilli/config En este caso se seleccionó la red 10.1.0.0 /24 para la interfaz eth1 que es donde se va a recibir las solicitudes de acceso y la interfaz eth0 es donde va tener la conexión con la red de la universidad y el internet. A continuación se muestra los parámetros configurados. HS_WANIF=eth0 #WAN Interface toward the Internet HS_LANIF=eth1 #Subscriber Interface for client devices HS_NETWORK=10.1.0.0 #HotSpot Network (must include HS_UAMLISTEN) HS_NETMASK=255.255.255.0 #HotSpot Network Netmask HS_UAMLISTEN=10.1.0.1 #HotSpot IP Address (on subscriber network) HS_UAMPORT=3990 #HotSpot UAM Port (on subscriber network) HS_DNS1=x.x.x.x HS_DNS2=10.1.0.1 ### # HotSpot settings for simple Captive Portal # HS_NASID=nas01 HS_RADIUS=127.0.0.1 #o localhost HS_RADIUS2=127.0.0.1 HS_UAMALLOW=10.1.0.1/24 HS_RADSECRET=clavesegura2 # Set to be your RADIUS shared secret HS_UAMSECRET=clavesegura3 # Set to be your UAM secret HS_UAMALIASNAME=chilli HS_UAMFORMAT=https://$HS_UAMLISTEN/cgi- bin/hotspotlogin.php HS_DEFSESSIONTIMEOUT=7200
  • 22. 22 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores HS_DEFIDLETIMEOUT=1800 Donde: HS_LANIF: Interfaz de red donde se va a escuchar las peticiones DHCP y donde se conecta los puntos de acceso en este caso es la eth1. HS_NETWORK: Dirección de red del portal cautivo. HS_NETMASK: Dirección de mascara de la red del portal cautivo. HS_UAMPORT: Puerto donde escucha CoovaChilli. HS_DNS1: Dirección IP del DNS (Sistema de Nombres de Dominio). HS_RADIUS: Aquí se define la dirección IP del servidor RADIUS en este caso como el servidor esta en el mismo equipo que el portal cautivo se define la IP del localhost. HS_RADIUS2: Dirección de IP del servidor RADIUS. HS_RADSECRET: Clave secreta del cliente localhost de FreeRADIUS que se agregó anteriormente en el archivo clients.conf. HS_UAMSECRET: clave segura del portal cautivo. HS_UAMFORMAT: Ruta donde se ubica el archivo que se muestra al usuario al momento de conectarse al servidor RADIUS, en este caso se llama hotspotlogin.php el cual se lo describe más adelante. HS_DEFSESSIONTIMEOUT: tiempo que va a durar las sesiones de los usuarios logeados definido en segundos.
  • 23. 23 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores HS_DEFIDLETIMEOUT: tiempo de inactividad para desconectar a un usuario, también esta definido en segundos. 8.2.3.Configuración del portal cautivo Se crea el directorio donde van a estar almacenados archivos propios del portal cautivo. root@radius:#~ mkdir –p /var/www/hotspot/uam Luego se debe de copiar los archivos necesarios para el funcionamiento de Coovachilli al directorio anteriormente creado. root@radius:#~ cp /etc/chilli/www/* /var/www/hotspot Se accede al directorio en donde se va a descargar archivos adicionales para el correcto funcionamiento del portal cautivo. root@radius:#~ cd /var/www/hotspot/uam Y se procede a descargarlas root@radius:#~ wget http://ap.coova.org/uam/ Se hace un cambio dentro del archivo /var/www/hotspot/uam/index.html ubicando la dirección IP del portal cautivo. root@radius:#~ sed –i ‘s/coova.org/js/chilli.js/10.1.0.1/uam/chilli. js/g’ /var/www/hotspot/uam/index.html
  • 24. 24 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Se edita el archivo /etc/default/chilli y se modifica la ruta del archivo de configuración. root@radius:#~ vi /etc/default/chilli Para que inicie coovachilli automáticamente se debe poner 1 en START_CHILLI y además para no tener problemas con el usuario que va a manipular el Coovachilli se coloca root en HS_USER START_CHILLI=1 CONFFILE=”/etc/chilli.conf” HS_USER=”root” 8.2.4.Archivo hotspotlogin.php Para la parte visible al usuario donde ingresara los credenciales (Cedula de identidad y clave del SGA) se procedió a modificar un archivo proporcionado por chillispot.org que originalmente esta hecho en perl el cual se lo convirtió a un archivo php. Este archivo se encuentra ubicado en el directorio del servidor web apache2 en /var/www/hotspot/cgi-bin/. tambien se adecuó de acuerdo a las sugerencias de los administradores del departamento de redes de la Unidad de Redes y Telecomunicaciones. A continuación se muestra el archivo hotspotlogin.php $uamsecret debido a que aquí se pone la clave que se configuró en el archivo principal de CoovaChilli en HS_UAMSECRET, también se fijó en la variable $redirurl = 'http://www.unl.edu.ec'; ya que esto permitirá que después de logearse el portal cautivo lo redireccione a la pagina de la universidad.
  • 25. 25 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores <head> <style type="text/css"> #body{ background-image: url(https://10.1.0.1/fondo3.jpg); background-repeat: no-repeat; background-attachment: fixed; background-position: 50% 0%; } </style> </head> <div id="body"> <?php $uamsecret = "clavesegura3"; $userpassword=1; $loginpath = "hotspotlogin.php"; $titel = ''; $headline = ''; $bodytext = ''; $body_onload = ''; $footer_text = '<center> <br><img src="https://10.1.0.1/1.png"> <br><br><br>Si experimenta errores en conexion contactarse <br>por favor al (07) 2547252 ext. 127 o envie un correo a <br><A HREF="mailto:soporte@unl.edu.ec">soporte@unl.edu.e c</A> </center>'; # attempt to login if ($_GET['login'] == login) { $hexchal = pack ("H32", $_GET['chal']); if (isset ($uamsecret)) { $newchal = pack ("H*", md5($hexchal . $uamsecret)); } else { $newchal = $hexchal; }
  • 26. 26 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores $response = md5("0" . $_GET['Password'] . $newchal); $newpwd = pack("a32", $_GET['Password']); $pappassword = implode ("", unpack("H32", ($newpwd ^ $newchal))); $titel = 'Inicio de Sesion red UNL'; $headline = 'Inicio de Sesion red UNL'; $bodytext = ''; print_header(); if ((isset ($uamsecret)) && isset($userpassword)) { print '<meta http-equiv="refresh" content="0;url=http://' . $_GET['uamip'] . ':' . $_GET['uamport'] . '/logon?username=' . $_GET['UserName'] . '&password=' . $pappassword . '">'; } else { print '<meta http-equiv="refresh" content="0;url=http://' . $_GET['uamip'] . ':' . $_GET['uamport'] . '/logon?username=' . $_GET['UserName'] . '&response=' . $response . '&userurl=' . $_GET['userurl'] . '">'; } print_body(); print_footer(); } # 1: Login successful if ($_GET['res'] == success) { $result = 1; $titel = 'Registrado en red UNL'; $headline = 'Registrado en red UNL'; $bodytext = 'Bienvenido'; $body_onload = 'onLoad="javascript:popUp(' . $loginpath . '?res=popup&uamip=' . $_GET['uamip']
  • 27. 27 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores . '&uamport=' . $_GET['uamport'] . '&timeleft=' . $_GET['timeleft'] . ')"'; print_header(); print_body(); if ($reply) { print '<center>' . $reply . '</BR></BR></center>'; } print '<center><a href="http://' . $_GET['uamip'] . ':' . $_GET['uamport'] . '/logoff">Cerrar Sesion</a></center>'; print_footer(); } # 2: Login failed if ($_GET['res'] == failed) { $result = 2; $titel = 'Registro Fallido'; $headline = 'Registro Fallido'; $bodytext = 'Disculpe, intente nuevamente<br>'; print_header(); print_body(); if ($_GET['reply']) { print '<center>' . $_GET['reply'] . '</center>'; } print_login_form(); print_footer(); } # 3: Logged out if ($_GET['res'] == logoff) {
  • 28. 28 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores $result = 3; $titel = 'Desconectado de red UNL'; $headline = 'Desconectado de red UNL'; $bodytext = '<a href="http://' . $_GET['uamip'] . ':' . $_GET['uamport'] . '/prelogin">Login</a>'; print_header(); print_body(); print_footer(); } # 4: Tried to login while already logged in if ($_GET['res'] == already) { $result = 4; $titel = 'Sesion ya iniciada en red UNL'; $headline = 'Sesion ya iniciada en red UNL'; $bodytext = '<a href="http://' . $_GET['uamip'] . ':' . $_GET['uamport'] . '/logoff">Logout</a>'; print_header(); print_body(); print_footer(); } # 5: Not logged in yet if ($_GET['res'] == notyet) { $result = 5; $titel = 'Bienvenido a la red UNL'; $headline = 'Bienvenido a la red UNL'; $bodytext = 'Usted esta intentando acceder a la red de la UNL<br>Por favor use sus datos del S.G.A.'; print_header(); print_body(); print_login_form(); print_footer(); }
  • 29. 29 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores #11: Popup1 if ($_GET['res'] == popup1) { $result = 11; $titel = 'Ingresando a red UNL'; $headline = 'Ingresando a red UNL'; $bodytext = 'por favor espere...'; print_header(); print_body(); print_footer(); } #12: Popup2 if ($_GET['res'] == popup2) { $result = 12; $titel = 'Sesion iniciada en red UNL'; $headline = 'Sesion iniciada en red UNL'; $bodytext = '<a href="http://' . $_GET['uamip'] . ':' . $_GET['uamport'] . '/logoff">Cerrar Sesion</a>'; print_header(); print_body(); print_footer(); } #13: Popup3 if ($_GET['res'] == popup3) { $result = 13; $titel = 'Desconectado de red UNL'; $headline = 'Desconectado de red UNL'; $bodytext = '<a href="http://' . $_GET['uamip'] . ':' . $_GET['uamport'] . '/prelogin">Iniciar Sesion</a>'; print_header(); print_body(); print_footer(); } # 0: It was not a form request # Send out an error message if ($_GET['res'] == "") {
  • 30. 30 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores $result = 0; $titel = 'Atencion. No debe estar aqui'; $headline = 'Inicio de Sesion Fallido'; $bodytext = 'Salga de aqui inmediatamente. El logueo debe realizarse mediante el demonio'; print_header(); print_body(); print_footer(); } # functions function print_header(){ global $titel, $loginpath; $uamip = $_GET['uamip']; $uamport = $_GET['uamport']; print " <html> <head> <title>$titel</title> <meta http-equiv="Cache-control" content="no-cache"> <meta http-equiv="Pragma" content="no- cache"> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859- 1"> <SCRIPT LANGUAGE="JavaScript"> var blur = 0; var starttime = new Date(); var startclock = starttime.getTime(); var mytimeleft = 0; function doTime() { window.setTimeout( "doTime()", 1000 ); t = new Date();
  • 31. 31 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores time = Math.round((t.getTime() - starttime.getTime())/1000); if (mytimeleft) { time = mytimeleft - time; if (time <= 0) { window.location = "$loginpath?res=popup3&uamip=$uamip&uamport=$uamp ort"; } } if (time < 0) time = 0; hours = (time - (time % 3600)) / 3600; time = time - (hours * 3600); mins = (time - (time % 60)) / 60; secs = time - (mins * 60); if (hours < 10) hours = "0" + hours; if (mins < 10) mins = "0" + mins; if (secs < 10) secs = "0" + secs; title = "Online time: " + hours + ":" + mins + ":" + secs; if (mytimeleft) { title = "Remaining time: " + hours + ":" + mins + ":" + secs; } if(document.all || document.getElementById){ document.title = title; } else { self.status = title; } } function popUp(URL) { if (self.name != "chillispot_popup") { chillispot_popup = window.open(URL, 'chillispot_popup', 'toolbar=0,scrollbars=0,location=0,statusbar=0,men ubar=0,resizable=1,width=500,height=375'); } } function doOnLoad(result, URL, userurl, redirurl, timeleft) {
  • 32. 32 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores if (timeleft) { mytimeleft = timeleft; } if ((result == 1) && (self.name == "chillispot_popup")) { doTime(); } if ((result == 1) && (self.name != "chillispot_popup")) { chillispot_popup = window.open(URL, 'chillispot_popup', 'toolbar=0,scrollbars=0,location=0,statusbar=0,men ubar=0,resizable=1,width=500,height=375'); } if ((result == 2) || result == 5) { document.form1.UserName.focus() } if ((result == 2) && (self.name != "chillispot_popup")) { chillispot_popup = window.open('', 'chillispot_popup', 'toolbar=0,scrollbars=0,location=0,statusbar=0,men ubar=0,resizable=1,width=400,height=200'); chillispot_popup.close(); } if ((result == 12) && (self.name == "chillispot_popup")) { doTime(); if (redirurl) { opener.location = redirurl; } else if (opener.home) { opener.home(); } else { opener.location = "about:home"; } self.focus(); blur = 0; } if ((result == 13) && (self.name == "chillispot_popup")) {
  • 33. 33 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores self.focus(); blur = 1; } } function doOnBlur(result) { if ((result == 12) && (self.name == "chillispot_popup")) { if (blur == 0) { blur = 1; self.focus(); } } } </script>"; } function print_body(){ global $headline, $bodytext, $body_onload, $result, $loginpath; $uamip = $_GET['uamip']; $uamport = $_GET['uamport']; $userurl = $_GET['userurl']; $redirurl = 'http://www.unl.edu.ec'; $userurldecode = $_GET['userurl']; $redirurldecode = $_GET['redirurl']; $timeleft = $_GET['timeleft']; print " </head> <body onLoad="javascript:doOnLoad($result, '$loginpath?res=popup2&uamip=$uamip&uamport=$uampo rt&userurl=$userurl&redirurl=$redirurl&timeleft=$t imeleft','$userurldecode', '$redirurldecode', '$timeleft')" onBlur = "javascript:doOnBlur($result)" bgColor = '#ffffff'> <h1 style="text-align: center;">$headline</h1> <center>$bodytext</center><br>"; } function print_login_form(){ global $loginpath; print '
  • 34. 34 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores <FORM name="form1" METHOD="get" action="' . $loginpath . '?"> <INPUT TYPE="HIDDEN" NAME="chal" VALUE="' . $_GET['challenge'] . '"> <INPUT TYPE="HIDDEN" NAME="uamip" VALUE="' . $_GET['uamip'] . '"> <INPUT TYPE="HIDDEN" NAME="uamport" VALUE="' . $_GET['uamport'] . '"> <INPUT TYPE="HIDDEN" NAME="userurl" VALUE="' . $_GET['userurl'] . '"> <center> <table border="0" cellpadding="5" cellspacing="0" style="width: 217px;"> <tbody> <tr> <td align="right">C.I.:</td> <td><input type="text" name="UserName" size="20" maxlength="255"></td> </tr> <tr> <td align="right">Clave:</td> <td><input type="password" name="Password" size="20" maxlength="255"></td> </tr> <tr> <td align="center" colspan="2" height="23"><input type="submit" name="login" value="login"></td> </tr> </tbody> </table> </center> </form>'; } function print_footer(){ global $footer_text; print $footer_text . '</body></html>'; exit(0); } exit(0); ?> </div>
  • 35. 35 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores 8.2.5.Creación del archivo ipup.sh En el paquete CoovaChilli, existen archivos con reglas tipo iptables ya creadas. Se usó estas mismas reglas y se añadió más reglas acordes con las políticas de seguridad de la Unidad de Telecomunicaciones e Información. Existen dos scripts de shell que contienen las reglas de iptables que maneja CoovaChilli los que son up.sh y down.sh, estos scripts se ejecutan al instante en que se levanta el proceso de CoovaChilli. Para agregar mas reglas de iptables se debe a crear el scripts de Shell llamado ipup.sh donde se establecieron los siguientes aspectos:  Conexión ssh Para permitir administrar remotamente el servidor mediante SSH desde la interfaz eth0, ya que por defecto está inhabilitado se procedió a abrir el puerto que se usa dentro de la unidad de telecomunicaciones.  Resolución de Nombres (DNS) Se procedió a abrir el puerto 53 udp donde el DNS trabaja y ahí se especifico la dirección IP del DNS de la universidad.  Peticiones http Para que se permita la navegación se procedió a abrir el puerto 80 tcp.
  • 36. 36 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores  Conexión segura Para que el servidor web escuche por el puerto de conexión segura se procedio a abrir el puerto 443 tcp.  Puerto por el que escucha CoovaChilli Para que CoovaChilli escuche las peticiones de los usuarios se procedió a abrir el puerto 3990 tcp.  NAT (Traducciones de direcciones de red) El NAT permite la traducciones de direcciones ip en este caso se da con la Red 10.1.0.0/24, de modo que todo el trafico generado en esta red pueda salir por la IP x.x.x.x/x, ya que esta ip esta configura en la interfaz eth0 que es el medio por el cual se da acceso a internet. A continuación se detalla las reglas que se aplicó en el archivo. #! /bin/sh echo "Iniciando Script | aplicancdo reglas" #Interfaces eth0: x.x.x.x eth1: 10.1.0.1 IPTABLES="/sbin/iptables" IPETH0="eth0" IPETH1="eth1" DNS=x.x.x.x INTRANET=x.x.x.x/x HOST=x.x.x.x CERO=0.0.0.0/0 #Limpiando todo filter - nat $IPTABLES -F $IPTABLES -X $IPTABLES -Z $IPTABLES -t nat -F
  • 37. 37 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores $IPTABLES -t nat -X $IPTABLES -t nat -Z #estableciendo politicas por default DROP #$IPTABLES -P INPUT DROP #$IPTABLES -P OUTPUT DROP #$IPTABLES -P FORWARD DROP ##Estableciendo reglas en las cadenas INPUT y OUTPUT ##aceptar todas las acciones en localhost 127.0.0.1 $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT #acciones sobre ICMP todos "type" 0-8 $IPTABLES -A INPUT -i eth0 -p icmp --icmp-type 8 - s $INTRANET -d $HOST -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -p icmp --icmp-type 0 -s $HOST -d $INTRANET -j ACCEPT $IPTABLES -A INPUT -i eth0 -p icmp --icmp-type 0 - s $CERO -d $HOST -j ACCEPT $IPTABLES -A OUTPUT -o eth0 -p icmp --icmp-type 8 -s $HOST -d $CERO -j ACCEPT #abriendo puerto 3779 para desconectar usuarios $IPTABLES -A INPUT -p udp -m udp --dport 3779 -j ACCEPT #DNS $IPTABLES -A INPUT -s $DNS -d x.x.x.x -i eth0 -p udp --sport 53 --dport 1024: -j ACCEPT $IPTABLES -A OUTPUT -s x.x.x.x -d $DNS -o eth0 -p udp --sport 1024: --dport 53 -j ACCEPT #abriendo el puerto 80 $IPTABLES -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT $IPTABLES -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT #abriendo puerto 443
  • 38. 38 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores $IPTABLES -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT $IPTABLES -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT # puerto 3990 $IPTABLES -A INPUT -p tcp -m tcp --dport 3990 -- syn -j ACCEPT #nat $IPTABLES -t nat -A POSTROUTING -o $IPETH0 -j MASQUERADE echo final 8.2.6.Generación de certificados SSL apache2 Como se va a usar conexiones SSL para mayor seguridad. Se tiene que instalar el módulo SSL. root@radius:~# apt-get install apache2 ssl-cert Se debe crear un directorio llamado ssl dentro de /etc/apache2 root@radius:~# mkdir /etc/apache2/ssl Es necesario saber el nombre del equipo esto va a servir al generar el certificado. Se lo obtiene con el siguiente comando. root@radius:~# hostname -f A continuación, habrá que hacer un certificado SSL que será utilizado por el host virtual que se detalla más adelante. El sistema preguntará por una serie de parámetros (Localidad, Provincia, etc.), siendo el más importante el nombre del host. En este caso será “10.1.0.1”. De esta forma se consigue que el nombre del host y el
  • 39. 39 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores del certificado coincidan, ya que los navegadores dan avisos de posibilidad de intrusión en caso de que no coincidan: root@radius:~# make-ssl-cert /usr/share/ssl- cert/ssleay.cnf /etc/apache2/ssl/apache.pem Aparecerá una ventana donde se debe escribir el nombre del equipo que ya anteriormente se obtuvo con el comando hostname – f. En este caso es radius.unl.edu.ec. Figura 3. Ventana de configuración de certificado SSL Para activar el módulo ssl se debe ejecutar el siguiente comando. root@radius:~# a2enmod ssl 8.2.7.Creación de host virtual Para la configuración correcta del virtual host es necesario tener en cuenta los siguientes aspectos. NameVirtualHost: se indica la dirección IP de la tarjeta de red y el puerto.
  • 40. 40 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores DocumentRoot: Directorio principal que contiene la estructura de directorios visible desde la Web Esta directiva especifica el directorio desde el cuál apache2 servirá los ficheros. ServerName: La directiva ServerName especifica el nombre de host y el puerto que usa el servidor para identificarse. Directory index: Engloba a un grupo de directivas que se aplicarán solamente al directorio del sistema de ficheros especificado y a sus subdirectorios. Aquí es donde se indica el nombre de la página principal del sitio. ServerAdmin: Dirección de email que el servidor incluye en los mensajes de error que se envían al cliente. ErrorLog: Ubicación del fichero en el que se almacenan los mensajes de error. CustomLog: Ubicación de donde esta el archivo en el cual se registran los accesos al sitio. SSLCertificateFile: Aquí se ubica la ruta del certificado ssl. Se procede a crear un archivo llamado hotspot donde se va a agregar el host virtual dentro del directorio /etc/apache2/sites- available. root@radius:~# vim /etc/apache2/sites- available/hotspot A continuación se muestra la configuración del virtual host . Aquí se agrega la ruta donde se creó el certificado ssl. <IfModule mod_ssl.c>
  • 41. 41 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores <VirtualHost 10.1.0.1:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/hotspot ServerName radius.unl.edu.ec <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/hotspot/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> Alias "/dialupadmin/" "/usr/share/freeradius- dialupadmin/htdocs/" <Directory "/usr/share/freeradius- dialupadmin/htdocs/"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /var/www/hotspot/cgi- bin/
  • 42. 42 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores <Directory "/var/www/hotspot/cgi-bin/"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem LogLevel warn CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined Alias /doc/ "/usr/share/doc/"
  • 43. 43 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Se ejecuta los siguientes comandos para finalizar la configuración de apache2 root@radius:~# a2ensite hotspot root@radius:~# apache2ctl -t root@radius:~# /etc/init.d/apache2 reload Finalmente se reinicia todos los servicios (FreeRADIUS y CoovaChilli) y se tendrá al servidor RADIUS funcionando con el portal cautivo. Es importante tener en cuenta que al reiniciar el servicio de FreeRADIUS debe de ser con las instrucciones ya anteriormente mencionadas. 8.3. daloRADIUS A continuación se detalla el proceso de instalación y configuración del daloRADIUS, al ser una herramienta de administración web, el uso correcto se detalla en el manual de usuario. 8.3.1.Instalación El siguiente paso es descargar daloRADIUS desde su Web . root@radius:~#wget http://sourceforge.net/projects/daloradius/files/d aloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz Una vez descargado el paquete de daloRADIUS se procede a descomprimir la aplicación y se debe crear la base de datos con las tablas pertinentes. Como root se ejecuta los siguientes comandos: Se descomprime el paquete descargado
  • 44. 44 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores root@radius:~# tar xvzf daloradius-0.9-9.tar.gz Se copia la carpeta daloradius-0.9-9 al directorio de /var/www/ root@radius:~# cp daloradius-0.9-9 /var/www/daloradius –R Se da permiso al apache sobre el directorio del daloRADIUS que esta en el directorio /var/www/daloradius root@radius:~# chown www-data:www-data /var/www/daloradius/ -R Se cambian los permisos del archivo daloradius.conf.php root@radius:~# chmod 644 /var/www/daloradius/library/daloradius.conf.php 8.3.2.Configuración Para que daloRADIUS funcione correctamente, se requiere agregar algunas tablas más 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: root@radius:~# mysql -u root -p radius < /var/www/daloradius/contrib/db/fr2-mysql- daloradius-and-freeradius.sql
  • 45. 45 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Seguidamente se edita el archivo daloradius.conf.php para poner los valores de la conexión al server de la base de datos: root@radius:~# vi /var/www/daloradius/ daloradius.conf.php $configValues[‘CONFIG_DB_ENGINE’] = ‘mysql’; $configValues[‘CONFIG_DB_HOST’] = ‘127.0.0.1’; $configValues[‘CONFIG_DB_USER’] = ‘radius’; $configValues[‘CONFIG_DB_PASS’] = ‘clavesegura’; $configValues[‘CONFIG_DB_NAME’] = ‘radius’; Una vez esto, se reinicia el apache: root@radius:~# /etc/init.d/apache2 restart Para poder visualizar la interfaz de daloRADIUS se debe ingresar a un navegador de prefencia Mozilla Firefox y se coloca la dirección IP del servidor o el dominio: http://172.16.32.20/daloradius o http://radius.unl.edu.ec/daloradius Figura 4. Dirección de Ingreso con IP Figura 5. Dirección de Ingreso con dominio y en la sección de password se ingresa la contraseña: radius
  • 46. 46 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Figura 6. Ventana de Logeo 8.4. Errores Comunes A continuación se detallan algunos de los errores más comunes y se presenta la solución correspondiente. 8.4.1. Error al crear el directorio /var/log/freeradius/radacct Uno de los errores que aparece al leer los log de FreeRADIUS en daloRADIUS es el siguiente: Failed to create directory /var/log/freeradius/radacct: Permission denied Para corregir el error se debe seguir los siguientes pasos: root@radius:~# mkdir /var/log/freeradius/radacct/
  • 47. 47 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores root@radius:~# touch /var/log/freeradius/radacct/sql-relayOpen 8.4.2.Error de reinicio de servicio FreeRADIUS Es importante recordar que el reinicio del servicio de freeradius no se lo puede ejecutar con los comandos comunes sino que se debe ejecutar un comando especial como lo es: LD_PRELOAD=/usr/lib/libperl.so.5.14.2 /etc/init.d/freeradius restart /etc/init.d/chilli restart Es por esto que cada vez que se reinicie el equipo se va a dar el siguiente error por el scrip que se agregó de perl. Figura 7. Error al levantar el servicio FreeRADIUS Este error se lo solucionó agregando unas líneas en el archivo /etc/rc.local que se ejecuta al reiniciar el equipo. A continuación se muestra los comandos agregados:
  • 48. 48 FreeRADIUS, CoovaChilli y daloRADIUS Universidad Nacional de Loja Lisset Neyra Fabricio Flores Figura 8. Archivo rc.local 8.4.3.Error al leer los logs de daloRADIUS Este error aparece al momento de visualizar los logs de daloradius mediante su interfaz gráfica debido a que se guardan dentro de /tmp/daloradius.log y como es un archivo temporal se lo debe de crear dar permisos cada vez que se reinicie el equipo. Por esto se procedió a agregar en /etc/rc.local los siguientes comandos. touch /tmp/daloradius.log chown www-data:www-data /tmp/daloradius.log