Ap wifi con Raspberry Pi+radius

¿Para que necesitamos esto?

Si habéis leído las ultimas noticias sobre seguridad,sabréis que se ha descubierto una grave vulnerabilidad en el protocolo wpa2 que permite a un atacante descifrar el trafico inalámbrico, realizar ataques mitm,etc.. , por lo que si no usamos un canal seguro https o vpn, este trafico sera revelado a nuestro atacante. Es de esperar que en las próximas horas se publiquen los parches para las actualizaciones en clientes, pero también lo es que muchas actualizaciones no serán parcheadas en algunos dispositivos por considerarlos obsoletos, como seguramente sea el caso de los dispositivos con android instalado.

¿Que podemos hacer?

A parte de esperar a las correspondientes actualizaciones, podemos, configurar nuestro router para usar WPA-AES en vez de WPA-TKIP lo que evitaría que el atacante pudiera inyectar trafico, pero si tu dispositivo forma parte de la “obsolescencia programada” de los fabricantes, puede que este no sea parcheado nunca de forma oficial, por lo que tal vez vaya siendo hora de securizar mejor nuestra conexiones inalámbrica,para por lo menos saber que en casa vamos a tener seguridadACTUALIZACION Radius o wpa enterprise no protege contra KRACK https://security.stackexchange.com/questions/171515/does-eap-ttls-mitigate-against-krack, puesto que el ataque se realiza después de la autenticación.

¿Que es un servidor radius? Radius es un protocolo de comunicaciones, que provee de una autentificacion centralizada a los servicios de red, el servidor radius se encarga de comprobar al autenticidad de las conexiones clientes para validar el acceso a la red de los mismos.

¿Que necesitamos?

En mi caso usare un adaptador usb con chipset Zydas ZD1211 que compre hace ya bastantes años para “auditorias” wifi :P

Ap wifi

Para montar nuestro punto de acceso wifi en la raspberry seguiremos los pasos indicados en nuestro articulo sobre Rogue AP https://elbinario.net/2016/07/12/rogue-access-pointap-con-raspberryprimera-parte/

Ahora que tenemos nuestro Ap, necesitamos haber unas pequeñas modificaciones para configurar wpa2 enterprise en nuestro fichero hostapd.conf que creamos en el articulo anterior, quedando un fichero parecido a este:

ssid=APconLinux
interface=wlan0
driver=nl80211
ieee8021x=1
hw_mode=g
channel=1
wpa=2
wpa_key_mgmt=WPA-EAP
rsn_pairwise=CCMP
auth_algs=1
auth_server_addr=192.168.1.50 #ip_servidor_radius
auth_server_port=1812         #puerto_servidor_radius
auth_server_shared_secret=passwordRandom #el password que definamos en nuestro radius para clientes

Servidor radius Para la implementación del servidor radius vamos a usar freeradius

Instalamos el paquete freeradius

apt-get install freeradius

Configuramos la autentificacion peap

vim  /etc/freeradius/3.0/mods_available/eap

Añadimos los usuarios

vim /etc/freeradius/3.0/users

Añadimos una configuración para nuestro ap(raspberry)

 vim /etc/freeradius/3.0/clients.conf

Habilitamos mschap_v2

 vim /etc/freeradius/3.0/mschap

¿Porque configuramos mschap_v2 si esta considerado como inseguro?: este articulo es para indicar una configuración simple de servidor radius básica, lo idóneo seria configurar eap-tls pero ello requeriría generar tanto certificados para los servidores como para todos los clientes que fueran a conectarse al radius y ello complicaría la idea de este articulo, de todas maneras mschap_v2 es inseguro si no se usa encapsulacion, y en este caso se la estamos pasando mediante peap.

Configuracion android

Una vez que tenemos andando nuestro hostapd y radius vamos a configurar nuestro movil android para que se conecte a la red.

Configuramos el metodo de autenticacion a la red

Configuramos nuestras credenciales

Con este tendremos nuestro servidor radius andando, obviamente si tenéis un router con soporte wpa2 enterprise, no tendreis que montar el ap, solo teneis que configurarlo con la ip y el secret de nuestro servidor radius.

puppetmaster Written by:

4 Comments

  1. octubre 17
    Reply

    Muy buen post, muy bien explicado e interesante. Me interesan estos temas, probaré con esto, gracias.

  2. portaro
    octubre 17
    Reply

    Gracias por compartir.

  3. Rekar Gable
    octubre 18
    Reply

    Comentar que parece ser que implementar RADIUS no evita que sea vulnerable a KRACK.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax