Multiple BaseDN's - How Do I Do This?
Phil Mayers
p.mayers at imperial.ac.uk
Fri May 9 14:51:37 CEST 2008
Rob VanDusen wrote:
> Yes Phil, that is the unfortunate configuration I have inherited with
> the job. This is a school district, they really want to keep each
> school building as it's own top-level O. I work in the ESB building,
Ok.
> so that was the baseDN I used for testing. I'd rather not have to run
> 6 different radius boxes, but I can't seem to figure out how to make
> the multiple ldap modules work. I found a few how-to's on the web,
> but they are for the 1.x version and they don't seem to work with the
> 2.x version.
Multiple LDAP modules should work; as per the FAQ entry I linked to,
"it's not working" is not very specific. Could you show us what you
tried and the output from "radiusd -X" when it fails.
You would want something like this:
modules {
ldap ldap_esb {
basedn = "o=esb"
}
ldap ldap_sps {
..
}
...etc
}
instantiate {
redundant all_ldap {
ldap_esb
ldap_sps
...etc
}
}
server {
authorize {
preprocess
all_ldap
}
authenticate {
# stuff here depends on auth method
}
}
How are you *authenticating* the users once they're found in LDAP - do
the LDAP servers return plaintext password / password hashes to
FreeRadius and FreeRadius does the authentication, or does Freeradius
need to do an LDAP "simple bind" against the LDAP server (which will
only work for PAP requests)
If the former (LDAP servers give password/hashed to FR) then each ldap
module should say:
modules {
ldap ldap_xxx {
set_auth_type = no
}
}
...and you should have something like:
server {
authorize {
preprocess
all_ldap
chap
mschap
pap
}
authenticate {
Auth-Type PAP
pap
}
Auth-Type CHAP
chap
}
Auth-Type MS-CHAP
mschap
}
}
}
It the latter i.e. LDAP simple bind, you will need:
modules {
ldap ldap_xxx {
set_auth_type = yes
}
}
...and you should have something like:
server {
authorize {
preprocess
all_ldap
}
authenticate {
Auth-Type ldap_esb {
ldap_esb
}
Auth-Type ldap_xxx {
ldap_xxx
}
...etc
}
}
Obviously the configs above are "sample"; for this setup (which is not
so common) you may need to play a bit. In particular, the above configs
omit several of the standard modules e.g. eap, files, etc. Don't use
them "as-is".
The standard advice applies:
1. start with the default config
2. make small changes
3. test after each change
4. store each working config in a version control repo (e.g. svn) so
if you break it you can compare and go back
Finally, I am making the assumption the usernames are unique across the
entire LDAP tree i.e. there are no duplicates:
cn=jdoe,o=esb
cn=jdoe,o=sps
...if there are, it's going to be very tricky
More information about the Freeradius-Users
mailing list