Help with LDAP groupOfNames?
Jason Antman
jason at jasonantman.com
Thu Apr 16 01:55:48 CEST 2009
I just upgraded to FreeRadius 2.1.1, as per some off-list advice, but
still am having issues with this... I've Googled and read docs to no
avail, probably as I don't know much of anything about Radius at all -
and just need this (seemingly relatively simple) thing.
I'm running FreeRADIUS 2.1.1 (SuSE package) and OpenLDAP 2.3.19. I
have an access point that will do captive portal, but only via RADIUS,
not via LDAP natively. I already have an LDAP server running, so I just
added a new groupOfNames called "WirelessUsers".
Basically, *all* I want RADIUS to do is check the username and password,
and assuming they are correct, either allow or deny based on whether the
user is a member of "WirelessUsers". According to radtest, I have it
working with LDAP, but it allows everyone with a valid username and
password access, regardless of the WirelessUsers group - and I'm not
seeing anything related to that group in the LDAP logs or anything
related to groups at all in `radiusd -f -X`.
I can't seem to find anything concrete online for freeradius1 relating
to groupOfNames, so I've just been trying random things that I found
online (for raddb/users) hoping one would work.
RELEVANT CONFIGS (only relevant portions, comments removed)
raddb/sites-enabled/default:
authorize {
ldap
}
authenticate {
Auth-Type LDAP {
ldap
}
}
raddb/modules/ldap:
ldap {
server = "127.0.0.1"
basedn = "dc=example,dc=com"
#filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
filter =
"(&(objectClass=posixAccount)(uid=%{Stripped-User-Name:-%{User-Name}}))"
start_tls = no
#access_attr = "dialupAccess"
dictionary_mapping = ${raddbdir}/ldap.attrmap
ldap_connections_number = 5
password_attribute = userPassword
groupname_attribute = "cn"
#groupmembership_filter =
(|(&(objectClass=GroupOfNames)(member=%{Ldap-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-\
UserDn})))
groupmembership_filter =
(|(&(objectClass=GroupOfNames)(member=%{check:LDAP-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{\
check:LDAP-UserDn})))
groupmembership_attribute = WirelessUsers
#groupmembership_attribute = "memberof"
timeout = 4
timelimit = 3
net_timeout = 1
# compare_check_items = yes
# do_xlat = yes
# access_attr_used_for_allow = yes
}
raddb/users:
#DEFAULT Auth-Type = LDAP
# Fall-Through = yes
#
#DEFAULT Ldap-Group != "wireless", Auth-Type := Reject
#
#
#
#
#
#DEFAULT Ldap-Group !=
"cn=WirelessUsers,ou=groups,dc=midlandparkambulance,dc=com", Auth-Type
:= Reject
#
#DEFAULT Auth-Type := LDAP
#
#
#
DEFAULT Ldap-Group == WirelessUsers
DEFAULT Auth-Type := Reject
(For users, I've tried each of the pairs of commented-out lines, as per
different things I found online.)
I'm sure this is horribly simple, but I just can't seem to figure it out
from the docs or from extensive googling.
Thanks for any help,
Jason Antman
More information about the Freeradius-Users
mailing list