Voy a explicar paso a paso como instalar y configurar FreeRadius en un servidor Linux con CentoOS 5.5. Para posteriormente usar un router MikroTik RouterBOARD 750G contra el servidor FreeRadius.
Este router dispone del sistema operativo RouterOS y evidentemente de los servicio Radius y HotSpot con los que nos comunicaremos contra el servidor.
Para realizar el proceso de instalación, nos conectaremos a la consola bash del servidor, ya sea localmente o por SSH, y realizaremos los siguientes pasos:
1.Instalamos los paquetes de FreeRadius2:
yum -y install freeradius2 freeradius2-mysql freeradius2-utils
Nota:
Hasta la version de CentOS 5.4, solo hay paquetes de FreeRadius 1.1.x
A partir de la version de CentOS 5.5, ya hay paquetes de FreeRadius 2.x.
No se pueden instalar la dos versiones a la vez.
2. Instalamos los paquetes de MySQL:
yum -y install mysql mysql-server
3. Generamos los certificados predeterminados:
radiusd -X
4. Si nos aparece lo siguiente, todo a ido bien. Entonces pulsaremos Ctrl+C para finalizar el proceso:
Ready to process requests.
5. Iniciamos MySQL:
/etc/init.d/mysqld start
6. Marcamos el servicio para que se inicie al arrancar el S.O, ejecutando el siguiente comando:
ntsysv
6.1. Marcamos:
[*] mysqld
7. Le damos contraseña al usuario root:
mysqladmin -uroot password ’123qwe’
8. Creamos una base de datos llamada radius:
mysqladmin -uroot -p123qwe create radius
9. Accedemos al interprete de ordenes de MySQL:
mysql -uroot -p123qwe
10. Creamos el usuario radius con password 123qew y con permisos totales sobre la BD radius:
GRANT all ON radius.* TO radius@localhost IDENTIFIED BY ’123qwe’;
11. Salimos del interprete de ordenes:
exit;
12. Añadimos a la base de datos radius con el usuario radius los esquemas de 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
13.Editamos el fichero de configuración de Radius:
vim /etc/raddb/radiusd.conf
14. Descomentamos la linea que dice $INCLUDE sql.conf (linea 863, aprox.):
$INCLUDE sql.conf
15. Editamos el fichero de configuración de SQL de Radius:
vim /etc/raddb/sql.conf
16. Modificamos los valores de los datos de acceso a la base de datos, con los que nosotros hemos usado (linea 35, aprox.):
# Connection info:
server = “localhost”
#port = 3306
login = “radius”
password = “123qwe”# Database table configuration for everything except Oracle
radius_db = “radius”
17. Descomentamos la linea que dice readclients = yes (linea 100, aprox.):
readclients = yes
18. Editamos el fichero de configuracion de los sitios habilitados por defecto:
vim /etc/raddb/sites-enabled/default
19. Descomentamos la linea que dice sql de la sección See “Authorization Queries” in sql.conf (linea 159, aprox.):
sql
19. Descomentamos la linea que dice sql de la sección See “Accounting queries” in sql.conf (linea 365, aprox.):
sql
20. Accedemos nuevamente al interprete de ordenes de MySQL
mysql -uradius -p123qwe radius
21.Damos de alta un usuario, por ejemplo, usuario marius con contraseña temporal:
INSERT INTO radcheck (username, attribute, value) VALUES (‘marius’, ‘Password’, ‘temporal’);
Nota: Esto equivale a añadir marius Cleartext-Password := “123qwe” en el fichero /etc/raddb/users
22. Comprobamos que el usuario se ha añadido correctamente:
select * from radcheck;
22.1. Veremos algo así:
+—-+———-+———–+—-+———-+
| id | username | attribute | op | value |
+—-+———-+———–+—-+———-+
| 1 | marius | Password | == | temporal |
+—-+———-+———–+—-+———-+
1 row in set (0.00 sec)
23. Salimos de MySQL:
exit;
24. Iniciamos el servicio RADIUS:
/etc/init.d/radiusd start
25. Marcamos el servicio para que se inicie al arrancar el S.O, ejecutando el siguiente comando:
ntsysv
25.1. Marcamos:
[*] radiusd
26. Verificamos que el servicio radius puede autentificarse con mysql, con el usuarios que hemos creado.
radtest marius temporal localhost 1812 testing123
27. Si ha ido bien nos devolverá algo como esto:
Sending Access-Request of id 201 to 127.0.0.1 port 1812
User-Name = “marius”
User-Password = “temporal”
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=201, length=20
28. Ahora podemos autenticar usuarios de manera local (localhost). Si queremos conectarnos desde un punto de acceso, volvemos a acceder al interprete de ordenes de MySQL:
mysql -uradius -p123qwe radius
29. Añadimos a la tabla NAS, los datos de nuestro P.A: ip, nombre, tipo y contraseña. Para el tipo de NAS podemos usar (other, cisco, livingston, computon, max40xx, multitech, natserver, pathras, patton, portslave, tc o usrhiper) si es otro, escribimos other.
INSERT INTO nas (nasname, shortname, type, secret) VALUES (’10.0.0.20′, ‘MikroTik20′, ‘other’, ’123qwe’);
30. Comprobamos que el nas se ha añadido correctamente:
select * from nas;
+—-+———–+————+——-+——-+——–+———–+—————+
| id | nasname | shortname | type | ports | secret | community | description |
+—-+———–+————+——-+——-+——–+———–+—————+
| 1 | 10.0.0.20 | MikroTik20 | other | NULL | 123qwe | NULL | RADIUS Client |
+—-+———–+————+——-+——-+——–+———–+—————+
1 row in set (0.01 sec)
30.1 Esto equivale a añadir al fichero /etc/raddb/clients.conf lo siguiente:
client 10.0.0.20 {
secret = 123qwe
shortname = MikroTik20
nastype = other
}
31. Para aplicar los cambios reiniciamos el servicio radius:
/etc/init.d/radiusd restart
32. Para realizar pruebas de conexión remota añadimos otro NAS, pero que sea un servidor linux donde le instalaremos el paquete freeradius2-utils.
INSERT INTO nas (nasname, shortname, type, secret) VALUES (’10.0.0.9′, ‘Pruebas’, ‘other’, ’123qwe’);
33. Para aplicar los cambios reiniciamos el servicio radius:
/etc/init.d/radiusd restart
34. Accedemos al servidor que hemos configurado en el NAS y le instalamos el paquete freeradius2-utils.
yum -y install freeradius2-utils
35. Realizamos la prueba de conexion remota ejecutando un radtest contra el servidor FreeRadius (10.0.0.6).
radtest marius temporal 10.0.0.6 1812 123qwe
36. Si ha ido bien nos devolverá algo como esto:
Sending Access-Request of id 48 to 10.0.0.6 port 1812
User-Name = “marius”
User-Password = “temporal”
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 10.0.0.6 port 1812, id=48, length=20
Hecho esto, ya tenemos nuestro servidor FreeRadius preparado para configurar-lo en nuestro router y hacer pruebas con el usuario que hemos creado anteriormente.





Posted in
Tags: 





Buenas, te comento, sigo todos los pasos y cuando hago la prueba de conectar el usr de test no escribe la tabla de radacct, abro una ventana corriendo el radiusd -X y en otra hago la prueba donde me tira el error. Me podrán dar una mano con este tema?? tengo un CentOS 5 donde lo estoy corriendo.
Gracias.
Error:
[root@VALIDADOR ~]# radtest swko tempo localhost 1812 testing123
radclient:: Failed to find IP address for VALIDADOR
radclient: Nothing to send.
iso 9001…
[...]Instalar y configurar FreeRadius con MySQL en Centos 5.5[...]…
diculpe se puede utilizar los serviciosfreeradius en Centos6..gracias..
Nose porque pero no puedo iniciar el servicio Radius, e seguido todas las indicaciones sin saltarme una sola linea, favor tu apoyo con el tema
Saludos
no naaa naa ya ta.
Todo me corre bien, hasta la prueba radtest, pero no consiguo auntenticar una netbook u otro dispositivo via wireless.
Para la Netbook con WinXP he realizado la configuración de otros foros, pero me pregunto si es el adecuado para esta configuración.
La netbook me pide las credenciales y todo (id, pass), pero no pasa nada.
Gracias de antemano