On 05/27/2014 10:50 PM, Predrag Punosevac wrote:
and edited /etc/ypldap.conf as:
# $OpenBSD: ypldap.conf,v 1.4 2012/04/30 12:16:43 ajacoutot Exp $
domain "autonlab.org"
interval 60
provide map "passwd.byname"
provide map "passwd.byuid"
provide map "group.byname"
provide map "group.bygid"
# provide map "netid.byname"
directory "atlas.int.autonlab.org" {
# directory options
binddn "cn=admin,dc=autonlab,dc=org"
basedn "dc=autonlab,dc=org"
# basedn "ou=users,dc=autonlab,dc=org"
# starting point for groups directory search, default to
basedn
# groupdn "ou=group,dc=autonlab,dc=org"
# passwd maps configuration (RFC 2307 posixAccount object
class)
passwd filter "(objectClass=posixAccount)"
attribute name maps to "uid"
fixed attribute passwd "*"
attribute uid maps to "uidNumber"
attribute gid maps to "gidNumber"
attribute gecos maps to "cn"
attribute home maps to "homeDirectory"
attribute shell maps to "loginShell"
fixed attribute change "0"
fixed attribute expire "0"
fixed attribute class ""
^^^^^^^^^^^^^^^^^^^^^^^^
That should be the login class you created in login.conf that
authenticates via LDAP (in your case, "ldap").
Speaking somewhat vaguely, the way this *should* work is that when the
username is supplied, the system looks up the user to determine the
login class to determine how to proceed with authentication. With users
coming from ypldap, it should set the class to one that you've
configured to authenticate via login_ldap.
From that point on I could do ldapsearch,
I could /usr/libexec/auth/login_-ldap -d -s login USERNAME ldap
without
(see? That last argument is specifying the login class, which is why it
works)
and get loged in but could not make much sense of steps 3 and 4 of the
article
http://blogs.helion-prime.com/2009/05/07/authorization-with-ldap-on-openbsd.html
In your case /etc/defaultdomain should probably contain "autonlab.org"
The lines in /etc/master.passwd and /etc/group are necessary to tell
login to do YP lookups.
which is clearly related to my inability to use LDAP password to ssh
into shell gateway. After starting portmap and ypldap I could start
ypbind but ypserv and yppasswdd daemons would fail to start to me due
to
the obvious reason that my defaultdomain has no YP servers.
The first paragraph of ypldap(8)'s description ends with "ypldap has the
same role as ypserv(8) and the two daemons are exclusive." So don't run
ypserv, just run ypldap and ypbind.
You also can't run yppasswdd(8) in this context, because yppasswdd only
knows how to change local (to the server) accounts. Unfortunately there
isn't an LDAP version of yppasswdd(8) at the moment, nor does base
ldapd(8) support the necessary LDAP extensions for simple password
change.
It's something I've put some effort into, but I haven't had time to
progress on it in quite a while.
" To use other directory services except YP, you either need to
populate
local configuration files from the directory, or you need a YP frontend
to the directory. For example, you can use the sysutils/login_ldap port
when you choose the former, while the ypldap(8) daemon provides the
latter. "
Which seems to indicate that I just need ypldap as a front end to my
LDAP server.
That is poorly worded for sure. I think right now the best combination
is the one you're trying, login_ldap and ypldap together.
--
Matthew Weigel
hacker
unique & idempot . ent