Para llevar a cabo estas pruebas es necesario en primer lugar, crear un Fake AP que pueda ser conectado con un servidor Radius, anteriormente se ha explicado que en el proceso de crear un Fake AP puede ser muy fácil utilizando airbase-ng sin embargo, desafortunadamente airbase-ng no tiene soporte para delegar el proceso de autenticación a un servidor Radius, esto debido principalmente, a que no esta pensado para que funcione como un AP con prestaciones tan elaboradas como crear un AP con WPA2 Enterprise.
Dado que no se cuenta con airbase-ng se debe utilizar otra herramienta que se adapta perfectamente a la necesidad de crear un AP con soporte a FreeRadius, estamos hablando de hostapd esta herramienta tal como su nombre indica, es simplemente un demonio que permite que un ordenador funcione como un AP para otros otros ordenadores que se encuentran cerca, de un modo muy similar a como lo hace airbase-ng pero con la ventaja de que permite realizar cosas mucho más interesantes, como por ejemplo, especificar un servidor Radius para delegación del proceso de autenticación.
Ahora bien, para instalar hostapd desde una máquina con Debian o alguno de sus derivados, basta con utilizar el comando apt-get
>apt-get install hostapd |
O bien, descargado, compilando e instalando el software desde los fuentes, para ello descargar desde aquí: http://hostap.epitest.fi/
En procedimiento recomendado es descargar el software y compilar, ya que se tiene más control de lo que se desea activar en el software de este modo, principalmente porque haciéndolo así, es necesario especificar un fichero de configuración donde se indica que características se encontrarán disponibles, dicho fichero de configuración debe nombrarse .config y deberá ubicarse en el directorio raíz de hostapd (justo donde se encuentra el fichero Makefile) el contenido de dicho fichero, para este caso es el siguiente:
CONFIG_DRIVER_WIRED=y CONFIG_EAP=y CONFIG_EAP_MD5=y CONFIG_EAP_TLS=y CONFIG_EAP_MSCHAPV2=y CONFIG_EAP_PEAP=y CONFIG_EAP_TTLS=y CONFIG_PKCS12=y CONFIG_RADIUS_SERVER=y |
Ahora será suficiente con ejecutar el comando make
Una vez instalado el software es necesario comenzar con el proceso de configuración que consta de los siguientes pasos:
-
Editar el fichero de configuración hostapd.conf que por defecto se encuentra ubicado en el directorio donde se ha ejecutado el comando make en dicho directorio se deben especificar como mínimo los siguientes valores:
interface=wlan0
logger_syslog=-1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=2 debug=4 eap_server=1 eap_user_file=/etc/hostapd.eap_user ca_cert=/etc/certs/cacert.pem server_cert=/etc/certs/newcert.pem private_key=/etc/certs/newkey.pem private_key_passwd=password radius_server_clients=/etc/hostapd.radius_clients radius_server_auth_port=1812
El fichero de configuración anterior, es el elemento principal del AP y entre otras cosas, define la interfaz de red sobre la cual trabajará, niveles de log, ficheros de configuración para usuarios y el modo de servidor EAP, infraestructura PKI (Public Key Infraestructure) con los certificados de la CA y el servidor y finalmente configuración relacionada con el servidor radius propiamente dicho, indicando los clientes aceptados y el puerto sobre el que funcionará.
-
Editar el fichero hostapd.radius_clients para especificar los clientes (Access Points) que se conectarán con este servidor Radius para autenticar dispositivos inalámbricos, del mismo modo que ocurría con la configuración de FreeRadius indicada en publicaciones anteriores, es posible declarar una dirección IP o un rango junto con su correspondiente password, el cual será utilizado por el servidor Radius y por el AP. El contenido de dicho fichero puede ser el siguiente:
192.168.1.0/24 password_secrete
0.0.0.0/0 password_secrete
Con lo anterior, se permite que cualquier AP en el segmento de red pueda contactar con el servidor Radius utilizando la clave indicada en el fichero de configuración. Como se puede apreciar de lineas anteriores, en el fichero hostapd.conf se ha indicado que este fichero se debe ubicar en el directorio /etc esta ubicación no es obligatoria y puede cambiarse, sin embargo si se cambia de sitio este fichero de configuración, se debe reflejar dicho cambio en el fichero hostapd.conf
-
Edición del fichero hostapd.eap_user permite especificar el mecanismo de autenticación soportado por este servidor Radius, que como se ha podido ver en la publicación anterior a esta, pude ser una lista realmente larga, sin embargo se suelen emplear los más conocidos por diversas razones (como por ejemplo, seguridad). La sintaxis para especificar dichos mecanismos de autenticación y los usuarios que pueden autenticarse con este servidor es simple, solamente es necesario en primer termino definir el mecanismo que se desea emplear y posteriormente, el usuario/dominio junto con una contraseña para el mismo.
-
“ttls-user” TTLS-PAP,TTLS-CHAP,TTLS-MSCHAP,TTLS.MSCHAPV2 “password-ttls-user” [2]
Con esta sencilla linea en el fichero de configuración, se tiene un usuario que puede ejecutar el proceso de autenticación en el servidor Radius utilizando cualquiera de los mecanismos de autenticación listados.
-
Una vez definida la configuración anterior, solamente queda faltando la creación de la infraestructura de clave publica/privada con sus correspondientes certificados y clave privada, para ello se utilizará OpenSSL tal como se indica a continuación
CREANDO LA PKI PARA EL SERVIDOR RADIUS
Cuando se utilizan métodos de autenticación basados en TLS en un servidor Radius, es necesario instalar la infraestructura de clave publica/privada. Para ello se deben crear los certificados SSL y un certificado correspondiente a la CA del servidor, de este modo los clientes podrán aceptar las comunicaciones procedentes que vengan firmadas con dicha CA. Para hacer esto, es necesario en primer lugar tener instalado openssl (en el caso de que no se encuentre previamente instalado) y posteriormente es necesario buscar el fichero CA.pl el cual permitirá crear la CA de una forma fácil y rápida, dicho fichero normalmente se encuentra ubicado en: /usr/lib/ssl/misc/CA.pl y permite crear los certificados y claves que necesita el servidor Radius. Los comandos que deben ejecutarse son los siguientes:
- Creación de los certificados que serán incluidos en las peticiones que se realicen al servidor.
>./CA.pl -newreq Este comando generará dos ficheros, el fichero para peticiones al servidor con el nombre newreq.pem y la clave privada para dicho certificado con el nombre newkey.pem
- Creación de una nueva CA.
>./CA.pl -newca Este fichero crea un directorio llamado demoCA el cual contiene todos los recursos necesarios para la definición de la CA utilizada por el servidor Radius
- Firmar los ficheros PEM de petición para generar los certificados SSL
>./CA.pl -sign Este comando generará un certificado firmado con el nombre newcert.pem
Con los comandos anteriores se han generado los recursos necesarios para la definición de la PKI, dichos ficheros deben ubicarse en las rutas definidas en fichero de configuración anterior
ca_cert=/etc/certs/cacert.pem server_cert=/etc/certs/newcert.pem private_key=/etc/certs/newkey.pem private_key_passwd=password |
Finalmente, se puede probar esta configuración ejecutando el comando
>./hostapd hostapd.conf |
Si todo esta correctamente configurado, el AP quedará iniciado y listo para aceptar peticiones de clientes que deseen autenticarse.