Sondeo

Si ya probaste GNOME 3...

¿Te gustó GNOME 3?

  •  Si
  •  No
Este sondeo tiene 5 preguntas más.
Resultados
Más sondeos | 2,316 votos | 8 comentarios
Atención: 21 al 25 de mayo, Curso Global de Servidores con CentOS 6.
Atención: 23 al 27 de abril, Curso SUSE Linux Enterprise Desktop Administration.
Atención: 21 y 28 de abril, 5 y 12 de mayo, Taller de programación de Python.
Atención: Disponible ALDOS 1.4.3. Nuestro sistema operativo para escritorio.

Cómo configurar Freeradius con MySQL en CentOS 5.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2010 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Acerca de RADIUS.

RADIUS (Remote Authentication Dial-In User Service) es un protocolo de autenticación, autorización y manejo de cuentas de usuario originalmente desarrollado por Livingston Enterprises y publicado en 1997 como los RFC 2058 y 2059. Es utilizado para administrar el acceso remoto y la movilidad IP, como ocurre en servicios de acceso por modem, DSL, servicios inalámbricos 802.11 o servicios de VoIP (Voice over IP o Voz sobre IP). Este protocolo trabaja a través del puerto 1812 por UDP.

La autenticación gestionada por este protocolo se realiza a través del ingreso de un nombre de usuario y una clave de acceso. Esta información es procesada por un dispositivo NAS (Network Access Server) a través de PPP (Point-to-Point Protocol o Protocolo Punto-a-Punto) siendo posteriormente validada por un servidor RADIUS a través del protocolo correspondiente valiéndose de diversos esquemas de autenticación, como PAP (Password Authentication Protocol o Protocolo de Autenticación de Clave de acceso), CHAP (Challenge-Handshake Authentication Protocol) o EAP (Extensible Authentication Protocol), y permitiendo el acceso al sistema.

URL: http://tools.ietf.org/html/rfc2058 y http://tools.ietf.org/html/rfc2059

Acerca de Freeradius.

Freeradius, proyecto iniciado en 1999 por Alan DeKok y Miquel van Smoorenburg (quien colaboró anteriormente en el desarrollo de Cistron RADIUS), es una alternativa libre hacia otros servidores RADIUS, siendo uno de los más completos y versátiles gracias a la variedad de módulos que le componenen. Puede operar tanto en sistemas con recursos limitados así como sistemas atendiendo millones de usuarios.

Freeradius inició como un proyecto de servidor RADIUS que permitiera una mayor colaboración de la comunidad y que pudiera cubrir las necesidades que otros servidores RADIUS no podían. Actualmente incluye soporte para LDAP, SQL y otras bases de datos, así como EAP, EAP-TTLS y PEAP. Actualmente incluye soporte para todos los protocolos comunes de autenticación y bases de datos.

URL: http://www.freeradius.org/

Acerca de Daloradius.

Daloradius es una avanzada aplicación HTTP que sirve de sistema de administración para RADIUS, y está diseñada para ser utilizada para administrar hotspots (puntos calientes, es decir zona de cobertura Wi-Fi, en el que un punto de acceso o varios proveen servicios de red a través de un Proveedor de Servicios de Internet Inalámbrico o WISP) y uso general para la autenticación de Proveedores de Acceso a Internet (ISP). Incluye gestión de usuarios, reportes gráficos, contabilidad, motor de cobranza e integración con GoogleMaps para Geolocalización.

URL: http://daloradius.com/.

Procedimientos.

Instale los paquetes necesarios:

yum -y install freeradius2 freeradius2-mysql freeradius2-utils
yum -y install mysql mysql-server

Generar los certificados predeterminados ejecutando el mandato radiusd con la opción -X:

radiusd -X

Lo anterior iniciará el servicio radiusd e iniciará la generación de los certificados. Cuando el diálogo lo pida, definir los datos de país, estado, nombre del anfitrión y cuenta de correo del administrador. Al concluir pulsar CTRL-C para terminar el servicio y continuar configuración.

Inicie el servicio MySQL:

service mysqld start

Añada el servicio MySQL al arranque del sistema:

service mysqld on

Asigne clave de acceso al usuario root de MySQL:

mysqladmin -uroot password '123qwe'

Genere una nueva base de datos denominada radius:

mysqladmin -uroot -p123qwe create radius

Acceda al intérprete de mandatos de MySQL:

mysql -uroot -p123qwe

Designe el usuario y clava de acceso para acceder a la base de datos recién creada:

GRANT all ON radius.* TO radius@localhost IDENTIFIED BY '123qwe';

Salga de MySQL:

exit;

Utilizando el usuario radius, o el que haya designado para utilizar la base de datos recién creada, pueble la base de datos que acaba de crear con los esquemas incluidos con Freeradius:

mysql -uradius -p123qwe radius < /etc/raddb/sql/mysql/cui.sql
mysql -uradius -p123qwe radius < /etc/raddb/sql/mysql/ippool.sql
mysql -uradius -p123qwe radius < /etc/raddb/sql/mysql/nas.sql
mysql -uradius -p123qwe radius < /etc/raddb/sql/mysql/schema.sql
mysql -uradius -p123qwe radius < /etc/raddb/sql/mysql/wimax.sql

Edite el archivo /etc/raddb/radiusd.conf:

vim /etc/raddb/radiusd.conf

Descomente la línea que dice $INCLUDE sql.conf, lo cual se localiza aproximadamente alrededor de la línea 801:

        $INCLUDE sql.conf 

Edite el archivo /etc/raddb/sql.conf:

vim /etc/raddb/sql.conf

Definir los valores para acceder a la base de datos, lo cual se localiza aproximadamente alrededor de la línea 35:

        # Connection info:
        server = "localhost"
        #port = 3306
        login = "radius"
        password = "123qwe"

Descomente el parámetro readclients con valor yes, lo cual se localiza aproximadamente alrededor de la línea 100:

readclients = yes

Edite el archivo /etc/raddb/sites-enabled/default:

vim /etc/raddb/sites-enabled/default

Descomente en la sección authorize, lo cual se localiza aproximadamente alrededor de la línea 159:

        sql

Descomentar en la sección accounting, lo cual se localiza aproximadamente alrededor de la línea 365:

        sql

Reegrese al símbolo de sistema y acceda a MySQL para dar de alta un usuario para probar:

mysql -uradius -p123qwe radius

Desde el símbolo de sistema de MySQL, ejecute lo siguiente para dar de alta un usuario de pruebas (fulano) con una clave de acceso (123qwe en el ejemplo):

INSERT INTO radcheck (username, attribute, value) VALUES ('fulano', 'Password', '123qwe');

Lo anterior equivale a añadir fulano Cleartext-Password := "123qwe" en el archivo /etc/raddb/users.

Verifique que el usuario se dio de alta correctamente:

select * from radcheck where username='fulano';

Debe regresar algo similar a los siguiente:

+----+----------+-----------+----+--------+
| id | username | attribute | op | value  |
+----+----------+-----------+----+--------+
|  6 | fulano   | Password  | == | 123qwe | 
+----+----------+-----------+----+--------+
1 row in set (0.00 sec)

Salga de mysql:

exit;

Inicie el servicio radiusd:

service radiusd start

Añada el servicio radiusd a los servicios de arranque del sistema:

chkconfig radiusd on

Verifique que el servicio puede autenticar a través de MySQL:

radtest fulano 123qwe localhost 1812 testing123
Lo anterior debe devolver algo similar como lo siguiente:
Sending Access-Request of id 222 to 127.0.0.1 port 1812
	User-Name = "fulano"
	User-Password = "123qwe"
	NAS-IP-Address = 127.0.0.1
	NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=222, length=20

A partir de este punto, solo podrá autenticar usuarios de manera local. Para poder conectar el punto de acceso hacia el servidor Freeradius, vuelva a conectarse MySQL:

mysql -uradius -p123qwe radius

Ejecute lo siguiente, definiendo la dirección IP del punto de acceso, nombre corto, tipo de NAS (other, cisco, livingston, computon, max40xx, multitech, natserver, pathras, patton, portslave, tc o usrhiper). Si utiliza un pinto de acceso casero, defina el tipo other.

INSERT INTO nas (nasname, shortname, type, secret) VALUES ('192.168.0.1', 'Mi-Ruteador', 'other', '123qwe');

Para verificar, ejecute desde el símbolo de sistema de MySQL lo siguiente:

select * from nas where shortname='Mi-Ruteador';

Lo anterior debe regresar algo similar a lo siguiente::

+----+---------------+-----------+-------+-------+--------+-----------+---------------+
| id | nasname       | shortname | type  | ports | secret | community | description   |
+----+---------------+-----------+-------+-------+--------+-----------+---------------+
|  3 | 192.168.0.1   | WRT54G    | other |  NULL | 123qwe | NULL      | RADIUS Client | 
+----+---------------+-----------+-------+-------+--------+-----------+---------------+
1 row in set (0.00 sec)

Lo anterior equivale a editar el archivo /etc/raddb/clients.conf y añadir la dirección IP del punto de acceso, una clave de acceso, nombre corto y tipo de NAS como other.

client 192.168.0.1 {
secret = cualquier-clave-de-acceso
shortname = WRT54G
nastype = other
}

Para que surta efecto el cambio, hay que reiniciar el servicio radiusd:

service radiusd restart

Para añadir otro punto de acceso, solo basta repetir las línea con los datos que correspondan:

INSERT INTO nas (nasname, shortname, type, secret) VALUES ('192.168.0.254', 'Otro-Ruteador', 'other', '123qwe');

Para realizar pruebas de conectividad remota, añada un equipo siguiendo el procedimiento anterior, y desde este equipo ejecute el mandato radtest (incluido en el paquete freeradius2-utils, si se utiliza CentOS 5 o Red Hat Enterprise Linux 5, o bien freeradius-utils, si se utiliza una versiñón reciente de Fedora) de la siguiente forma, donde x.x.x.x corresponde a la dirección IP del servidor Freeradius:

radtest fulano 123qwe x.x.x.x 1812 123qwe

Lo anterior debería devolver algo similar a lo siguiente.

Sending Access-Request of id 225 to x.x.x.x port 1812
	User-Name = "fulano"
	User-Password = "123qwe"
	NAS-IP-Address = 127.0.0.1
	NAS-Port = 1812
rad_recv: Access-Accept packet from host x.x.x.x port 1812, id=225, length=20

Instalar Daloradius para administración a través de HTTP.

Se requiere instalar Apache, PHP y sus ligaduras para MySQL, la biblioteca GD y Pear-DB:

yum -y install httpd php php-mysql php-gd php-pear php-pear-DB

Inicie el servicio httpd:

service httpd start

Añada el servicio httpd a los servicios de arranque del sistema:

chkconfig httpd on

Cambie al directorio /var/www/:

cd /var/www

Descargue desde sourceforge.net/projects/daloradius el archivo correspondiente a la versión más reciente de Daloradius:

wget http://cdnetworks-us-1.dl.sourceforge.net/project/daloradius/daloradius/daloradius-0.9-8/daloradius-0.9-8.tar.gz

Descomprima el archivo descargado:

tar zxvf daloradius-0.9-8.tar.gz

Cambie los permisos de todo el contenido del directorio recién descomprimido para que pertenezcan al usuario y grupo apache:

chown -R apache:apache daloradius-0.9-8

Cambie al directorio daloradius-0.9-8:

cd daloradius-0.9-8

cargue las tablas de Daloradius en la base de datos utilizada por Freeradius.

mysql -uradius -p123qwe < contrib/db/mysql-daloradius.sql

Edite el archivo library/daloradius.conf.php:

vim library/daloradius.conf.php

Edite los valores correspondientes a los necesarios para la conexión ala base de datos utilizada por Freeradius.

$configValues['CONFIG_DB_HOST'] = '127.0.0.1';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = '123qwe';
$configValues['CONFIG_DB_NAME'] = 'radius';

Genere un nuevo archivo denominado /etc/httpd/conf.d/daloradius.conf:

vim /etc/httpd/conf.d/daloradius.conf

Añada el siguiente contenido, donde x.x.x.x (ejemplo: 192.168.0.2) corresponde al al dirección IP del sistema desde el cual se realizará la administración remota de Daloradius:

Alias /daloradius "/var/www/daloradius-0.9-8/"

      Options None
      order deny,allow
      deny from all
      allow from 127.0.0.1
      allow from x.x.x.x

Reinicie el servicio httpd:

service httpd restart

Acceda con cualquier navegador moderno hacia http://direción-ip-servidor/radius/. Ingrese con el usuario Administrator y la clave de acceso radius. Desde esta interfaz podrá añadir y administrar las cuentas de usuarios y administrar y añadir los puntos de acceso.

Bibliografía.

Última Edición 23/07/2010, 17:22|13,670 Accesos Ver la versión para imprimir