16 votos

Configuración de RADIUS + LDAP para WPA2 en Ubuntu

Estoy configuración de una red inalámbrica para ~150 usuarios. En resumen, estoy buscando una guía para configurar el servidor RADIUS para autenticar WPA2 contra un LDAP. En Ubuntu.

  • Tengo un trabajo de LDAP, pero como no está en uso en producción, puede ser fácilmente adaptado a cualquier cambio que este proyecto pueda requerir.
  • He estado mirando FreeRADIUS, pero cualquier servidor RADIUS va a hacer.
  • Tenemos una red separada sólo por WiFi, así que no demasiadas preocupaciones acerca de la seguridad en ese frente.
  • Nuestro AP son de HP de gama baja de la empresa cosas parecen apoyar lo que usted puede pensar.
  • Todas Ubuntu Server, bebé!

Y la mala noticia:

  • Yo ahora alguien con menos conocimientos que me eventualmente se encargará de la administración, por lo que el programa de instalación tiene que ser tan "trivial" como sea posible.
  • Hasta ahora, nuestro sistema se basa únicamente en el software desde los repositorios de Ubuntu, con la excepción de nuestro LDAP aplicación web de administración y un par de pequeñas secuencias de comandos especiales. Por lo que no "fetch paquete X, descomprimir, ./configurar"-si es evitable.

ACTUALIZACIÓN 2009-08-18:

Aunque he encontrado varios recursos útiles, no es un obstáculo serio:

Ignoring EAP-Type/tls because we do not have OpenSSL support.
Ignoring EAP-Type/ttls because we do not have OpenSSL support.
Ignoring EAP-Type/peap because we do not have OpenSSL support.

Básicamente la versión de Ubuntu de FreeRADIUS no admite SSL (error 183840), que hace que todos los seguros de EAP-tipos inútil. Bummer.

Pero algunos documentación útil para todos los interesados:

ACTUALIZACIÓN 2009-08-19:

Me terminó de compilar mi propio FreeRADIUS paquete ayer por la noche - hay una muy buena receta http://www.linuxinsight.com/building-debian-freeradius-package-with-eap-tls-ttls-peap-support.html (Véanse los comentarios a los post de la actualización de las instrucciones).

Tengo un certificado de http://CACert.org (probablemente debería conseguir una "real" cert si es posible)

Luego he seguido las instrucciones en http://vuksan.com/linux/dot1x/802-1x-LDAP.html. Esto se vincula con http://tldp.org/HOWTO/html_single/8021X-HOWTO/, que es una que vale la pena leer si quieres saber cómo WiFi funciona la seguridad.

ACTUALIZACIÓN 2009-08-27:

Después de seguir las instrucciones de arriba, me las he arreglado para conseguir FreeRADIUS para hablar con LDAP:

He creado una prueba de usuario en LDAP, con la contraseña mr2Yx36M - esto le da una entrada de LDAP aproximadamente de:

uid: testuser
sambaLMPassword: CF3D6F8A92967E0FE72C57EF50F76A05
sambaNTPassword: DA44187ECA97B7C14A22F29F52BEBD90
userPassword: {SSHA}Z0SwaKO5tuGxgxtceRDjiDGFy6bRL6ja

Cuando se utiliza radtest, puedo conectar bien:

> radtest testuser "mr2Yx36N" sbhr.dk 0 radius-private-password
Sending Access-Request of id 215 to 130.225.235.6 port 1812
    User-Name = "msiebuhr"
    User-Password = "mr2Yx36N"
    NAS-IP-Address = 127.0.1.1
    NAS-Port = 0
rad_recv: Access-Accept packet from host 130.225.235.6 port 1812, id=215, length=20
>

Pero cuando intento a través de la AP, no fly - mientras se hace confirmar que las cifras de la NT LM y contraseñas:

...
rlm_ldap: sambaNTPassword -> NT-Password == 0x4441343431383745434139374237433134413232463239463532424542443930
rlm_ldap: sambaLMPassword -> LM-Password == 0x4346334436463841393239363745304645373243353745463530463736413035
[ldap] looking for reply items in directory...
WARNING: No "known good" password was found in LDAP.  Are you sure that the user is configured correctly?
[ldap] user testuser authorized to use remote access
rlm_ldap: ldap_release_conn: Release Id: 0
++[ldap] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Normalizing NT-Password from hex encoding
[pap] Normalizing LM-Password from hex encoding
...

Está claro que el NT LM y contraseñas son diferentes de los de arriba, sin embargo, el mensaje [ldap] user testuser authorized to use remote access - y el usuario es la rechazó...

11voto

MiniQuark Puntos 1305

Voy a intentar responder a las LDAP pregunta aquí.

Aquí está la respuesta corta: asegúrese de que el ldap módulo se retira de la authenticate sección, y asegúrese de que el mschap módulo está presente tanto en el authorize y authenticate sección. Y simplemente ignorar el " No "conoce bien" contraseña".

Y ahora aquí está el (muy) larga respuesta.

¿Cómo funciona el módulo ldap trabajo?

Cuando se activa el ldap módulo en la authorize sección, esto es lo que se hace cuando un RADIO de paquete es recibido por FreeRADIUS:

  1. intenta enlazar con el servidor LDAP (como usuario invitado, o el uso de la identidad dada, si se ha configurado en ldap.conf)
  2. busca el nombre completo del usuario de entrada utilizando el filtro debajo de la base DN (configurado en ldap.conf).
  3. recupera todos los atributos LDAP se puede conseguir entre los configurados en ldap.attrmap, y las convierte en Atributos de RADIUS.
  4. agrega los atributos de la RADIO del paquete compruebe los elementos de la lista.

Cuando se activa el ldap módulo en la authenticate sección, esto es lo que FreeRADIUS:

  1. intenta enlazar con el servidor LDAP como el usuario.
  2. si se puede enlazar, luego de una autenticación exitosa, y un Radius-Accept paquete será enviado de nuevo al cliente, o los demás, es un error, lo que lleva a un Radius-Reject de paquetes.

Entonces, ¿cómo puedo configurar FreeRADIUS para hacer PEAP/MS-CHAP-v2 trabajar con LDAP?

El punto importante aquí es que la unión ya que el usuario sólo funcionará si el servidor FreeRADIUS puede recuperar la clave del usuario de la RADIO paquete recibido. Este es sólo el caso cuando PAP o TTLS/PAP métodos de autenticación que se utilizan (y posiblemente también EAP-GTC). Sólo el TTLS/PAP método es muy seguro, y no está disponible por defecto en Windows. Si usted quiere que sus usuarios se conecten con TTLS/PAP, usted necesita tener a instalar una TTLS suplicante software, que rara vez es una opción. La mayoría de las veces, cuando la implementación de WiFi con WPA Enterprise securiy, PEAP/MS-CHAP-v2 es la única opción razonable.

Así que la conclusión es: a menos que usted está usando PAP o TTLS/PAP, se puede quitar el ldap módulo de la authenticate sección, y en realidad, usted debe: unión como el usuario no va a funcionar.

Si la prueba funciona cuando se utiliza radtest, esto probablemente significa que el ldap módulo es activado en la authenticate sección: se tratará de enlazar como el usuario, y desde radtest utiliza autenticación PAP, tendrá éxito. Pero se producirá un error si intenta conectarse a través del punto de acceso, ya que está utilizando PEAP/MS-CHAP-v2.

Lo que usted debe hacer es quitar el ldap módulo de la authenticate sección, y asegúrese de activar la mschap módulo en tanto el authorize y authenticate sección. Lo que sucederá es que el mschap módulo se encargará de la autenticación mediante el NT-Password atributo que se recuperan del servidor LDAP durante la authorize fase.

Aquí está lo su sites-enabled/default archivo debe verse como (sin todos los comentarios):

    ...
    authorize {
        preprocess
        suffix
        eap {
            ok = return
        }
        expiration
        logintime
    }
    authenticate {
        eap
    }
    ...

Y aquí está lo su sites-enabled/inner-tunnel archivo debe verse así:

    ...
    authorize {
        mschap
        suffix
        update control {
               Proxy-To-Realm := LOCAL
        }
        eap {
            ok = return
        }
        ldap
        expiration
        logintime
    }
    authenticate {
        Auth-Type MS-CHAP {
            mschap
        }
        eap
    }
    ...

¿Y el " No "conoce bien" contraseña " advertencia?

Así, puede ignorarlo. Es justo allí porque el ldap módulo no se pudo encontrar una UserPassword de atributo cuando se recuperan los datos de usuario desde el servidor LDAP durante la authorize fase. En su caso, usted tiene el NT-Password de atributo, y que está perfectamente bien para PEAP/MS-CHAP-v2 de autenticación.

Supongo que la advertencia existe porque cuando el ldap módulo fue diseñado, PEAP/MS-CHAP-v2 no existe todavía, por lo que la única cosa que parecía tener sentido en el momento en que fue a recuperar el atributo UserPassword desde el servidor LDAP, con el fin de utilizar PAP, CHAP, EAP-MD5 o tales métodos de autenticación.

3voto

MiniQuark Puntos 1305

Voy a intentar responder a las OpenSSL pregunta aquí: la respuesta corta es para uso FreeRADIUS 2.1.8 o superior, que incluye OpenSSL. Está disponible en Ubuntu Lucid y Debian Lenny backports (y probablemente terminará en Ubuntu Karmic backports).

Aquí está la respuesta larga:

Por desgracia, la licencia de OpenSSL que solía ser (un poco) incompatible con el FreeRADIUS licencia. Por lo tanto, el Ubuntu a la gente que eligió para proveer un FreeRADIUS binario no vinculados con OpenSSL. Si usted quería EAP/TLS, TTLS, PEAP o, usted había para obtener los fuentes y compilarlos con el --with-openssl opción (como la receta que usó explica).

Pero recientemente, la concesión de licencias problema se ha solucionado. FreeRADIUS versiones 2.1.8 o superior puede ser compilado y distribuido con OpenSSL. La mala noticia es que la más reciente estable de la distribución Ubuntu (Karmic Koala) incluye sólo FreeRADIUS 2.1.0, sin OpenSSL (lo mismo va para los de Debian, ya que Lenny sólo contiene FreeRADIUS 2.0.4). He comprobado el Kármica-backports, pero parece que FreeRADIUS 2.1.8 o no han sido subidos, sin embargo, (pero se puede añadir pronto, échale un vistazo aquí). Así que por ahora, usted debe cambiar a Ubuntu Lucid (que incluye FreeRADIUS 2.1.8) o se adhieren a la compilación. Para los usuarios de Debian, las cosas son un poco más brillantes: el Lenny backports incluyen FreeRADIUS 2.1.8. Así que si quieres algo muy estable, y fácil de instalar y de mantener, te sugiero que implementar un servidor con Debian Lenny, e instalar el puesto FreeRADIUS paquete (también le da la posibilidad de escribir los módulos de python de forma gratuita, sin tener que volver a compilar con todos los módulos experimentales).

Tengo un certificado de http://CACert.org (probablemente debería conseguir una "real" cert si es posible)

Hay un "problema" con "real" de los certificados (en oposición a los certificados auto-firmados).

He utilizado uno firmado por Thawte. Funciona bien, y los usuarios ver una hermosa "válido" certificado de nombre similar a www.my-web-site.com. Cuando el usuario acepta el certificado, su equipo entiende que todos los certificados emitidos por la misma entidad de certificación debe ser de confianza (he probado con Windows Vista y MacOSX Snow Leopard)! Así que en mi caso, si un hacker tiene un certificado, por ejemplo, www.some-other-web-site.com, también firmado por Thawte, entonces se puede ejecutar a un Hombre en el ataque medio fácilmente, sin ningún tipo de advertencia que se muestra en el ordenador del usuario!

La solución reside en el ordenador del usuario la configuración de la red, con el fin específicamente especificar que sólo "www.my-web-site.com" debe ser de confianza. Sólo toma un minuto, pero la mayoría de los usuarios no saben dónde configurar esto a menos que usted les dé un procedimiento claro y asegurarse de que cada usuario de la siguiente manera. Yo todavía uso de validez de los certificados, pero, francamente, es decepcionante ver que Windows y MacOSX compartir este "error": la confianza en el Certificado de la Autoridad en lugar del certificado específico. Ouch...

1voto

kmarsh Puntos 2791

Según el informe de error, una simple reconstrucción de FreeRADIUS debería solucionar el OpenSSH problema de soporte. Sólo debe realizarse una vez.

No estoy seguro de lo que la facilidad de administración tiene que ver con la instalación. A menudo, la más compleja y detallada de la instalación, la más fácil es la de administrar, porque el programa de instalación cubierto todas las bases. ¿Quiere decir que la configuración tiene que ser bajado en otros servidores? Cómo muchas de las Lan inalámbricas que la configuración?

Una vez configuired, la Administración debe limitarse a los usuarios de LDAP agrega, elimina y modifica. Estos deben ser lo suficientemente fácil para que cualquiera de secuencia de comandos con ldapmodify (et al) o encontrar una buena LDAP gráfica final y documentar los procesos con capturas de pantalla.

0voto

Aaron C. de Bruyn Puntos 212

Me encontré con el mismo problema. Tuve que descargar el RADIO de las fuentes y compilarlas a mí mismo.

-1voto

BBK Puntos 321

Usted puede utilizar FreeRADIUS2 (OpenSSL) + EAP-TLS + WPA2-Enterprise. Aquí es wery ditailed CÓMO-A. Windows XP SP3 tiene soporte nativo para ello, así como Windows 7, Android 2.3, iPhone, Symbian. Pero yo no sé acerca de la compatibilidad con SLDAP en un schem.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: