Using ntlm_auth with AD subdomains
Dow, Corey
corey.dow at hp.com
Mon Aug 4 18:39:12 CEST 2008
Hi All,
I have an environment where I'm trying to use FreeRADIUS to authenticate with two Active Directory domains at the same time. The problem I'm encountering is that I can authenticate one domain at a time, but not both, by manipulating the ntlm_auth syntax in radiusd.conf.
For example, my parent AD domain is idmcorp.net (IDMCORP), and my subdomain is sub.idmcorp.net (SUB). The redhat linux system is joined to the parent domain and I can authenticate users via the ntlm_auth command line executable as shown.
ProCurve RADIUS(ms):/etc/raddb # ntlm_auth --nt-request-key --username=codo
password:
NT_STATUS_OK: Success (0x0)
ProCurve RADIUS(ms):/etc/raddb # ntlm_auth --nt-request-key --username='SUB\subusr1'
password:
NT_STATUS_OK: Success (0x0)
I have two test systems which are Windows XP, configured for machine authentication, and each joined to one of the AD domains. The following radiusd.conf ntlm_auth configuration will allow machines in idmcorp.net to authenticate successfully, but not sub.idmcorp.net. If I change the --domain to sub.idmcorp.net, then that domain can authentication successfully but not idmcorp.net.
ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --username=%{mschap:User-Name:-None} --domain=%{NT-Domain:-idmcorp.net} --challenge=%{mschap:Challenge:-00} --nt-response=%{mschap:NT-Response:-00}"
The bottom line when I look at radiusd -X is that the challenge fails because only idmcorp.net is applied:
radius_xlat: Running registered xlat function of module mschap for string 'User-Name'
radius_xlat: '--username=subusr1'
WARNING: Attempt to use unknown xlat function, or non-existent attribute in string %{NT-Domain}
radius_xlat: '--domain=idmcorp.net'
radius_xlat: Running registered xlat function of module mschap for string 'Challenge'
mschap2: b2
radius_xlat: '--challenge=f5ba542c686e9959'
radius_xlat: Running registered xlat function of module mschap for string 'NT-Response'
radius_xlat: '--nt-response=dfdebeef4582ae2ee49bba789b110a6af1507b67abc97e5e'
Exec-Program output: Logon failure (0xc000006d)
Exec-Program-Wait: plaintext: Logon failure (0xc000006d)
Exec-Program: returned: 1
rlm_mschap: External script failed.
rlm_mschap: FAILED: MS-CHAP2-Response is incorrect
modcall[authenticate]: module "mschap" returns reject for request 6
modcall: leaving group MS-CHAP (returns reject) for request 6
I thought removing the domain argument from ntlm_auth might work, but this fails as well:
radius_xlat: Running registered xlat function of module mschap for string 'User-Name'
radius_xlat: '--username=subusr1'
radius_xlat: Running registered xlat function of module mschap for string 'Challenge'
mschap2: 49
radius_xlat: '--challenge=dcadf8974326b238'
radius_xlat: Running registered xlat function of module mschap for string 'NT-Response'
radius_xlat: '--nt-response=804ebd5ea2b41d58ee34f221268885086ca958434d969593'
Exec-Program output: Logon failure (0xc000006d)
Exec-Program-Wait: plaintext: Logon failure (0xc000006d)
Exec-Program: returned: 1
rlm_mschap: External script failed.
rlm_mschap: FAILED: MS-CHAP2-Response is incorrect
modcall[authenticate]: module "mschap" returns reject for request 6
modcall: leaving group MS-CHAP (returns reject) for request 6
Sorry so wordy. Can anyone think of a way to get this working for both the parent/child domains ?
Thanks,
Corey
Corey Dow
Security Solutions Test Engineer
ProCurve Networking
Hewlett-Packard Company
8000 Foothills Blvd. (MS 5549)
Roseville, CA 95747
More information about the Freeradius-Users
mailing list