Keith Keller
2003-08-06 21:19:30 UTC
This isn't *really* offtopic, since some of the issues I'll bring up
may help Slackware users integrate with an LDAP server. But some of
these issues are sorta OT. At any rate, this is all based on my ad-hoc
research and actually attempting to implement LDAP with Slackware,
so not everything here is necessarily 100% accurate (though I doubt
it's too far off).
Anyway, as you may know, I asked Pat about why he decided to leave out
PAM support in Slackware, and he gave a very thorough answer about how
it's coded fairly poorly and is entirely too complex. I certainly
can't speak to the first point, but PAM definitely is more complex
than perhaps it needs to be. Unfortunately, it's the primary method
for configuring a linux client to authenticate against an LDAP server.
It is possible to configure Slackware to use libnss_ldap (available from
www.padl.com) for LDAP authentication, but it's not ideal, in that you
are required to either a) allow read access to all users' userPassword
attribute at the LDAP server, or b) provide an LDAP DN which has at
least read access to all users' userPassword attribute at the LDAP
server. Option b) is okay if you're the admin of that client, but if
you have people who have root at their client, then to use LDAP without
PAM you basically give those people rights to read others' password.
(It's only the crypted password, but it's still the equivalent of giving
all your users read access to /etc/shadow.)
The one reason PAM is nice in this regard is that PAM alleviates these
problems with using libnss_ldap. With PAM, when a user attempts to log
in, the bind to the LDAP server is attempted as that user, not as an
anonymous or "rootbinddn" user. So a PAM linux client can be configured
to authenticate against an LDAP server without exposing the userPassword
attribute, and without providing a dummy account that can read the
userPassword attribute.
The upshot of all this is, unless you have a compelling need for PAM and
LDAP, you can usually get away with just implementing nss_ldap for LDAP
authentication. It won't be perfect, but it'll be a lot easier than
dealing with PAM.
Keep in mind that this only applies to the LDAP *clients*--if you want
to run an LDAP server on Slackware to let other clients authenticate,
go ahead. If you also want your Slackware LDAP server to authenticate
against itself, then you'd need to deal with libnss_ldap or pam_ldap.
- --keith
- --
kkeller-***@wombat.san-francisco.ca.us
(try just my userid to email me)
alt.os.linux.slackware FAQ: http://wombat.san-francisco.ca.us/cgi-bin/fom
may help Slackware users integrate with an LDAP server. But some of
these issues are sorta OT. At any rate, this is all based on my ad-hoc
research and actually attempting to implement LDAP with Slackware,
so not everything here is necessarily 100% accurate (though I doubt
it's too far off).
Anyway, as you may know, I asked Pat about why he decided to leave out
PAM support in Slackware, and he gave a very thorough answer about how
it's coded fairly poorly and is entirely too complex. I certainly
can't speak to the first point, but PAM definitely is more complex
than perhaps it needs to be. Unfortunately, it's the primary method
for configuring a linux client to authenticate against an LDAP server.
It is possible to configure Slackware to use libnss_ldap (available from
www.padl.com) for LDAP authentication, but it's not ideal, in that you
are required to either a) allow read access to all users' userPassword
attribute at the LDAP server, or b) provide an LDAP DN which has at
least read access to all users' userPassword attribute at the LDAP
server. Option b) is okay if you're the admin of that client, but if
you have people who have root at their client, then to use LDAP without
PAM you basically give those people rights to read others' password.
(It's only the crypted password, but it's still the equivalent of giving
all your users read access to /etc/shadow.)
The one reason PAM is nice in this regard is that PAM alleviates these
problems with using libnss_ldap. With PAM, when a user attempts to log
in, the bind to the LDAP server is attempted as that user, not as an
anonymous or "rootbinddn" user. So a PAM linux client can be configured
to authenticate against an LDAP server without exposing the userPassword
attribute, and without providing a dummy account that can read the
userPassword attribute.
The upshot of all this is, unless you have a compelling need for PAM and
LDAP, you can usually get away with just implementing nss_ldap for LDAP
authentication. It won't be perfect, but it'll be a lot easier than
dealing with PAM.
Keep in mind that this only applies to the LDAP *clients*--if you want
to run an LDAP server on Slackware to let other clients authenticate,
go ahead. If you also want your Slackware LDAP server to authenticate
against itself, then you'd need to deal with libnss_ldap or pam_ldap.
- --keith
- --
kkeller-***@wombat.san-francisco.ca.us
(try just my userid to email me)
alt.os.linux.slackware FAQ: http://wombat.san-francisco.ca.us/cgi-bin/fom