I'm pretty sure the problem lies in my interpretation of the users
file documentation, but I'm now stuck.
The aim is to authenticate users to their MS active directory account
via LDAP, and then check that the user is a member of the WirelessVPN
group -- if these two conditions meet then the user is granted access.
What's happening at the moment is as long as the user EXISTS the
authentication will pass, even if the password is incorrect. If the
useraccount does not exist it will fail.
Output from debug during a CORRECT username but INCORRECT password (blablalba):
rad_recv: Access-Request packet from host 10.200.148.49:3678, id=81, length=50
User-Name = "radiustest"
User-Password = "blablabla"
Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 4
modcall[authorize]: module "preprocess" returns ok for request 4
rlm_ldap: - authorize
rlm_ldap: performing user authorization for radiustest
radius_xlat: '(&(sAMAccountname=radiustest)(objectClass=person))'
radius_xlat: 'OU=Domain Users,DC=foo,DC=bar,DC=foo,DC=bar'
rlm_ldap: ldap_get_conn: Checking Id: 0
rlm_ldap: ldap_get_conn: Got Id: 0
rlm_ldap: performing search in OU=Domain
Users,DC=foo,DC=bar,DC=foo,DC=bar, with filter
(&(sAMAccountname=radiustest)(objectClass=person))
rlm_ldap: looking for check items in directory...
rlm_ldap: looking for reply items in directory...
rlm_ldap: user radiustest authorized to use remote access
rlm_ldap: ldap_release_conn: Release Id: 0
modcall[authorize]: module "ldap" returns ok for request 4
modcall[authorize]: module "chap" returns noop for request 4
modcall[authorize]: module "mschap" returns noop for request 4
rlm_realm: No '@' in User-Name = "radiustest", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[authorize]: module "suffix" returns noop for request 4
rlm_eap: No EAP-Message, not doing EAP
modcall[authorize]: module "eap" returns noop for request 4
rlm_ldap: Entering ldap_groupcmp()
radius_xlat: 'OU=Domain Users,DC=foo,DC=bar,DC=foo,DC=bar'
radius_xlat: '(&(objectClass=group)(member=CN=Test\\,
Radius,OU=testing,OU=Domain Users,DC=foo,DC=bar,DC=foo,DC=bar))'
rlm_ldap: ldap_get_conn: Checking Id: 0
rlm_ldap: ldap_get_conn: Got Id: 0
rlm_ldap: performing search in OU=Domain
Users,DC=foo,DC=bar,DC=foo,DC=bar, with filter
(&(cn=RadiusWirelessVPN)(&(objectClass=group)(member=CN=Test\\,
Radius,OU=testing,OU=Domain Users,DC=foo,DC=bar,DC=foo,DC=bar)))
rlm_ldap::ldap_groupcmp: User found in group RadiusWirelessVPN
rlm_ldap: ldap_release_conn: Release Id: 0
users: Matched entry DEFAULT at line 216
modcall[authorize]: module "files" returns ok for request 4
modcall: group authorize returns ok for request 4
rad_check_password: Found Auth-Type Accept
rad_check_password: Auth-Type = Accept, accepting the user
radius_xlat: 'You are now connected FooBar Network.'
Sending Access-Accept of id 81 to 10.200.148.49:3678
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-IP-Address = 255.255.255.254
Framed-IP-Netmask = 255.255.255.255
Reply-Message = "You are now connected to the FooBar Network"
Finished request 4
Going to the next request
--- Walking the entire request list ---
Waking up in 6 seconds...
--- Walking the entire request list ---
Cleaning up request 4 ID 81 with timestamp 449f618f
Nothing to do. Sleeping until we see a request.
Configuration:
radiusd.conf
---
## LDAP lookup to Microsoft Active Directory (2003)
ldap {
server = "Foobar.com"
identity = "[EMAIL PROTECTED]"
password = "xxxx"
basedn = "OU=Domain Users,DC=foo,DC=bar,DC=foo,DC=bar"
filter =
"(&(sAMAccountname=%{Stripped-User-Name:-%{User-Name}})(objectClass=person))"
timeout = 40
timelimit = 30
net_timeout = 10
# Mapping of RADIUS dictionary attributes to LDAP
# directory attributes.
dictionary_mapping = ${raddbdir}/ldap.attrmap
ldap_connections_number = 5
password_attribute = userPassword
groupmembership_filter =
"(&(objectClass=group)(member=%{Ldap-UserDn}))"
groupmembership_attribute = "memberOf"
}
users
---
DEFAULT Auth-Type := LDAP, Ldap-Group == "RadiusWirelessVPN",
Auth-Type := Accept
Service-Type = Framed,
Framed-Protocol = PPP,
Framed-IP-Address = 255.255.255.254,
Framed-IP-Netmask = 255.255.255.255,
Reply-Message = "You are now connected to FooBar",
DEFAULT Auth-Type := Reject
Reply-Message = "Access Rejected - Please check your username
and password and try again."
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html