Vous êtes sur la page 1sur 18

Servidor RADIUS con ZeroShell

Esteban M. Navas - 02/02/2010


He utilizado ZeroShell para montar un servidor Radius, entre otras cosas, porque me permitía
disponer rápidamente de un servidor Radius sin tener que montar toda la infraestructura software
que ello requiere y evitando la complejidad que supone.

ZeroShell (http://www.zeroshell.net) es una distribución opensource para servidores y dispositivos


embebidos cuyo objetivo es ofrecer los principales servicios que una LAN requiere, como por
ejemplo:
• DHCP.
• DNS.
• Firewall.
• VLAN.
• VPN.
• RADIUS.
• LDAP.
• Portal Cautivo.
Etc... Para más información, consultar la web de ZeroShell: http://www.zeroshell.net

Lo único que necesito ahora mismo es un servidor RADIUS, así que vamos a ver como configurar
esta posibilidad, dejando un poco de lado el resto de servicios.

ZeroShell se encuentra disponible en dos formatos:


• Como LiveCD.
• Como imagen Compact Flash.

Una de las ventajas que le veo es la posibilidad de configurar ZeroShell desde un terminal o vía ssh,
para usuarios avanzados. No obstante, también podemos administrarlo de forma remota desde
nuestro navegador gracias a que dispone de una interfaz web.

Pero la principal ventaja para mí, es que no requiere ser instalado en disco duro. Funciona
directamente en modo live desde un CD o incluso en un dispositivo USB, lo que nos da juego para
tener un servidor altamente disponible.

Los datos y ajustes se almacenan en una base de datos que puede ser almacenada en discos ATA,
SATA, SCSI y USB. Cuando lo configuramos, creamos un perfil. Ese perfil podemos copiarlo a
otro equipo y, en caso de avería de la máquina, tener funcionando de nuevo nuestro servidor en
pocos minutos. Además, si tenemos guardado un perfil en nuestro equipo, al arrancar ZeroShell lo
detectará y directamente lo cargará.

La base de datos se puede almacenar en un equipo que ya tenga un sistema operativo instalado sin
destruir nada. El sistemas de ficheros donde se almacena puede ser ext2, ext3, reiserfs o fat32.

Otra opción para tener un servidor altamente disponible es montarlo en una máquina virtual y, en
lugar de guardar tan sólo la BD de ZeroShell, guardar la máquina virtual completa.

No voy a entrar en más detalles acerca de ZeroShell. Para eso recomiendo visitar su web. Veamos
cómo tener rápidamente disponible un servidor Radius.
Antes de nada, decir que, como lo único que me interesa es tener un servidor radius, tan sólo
necesito tener una tarjeta de red en el equipo donde lo vaya a correr.

Supongamos que estamos usando el LiveCD. Lo introducimos en el equipo y lo iniciamos para que
arranque. Veremos una pantalla de inicio como la siguiente:

Una vez iniciado ZeroShell, veremos una pantalla más o menos así. Pulsamos Enter y comenzará el
proceso de arranque.

Como podemos ver en la pantalla de inicio se muestran los datos necesarios para configurar el
servidor por primera vez:
IP de ZeroShell: 192.168.0.75
Username: admin
Password: zeroshell
En esta pantalla de inicio podemos realizar una serie de acciones como activar un perfil,
desactivarlo, acceder al shell, reiniciar, etc...

Lo mejor es cambiar ya la IP por defecto (192.168.0.75) para integrar el ser vidor en nuestra red.
Así que, pulsamos la tecla I para seleccionar la opción <I> IP Manager.
Se nos mostrará una pantalla con las siguientes opciones:

Pulsamos la tecla M para seleccionar la opción <M> Modify IP address. Y cambiaremos la


configuración de la red para que el servidor tenga una ip y una máscara de nuestro rango. Nos irá
preguntando paso a paso los datos de nuestra red. Una vez introducidos, podemos configurar el
Gateway por defecto seleccionando la opción <G> Default Gateway.

Bueno, pues ahora que ya tenemos el servidor ZeroShell con una IP de nuestra red, ya podemos
acceder a su configuración mediante el interfaz web que éste nos ofrece. Así que, cogemos nuestro
equipo, abrimos el navegador y, en la barra de direcciones, ponemos la IP que le hemos asignado.
Por ejemplo, si le hemos asignado la IP 172.19.144.19:
Como podemos ver, nos dice que el servidor una un certificado de seguridad no válido, algo que es
cierto porque aún no lo hemos configurado. Así que, hacemos clic sobre la opción de añadir una
excepción y nos aparecerá una ventana donde podremos confirmar la excepción de seguridad.

Tenemos que confirmar la


excepción de seguridad porque
el servidor aún no tiene
creados sus certificados.

Una vez hecho ésto, veremos la pantalla de acceso de zeroshell:

Introduciremos los datos para acceder como administrador: admin - zeroshell


Veremos una pantalla como la siguiente:

Lo primero que tenemos que hacer es crear un perfil para guardar nuestros ajustes. Un perfil es la
base de datos donde se van a guardar los ajustes. Mientras no creemos un perfil, cada vez que
arranquemos zeroshell se iniciará con la configuración por defecto. Para ello, hacemos clic en
Profiles y seleccionamos el disco duro en el que vamos a guardar el perfil. Una vez seleccionado
nos aparecerán los botones que nos permiten trabajar con perfiles:

Como estoy trabajando en una máquina virtual en la que no he creado ninguna partición me aparece
un mensaje de error. Así que tendré que crear una partición. Para ello, en la siguiente pantalla, hago
clic en el botón “New partition”.

Si tuviera un disco duro con particiones de tipo ext2, ext3, reiserfs o fat32, me permitiría
seleccionar en qué partición quiero guardar el perfil.

Escribo un nombre para el disco virtual en Label y hago clic en “Create Partition”.

Una vez creada la partición, me aparecerá una ventana en la que seleccionaré el disco hda1, para
guardar allí el perfil:
En esta ventana, hacemos clic en el botón “Create Profile” y se nos abrirá una ventana como la
siguiente, en la que tendremos que especificar una serie de datos de nuestro nuevo servidor:

Rellenamos la descripción, Hostname, Realm, LDAP Base, nuestra contraseña de administrador y la


IP del gateway por defecto. Una vez especificados nuestros datos, pulsamos el botón Create y se
creará nuestro perfil. Un ejemplo:
Bien. Pues ahora que ya tenemos un perfil creado, vamos a activarlo. Para ello, seleccionamos el
perfil (_DB001) y hacemos clic en el botón Activate.

Nos mostrará los datos del perfil, como vemos en la siguiente pantalla:
Si son correctos, pulsamos el botón “Activate”. Se reiniciará el servidor para establecer los ajustes
que hemos realizado y, por tanto se cerrará la sesión.. Esperamos a que el servidor vuelva a iniciarse
para seguir configurándolo.

Al volver a iniciarse la máquina, si intentamos acceder al interfaz web desde el navegador, veremos
que vuelve a aparecernos la información de que la conexión con el servidor no ha sido verificada.
Volveremos a añadir la excepción de seguridad, después de eliminar la caché del navegador.

Ahora que ya hemos iniciado la sesión con nuestro perfil, crearemos una autoridad de certificación,
algo sencillo con esta herramienta, que puede venirnos bien en algún momento para otros temas.
Para ello, haremos clic en el botón X.509 CA del apartado SECURITY que hay en la parte
izquierda de la pantalla principal. Veremos algo así:
Bien. Pues, de entre todos lo botones que hay para trabajar con la autoridad de certificación,
hacemos clic en el botón “Setup” y veremos una pantalla como la siguiente, que nos ofrece unos
cuantos datos de ejemplo:

Modificaremos los datos de ejemplo que vienen con los nuestros. Por ejemplo:

Una vez introducidos nuestros datos, pulsaremos el botón “Generate” Nos mostrará un mensaje en
el que nos pregunta si estamos seguros. Pulsamos “OK” y listo.
El siguiente paso a seguir es configurar RADIUS. Para ello hacemos clic en la opción “RADIUS”
del menú “USERS” que tenemos a la izquierda de la pantalla y veremos una pantalla como la
siguiente:

Como podemos ver el servicio RADIUS aún no está activo.


Antes de activarlo, vamos a registrar los puntos de acceso que van a poder contactar con el
sservidor RADIUS:
De los tres botones que hay para configurar el servidor RADIUS, hacemos clic en el botón “Access
Points” y veremos una pantalla que nos permitirá dar de alta nuestros puntos de acceso:

Para cada punto de acceso que vaya a comunicarse con nuestro servidor RADIUS especificaremos
un nombre que nos servirá para identificarlo, su IP, la máscara de red y una contraseña
compartida entre el servidor RADIUS y el punto de acceso. La contraseña debería ser una
combinación de caracteres numéricos y alfanuméricos mayúsculas y minúsculas. Eso sí. No puede
sr de más de 32 caracteres.

Veamos un ejemplo:

Una vez introducidos los datos de cada punto de acceso pulsamos el botón “Add” y se añadirá a la
lista. Cuando terminemos de añadir puntos de acceso pulsamos el botón “Close”.
Ahora que ya tenemos registrados los puntos de acceso activamos el servidor marcando la casilla
“Enabled” en la siguiente pantalla.
El siguiente paso será configurar nuestro punto de acceso. Así que accedemos a él mediante el
interfaz web y buscamos las opciones que nos permitan configurarlo.

Como punto de acceso he utilizado un router WRT54GS que flasheé con el firmware DD-WRT
v24-sp2 (10/10/09) micro:

En la imagen se pueden ver las opciones que yo he seleccionado.

En cuanto a la clave que debemos especificar en el apartado “Radius Auth Shared Secret” es la
que establecimos en la casilla “Shared secret” cuando dimos de alta en punto de acceso en
ZeroShell.
Después crearemos los usuarios a los que vamos a permitir el acceso vía wifi.

En este documento veremos cómo crearlos dentro de ZeroShell, aunque también se podrían utilizar
los usuarios almacenados en una b.d. LDAP o incluso en un servidor LDAP externo.

Para crear usuarios locales hacemos clic en la opción “Users” del apartado “USERS” del menú de
la izquierda de la pantalla:

Como podemos ver, tan sólo aparece el usuario “admin”. Para crear uno nuevo haremos clic en el
botón “Add” del menú superior y nos aparecerá un formulario donde podremos añadir sus datos:
Como mínimo, tendremos que escribir el nombre de usuario, el password, el nombre y apellido. Si
no introducimos el home de usuario, le pondrá /home/nombredelusuario.

Una vez introducidos los campos obligatorios veremos una pantalla que nos muestra el certificado
del usuario.

Realizaremos la misma operación con cada uno de nuestros usuarios.

Por último, configuraremos un cliente para ver que nuestro servidor funciona. Vamos a ver cómo
realizar la configuración mediante wicd, la herramienta gráfica que viene instalada en los portátiles
que nos han enviado.

Abrimos wicd y veremos una pantalla similar a la siguiente:

Como podemos ver, el portátil está detectando el punto de acceso que hemos configurado
anteriormente.
Hacemos clic en el botón “Propiedades” y se nos mostrará una ventana donde podremos
especificar las opciones necesarias para acceder a nuestra red:
En esta pantalla:
• Marcaremos la opción “Usar cifrado”.
• Seleccionaremos “PEAP with TKIP/MSCHAPV2”
• En el cuadro Identity escribiremos nuestro nombre de usuario.
• En el cuadro Password escribiremos nuestra password.
• Y pulsaremos el botón Aceptar para guardar los ajustes.

Ahora, en la ventana donde se muestra la lista de redes detectadas, no tendremos más que hacer clic
en el botón “Conectar” y el equipo se conectará a nuestra red.
Una última cosilla: Los usuarios pueden cambiar su clave de acceso a la wifi accediendo con el
navegador al interfaz web del sevidor RADIUS que hemos montado con ZeroShell e introduciendo
su nombre de usuario y contraseña.

Una vez introducidos el nombre de usuario y la contraseña, no tendrá más que pulsar el botón
“Login” y le aparecerá una pantalla como la siguiente:

Para cambiar el password, pulsará el botón “Change password” y se le abrirá una ventana donde
deberá introducir su password actual y el nuevo password. Una vez introducidos los datos, pulsará
el botón “Change”.

Si los datos introducidos fueron correctos, verá un mensaje de confirmación: