Radius Zeroshell

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.

Transcript of Radius Zeroshell

Page 1: Radius Zeroshell

Servidor RADIUS con ZeroShellEsteban 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.

Page 2: Radius Zeroshell

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.75Username: adminPassword: zeroshell

Page 3: Radius 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:

Page 4: Radius Zeroshell

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

Page 5: Radius 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

Page 6: Radius Zeroshell

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:

Page 7: Radius Zeroshell

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:

Page 8: Radius Zeroshell

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:

Page 9: Radius Zeroshell

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í:

Page 10: Radius Zeroshell

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.

Page 11: Radius Zeroshell

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

Page 12: Radius Zeroshell

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.

Page 13: Radius Zeroshell

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.

Page 14: Radius 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:

Page 15: Radius Zeroshell

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:

Page 16: Radius Zeroshell

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.

Page 17: Radius Zeroshell

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

Page 18: Radius Zeroshell

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: