
皆さんお元気でいらっしゃることを願っています。
要点を述べますと、LDAPサーバーとクライアントマシンをセットアップしました
サーバーは完璧に動作し、クライアントマシンから検索を行うと、LDAP サーバーからクエリも取得されますが、ユーザーを切り替えると、ユーザーが存在しないというメッセージが表示されます。
[root@ldapc ~]# su - babin
su: user babin does not exist
クライアントマシンからこれを試したところ、以下の応答が返ってきました。
# ldapsearch -x -b dc=tecmintlocal,dc=com -h ldap.tecmintlocal.com
# extended LDIF
#
# LDAPv3
# base <dc=tecmintlocal,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# tecmintlocal.com
dn: dc=tecmintlocal,dc=com
dc: tecmintlocal
objectClass: top
objectClass: domain
# People, tecmintlocal.com
dn: ou=People,dc=tecmintlocal,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
# Group, tecmintlocal.com
dn: ou=Group,dc=tecmintlocal,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
# tecmint_gp1, Group, tecmintlocal.com
dn: cn=tecmint_gp1,ou=Group,dc=tecmintlocal,dc=com
objectClass: posixGroup
objectClass: top
cn: tecmint_gp1
userPassword:: YWRtaW4xMjMk
gidNumber: 20000
# babin, People, tecmintlocal.com
dn: uid=babin,ou=People,dc=tecmintlocal,dc=com
uid: babin
cn: babin babin
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: YWRtaW4xMjMk
shadowLastChange: 16120
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 20000
homeDirectory: /home/babin
# tecmintclient, People, tecmintlocal.com
dn: uid=tecmintclient,ou=People,dc=tecmintlocal,dc=com
uid: tecmintclient
cn: tecmintclient tecmintclient
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: YWRtaW4xMjMk
shadowLastChange: 16120
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 20000
homeDirectory: /home/tecmintclient
# search result
search: 2
result: 0 Success
# numResponses: 7
# numEntries: 6
答え1
あなたは実際に設定されたLDAP からユーザー アカウントを取得するシステムですか?
そのためには、通常、(別名 nss-pam-ldapd) のような LDAP クライアントをインストールする必要があります。これには、NSS モジュール(ユーザー情報を取得するために LDAP クライアントを使用するようにシステムに指示する)nslcd
が追加されます。/etc/nsswitch.conf
pam_ldap
(ログイン時にユーザーのパスワードをチェックするための PAM モジュールも追加する必要があります。これも、または のようなより安全なものでもかまいませんpam_krb5
。)
LDAP クライアントがすでにインストールされている場合は、まず正しい「ベース DN」(検索場所) が設定されていることを確認し、さまざまなログ/デバッグ オプションを探します。
また、Wireshark を使用して LDAP トラフィックをチェックし、実際にどのような検索が実行されているかを確認します
tshark -n -Y ldap -VO ldap
。