TTLS use_tunneled_reply and Mac OSX

Phil Mayers p.mayers at imperial.ac.uk
Wed Jul 20 16:40:23 CEST 2011


On 20/07/11 14:27, Scott Armitage wrote:

> [ttls] Using saved attributes from the original Access-Accept
> 	Reply-Message = "Authenticated by Test ORPS"

Ok, looking at the debug the reason this is happening is that you are 
doing TTLS/MSCHAP, as opposed to TTLS/EAP-MSCHAP.

[ttls] Got tunneled request
         User-Name = "scott-test at example.ac.uk"
         MS-CHAP-Challenge = 0xcab2e5bc6ccc5e4b382dfbabf81cdd6c
         MS-CHAP2-Response = 
0x3f00546f8b7903000016283b4f647a91a9c20000000000000000db0d79340d9306bdb4cb590b8e4317c8d4afab58bd715d14
         FreeRADIUS-Proxied-To = 127.0.0.1

The "eap" module is what copies the User-Name to the reply in 
Access-Accept, and since you're not running an EAP inner, this doesn't 
happen.

I must admit, I didn't know you could even *do* TTLS w/ plain MSCHAP 
inner, because I had assumed it was subject to replay attacks (in 
MSCHAP, the NAS generates the MSCHAP challenge, but of course in TTLS, 
the client must do it).

However, a glance at the source code suggests TTLS has support for 
"implicit" challenge generation based on the TTLS session, eliminating 
the replay attack.

You'll need to set the User-Name in Access-Accept yourself for non-EAP 
inner methods (including TTLS/PAP). Alex has given one suggestion, but 
personally I like this in "inner-tunnel":

post-auth {
   if (!reply:User-Name) {
     update reply {
       User-Name := "%{User-Name}"
     }
   }
}

...and then this in the outer-server:

post-auth {
   # ensure reply username contains user at domain for
   # routing of accounting traffic
   if (reply:User-Name !~ /.*@.+/) {
     update reply {
       User-Name := "%{reply:User-Name}@%{Stripped-User-Domain}"
     }
   }
}



More information about the Freeradius-Users mailing list