[Mageia-sysadm] [377] - add nssldap password handling
Buchan Milne
bgmilne at multilinks.com
Tue Nov 23 15:50:42 CET 2010
On Tuesday, 23 November 2010 08:24:03 Luca Berra wrote:
> On Mon, Nov 22, 2010 at 12:56:32PM +0100, Buchan Milne wrote:
> >> +binddn uid=nssldap,ou=System Accounts,<%= dc_suffix %>
> >> +bindpw <%= nssldap_password %>
> >>
> >> uri ldaps://ldap.<%= domain %>
> >> base <%= dc_suffix %>
> >> pam_lookup_policy no
> >
> >I would prefer if we can instead use:
> >-"rootbinddn" in /etc/ldap.conf, not binddn
> >-place password in /etc/ldap.secret
> >-use nscd, so all LDAP access is as root (so, no need to expose passwords
> >in files that must be world-readable), as a side-effect also avoiding
> >problems with file descriptors used by any process doing a user lookup
> >etc.
> >
> >Permissions on /etc/ldap.conf should be 0644, /etc/ldap.secret can be
> >0600.
>
> what is the real use of rootbinddn?
Only practical use is preventing non-root users from discovering the proxy
user's password, which *may* have more privileges than their own account (or
some account they have compromised).
> is there really any need to expose different information to NSS when
> caller is uid 0?
No, besides above. So, nss_ldap+nscd or sssd or nss-pam-ldapd or slapd+nssov
are equivalent here.
> also the idea of a proxy user is flawed, it gives just about the same
> security of opening anonymous read access.
Using a proxy user means 'by users read' has some value ... note that we have
replaced all anonymous access with 'users' access.
> With the added bonus that
> changing the proxyuser password poses a risk of breaking things.
How much is broken depends on how "proxy users" are managed. For now we are
going with per-host "proxy" users, and per-host per-application users for
applications, so if a host is compromised, its access can be revoked without
impacting other hosts or instances (more or less a Kerberos-style access).
If this is too much overhead, we can consider other options.
> since the info exposed to NSS is no big secret we can cope with it, but
> i prefer leaving nss to anonymous binds and adding on ldap server (at
> the end of access control)
>
> access to dn.subtree="dc=mageia,dc=org"
>
> attrs=@posixAccount, at posixGroup, at ipService, at ipProtocol, at ipHost, at ipNetwork,
> @oncRpc, at nisNetgroup by peername.ip="127.0.0.1" read
> by peername.ip="x.y.w.z" read
> by * none
Which leaves access from all non-root internet-facing applications open. While
there is not *much* of value there, I would prefer to try and protect
privilege escalation vectors.
Regards,
Buchan
More information about the Mageia-sysadm
mailing list