EAP-TTLS/PAP -> LDAP for WPA2
John Allman
allmanj at cp.dias.ie
Thu Jul 6 17:28:39 CEST 2006
Hi All,
Quite new to radius and struggling to get my head around things so
forgive me if my assumptions are wrong. I appear to have the setup
working but i'm concerned it's not doing what it think it is. I don't
think the authentication requests are actually going over an encrypted
channel.
I'm using freeradius-1.1.2 on a freebsd server and i've compiled it
against openldap-2.3.24 which all went well. I'm attempting to set up
secure wireless with WPA2 using our ldap directory for authentication.
We have a replica of our directory running on the freeradius server.
Originally i had hoped to use some sort of
web-redirect-to-an-authentication-page system like you sometimes see in
hotels but i can't find anything about that (any information welcome).
After reading around, the best form of authentication i can see would be
eap-ttls with pap as the inner protocol. I believe (from comments in the
radiusd.conf file) that i wouldn't be able to use md5 with ldap. Now,
i've set it up in a way that appears to be mostly right and i *can*
authenticate with my username/password in ldap but doing a tcpdump on
the radius server worries me. I can see my username passed in the clear
in the packets so i'm concerned it's not using tls at all. I told the
wireless client to use ttls so i can't understand what's going on.
The following is a summary of the main changes i made from the
radiusd.conf and eap.conf files. If i dont mention an attribute it's
because i didn't change it from the default setting:
radiusd.conf:
modules {
ldap {
server = "localhost"
filter = "(uid=%u)"
base_filter = "(objectclass=radiusprofile)"
start_tls = no
dictionary_mapping = ${raddbdir}/ldap.attrmap
}
}
authorize {
eap
ldap
}
authenticate {
Auth-Type PAP {
pap
}
eap
Auth-Type LDAP {
ldap
}
}
eap.conf:
eap {
default_eap_type = ttls
tls {
private_key_file = ${raddbdir}/certs/radius_key.pem
certificate_file = ${raddbdir}/certs/radius_cert.pem
CA_file = ${raddbdir}/certs/cacert.pem
random_file = ${raddbdir}/certs/random
}
ttls {
default_eap_type = md5
}
}
Now i know that default_eap_type setting looks wrong but i don't know
what i *should* have there.
On the server in /var/log/radiusd.log i see the following:
Wed Jul 5 16:10:32 2006 : Error: TLS_accept:error in SSLv3 read
client certificate A
Wed Jul 5 16:10:32 2006 : Error: rlm_eap: SSL error
error:00000000:lib(0):func(0):reason(0)
Wed Jul 5 16:10:32 2006 : Error: rlm_eap: SSL error
error:00000000:lib(0):func(0):reason(0)
I based my certificate generation on the instructions at:
http://homepage.mac.com/andreaswolf/public/wpaeap.html
including using the xpextensions mentioned there. I generated my random
file using dd and /dev/urandom.
I am a little lost and don't know what is best practice. Any advice
would be appreciated. I've tried googling but haven't found a good guide
that matches our setup.I can, of course, give more information if needed.
Thanks,
John Allman
More information about the Freeradius-Users
mailing list