PEAP and Automatically use my Windows logon name

Michal Bruncko michal.bruncko at zssos.sk
Thu Jan 30 19:27:56 CET 2014


Hello

I am trying to authenticate end VPN users using PEAP method toward 
freeradius server. On client side there is built-in VPN client (PPTP) on 
windows 7 machines. In general everything is working - users are able to 
autenticate once they manually use their credentials. Also the scenario 
with including (manually filled) domain name is also available and users 
are able to authenticate as well.
The problems starting if I try to use "Automatically use my Windows 
logon name and password (and domain if any)" checkbox within PEAP method 
- the user is not able to autenticate even if the logged-in windows 
account (login/pass) is same than on server side.

 From the radius debug logs the problems started with beginning of 
mschapv2 module:

Working part (with manually filled domain):
[mschapv2] # Executing group from file 
/etc/raddb/sites-enabled/inner-tunnel-vpn
[mschapv2] +- entering group MS-CHAP {...}
[mschapv2] ++? if ("%{My-Local-Client-Type}" == "user")
[mschapv2]      expand: %{My-Local-Client-Type} -> user
[mschapv2] ? Evaluating ("%{My-Local-Client-Type}" == "user") -> TRUE
[mschapv2] ++? if ("%{My-Local-Client-Type}" == "user") -> TRUE
[mschapv2] ++- entering if ("%{My-Local-Client-Type}" == "user") {...}
[mschap_vpn] Creating challenge hash with username: bob
[mschap_vpn] Told to do MS-CHAPv2 for timeos with NT-Password
[mschap_vpn]    expand: --username=%{mschap:User-Name} -> --username=bob
[mschap_vpn] Creating challenge hash with username: bob
[mschap_vpn]    expand: --challenge=%{mschap:Challenge:-00} -> 
--challenge=63b158798144225d
[mschap_vpn]    expand: --nt-response=%{mschap:NT-Response:-00} -> 
--nt-response=44a58798471dc8e98dc3854e7c285246596fafb0c116cd14
Exec-Program output: NT_KEY: ABF2579A08227E23F0984101C44B8D12
Exec-Program-Wait: plaintext: NT_KEY: ABF2579A08227E23F0984101C44B8D12
Exec-Program: returned: 0
[mschap_vpn] adding MS-CHAPv2 MPPE keys
+++[mschap_vpn] returns ok
++- if ("%{My-Local-Client-Type}" == "user") returns ok
MSCHAP Success


Not working case (using "Automatically use my Windows logon name..."):
[mschapv2] # Executing group from file 
/etc/raddb/sites-enabled/inner-tunnel-vpn
[mschapv2] +- entering group MS-CHAP {...}
[mschapv2] ++? if ("%{My-Local-Client-Type}" == "user")
[mschapv2]      expand: %{My-Local-Client-Type} -> user
[mschapv2] ? Evaluating ("%{My-Local-Client-Type}" == "user") -> TRUE
[mschapv2] ++? if ("%{My-Local-Client-Type}" == "user") -> TRUE
[mschapv2] ++- entering if ("%{My-Local-Client-Type}" == "user") {...}
[mschap_vpn] ERROR: User-Name (abrakadabra\bob) is not the same as 
MS-CHAP Name (bob) from EAP-MSCHAPv2
+++[mschap_vpn] returns reject
++- if ("%{My-Local-Client-Type}" == "user") returns reject
[eap] Freeing handler
++[eap] returns reject
Failed to authenticate the user.
Login incorrect: [abrakadabra\\bob] (from client vpn.exmaple.com port 0 
via TLS tunnel)


mschap module:
mschap mschap_vpn {
         with_ntdomain_hack = yes
         ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key 
--username=%{mschap:User-Name} --challenge=%{mschap:Challenge:-00} 
--nt-response=%{mschap:NT-Response:-00} 
--require-membership-of=S-1-5-21-248145504-287154277-2125575804-1588"
}

notes:
- If I write the domain in login box manually, it is typed in uppercase 
(without ability to change) - "ABRAKADABRA\bob". If I check  
"Automatically use my Windows logon name...", the domain (only 
local-computer) name is pushed in lower case: "abrakadabra\bob". that's 
the main difference what I can see from comparing both debug logs.
- if I write the domain manually inside the login name using 
"abrakadabra\bob" and keep the "Domain" field empty - the name will be 
pushed "abrakadabra\bob" - but in this case, I will be authenticated 
_successfully_. it sounds to me that this issue have nothing to do with 
uppercase/lowercase of domain name, but it must be something else which 
breaks all authentication using windows login credentials.
- the client computer domain is not real domain - it's just the computer 
name but this does not matter as the domain name is not pushed to 
ntlm_auth at all. If I try to log in directly using "ntlm_auth" without 
providing "--domain" parameter - I will be authenticated correctly.

please has anyone working PEAP authentication with ability to use 
"Automatically use my Windows logon name..."? What I am doing wrong.

thank you

michal


More information about the Freeradius-Users mailing list