Problems with DBM and MS-CHAP
Tom Griffin
t.griffin at sheffield.ac.uk
Tue Jul 3 17:42:08 CEST 2007
Hello,
I am having a problem with Freeradius v1.1.6. We have one server
(running v1.0.1) which works as we want it to, but when trying to build
a new v1.1.6 server to act in the same way is proving to be difficult.
All our users are stored in a local DBM database and authentication is
either by MS-CHAP (when coming via a Cisco VPN 3000 concentrator) or by
EAP (when coming via Cisco Aironet 1200).
Using the Cisco client (and also the VPN concentrator test function) the
authentication is successful, the same is true with EAP (ie. the DBM
module is working). But when using MS-CHAP authentication is rejected.
Here is the debug output;
rad_recv: Access-Request packet from host xx.xx.xx.xx:1044, id=176,
length=154
User-Name = "cs1tg"
NAS-Port = 4054
Service-Type = Framed-User
Framed-Protocol = PPP
Tunnel-Client-Endpoint:0 = "xx.xx.xx.xx"
MS-CHAP-Challenge = 0xd1076979a50becf0731656741b3a469a
MS-CHAP2-Response =
0x0200ca320fdd144e34edc132ba42560c4619000000000000000064a36039b976de05bc0e340fbd2b5b0b1bff37a302ccc3f2
NAS-IP-Address = xx.xx.xx.xx
NAS-Port-Type = Virtual
Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 1
modcall[authorize]: module "preprocess" returns ok for request 1
rlm_realm: No '@' in User-Name = "cs1tg", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[authorize]: module "suffix" returns noop for request 1
rlm_dbm: try open database file: /usr/local/etc/raddb/../usradmin/users
rlm_dbm: Call parse_user:
sm_parse_user.c: check for loops
Add cs1tg to user list
sm_parse_user: start parsing: user: cs1tg
parse buffer: <<Auth-Type := Local, User-Password == "BLANKED">>
rlm_dbm: recod parsed
process pattern
rlm_dbm: Pattern matched, look for request
parse buffer: <<Service-Type = Framed-User, Framed-Protocol = PPP, Class
= "OU=Unishef">>
rlm_dbm: recod parsed
rlm_dbm: Reply found
Remove cs1tg from user list
modcall[authorize]: module "dbm" returns ok for request 1
rlm_mschap: Found MS-CHAP attributes. Setting 'Auth-Type = mschap'
modcall[authorize]: module "mschap" returns ok for request 1
rlm_eap: No EAP-Message, not doing EAP
modcall[authorize]: module "eap" returns noop for request 1
modcall: leaving group authorize (returns ok) for request 1
rad_check_password: Found Auth-Type Local
auth: type Local
auth: No User-Password or CHAP-Password attribute in the request
auth: Failed to validate the user.
Login incorrect: [cs1tg] (from client vpn2 port 4054)
My main concern is the apparent incorrect Auth-Type of 'mschap' rather
than 'MS-CHAP' that I would have expected to see (which is most likely
why rad_check_password is falling back to Local).
The interesting thing is that when I disable DBM and add a test user
locally, the MS-CHAP module successfully authenticates the user,
suggesting there is some incompatibility between newer versions of
freeradius, dbm and mschap (since we are using this combination on
another server with v1.0.1)
Here are the main sections of the config;
modules {
mschap {
authtype = MS-CHAP # I have tried with this line blanked also
}
dbm {
usersfile = ${confdir}/../usradmin/users
}
}
authorize {
preprocess
suffix
dbm
mschap
eap
}
authenticate {
Auth-Type MS-CHAP {
mschap
}
eap
}
I have tried many different orderings of the authorize section as well
as combinations of variables in the mschap module config, but these have
all given the same result. The config shown above is the version that is
working on the older server.
Any help would be greatly appreciated.
Regards,
Tom Griffin
More information about the Freeradius-Users
mailing list