
CentOS 7.4でOpenLDAP 2.4.44を実行し、「テスター」ユーザーを追加しました。ユーザーを照会してパスワードを変更することはできますが、GNOMEログイン画面で認証すると常に拒否されます。私はこれを使用しましたガイド物事を設定する。
システムをセットアップするために使用した LDIF ファイルは次のとおりです。
db.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=example
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: <omitted>
モニター.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=ldapadm,dc=example" read by * none
ベース.ldif
dn: dc=example
dc: example
objectClass: top
objectClass: domain
dn: cn=ldapadm,dc=example
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager
dn: ou=People,dc=example
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=example
objectClass: organizationalUnit
ou: Groups
証明書.ldif(これらの証明書が作成され、所有者/グループが ldap:ldap に変更されました)
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/managerldapcert.pem
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/managerldapkey.pem
テスター.ldif
dn: uid=tester,ou=People,dc=example
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tester
uid: tester
uidNumber: 9001
gidNumber: 100
homeDirectory: /home/tester
loginShell: /bin/bash
gecos: Tester Account
userPassword: {crypt}x
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
ユーザーのアカウント情報を表示するには:
ldapsearch -x cn=tester -b dc=example
応答は次のとおりです。
# extended LDIF
#
# LDAPv3
# base <dc=example> with scope subtree
# filter: cn=tester
# requesting: ALL
#
# tester, People, example
dn: uid=tester,ou=People,dc=example
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tester
uid: tester
uidNumber: 9001
gidNumber: 100
homeDirectory: /home/tester
loginShell: /bin/bash
gecos: Tester Account
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
userPassword:: <omitted>
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
パスワードは次のように変更できます。
ldappasswd -H ldap:/// -x -D "cn=ldapadm,dc=example" -W -S "uid=tester,ou=People,dc=example"
これにより、新しいユーザー パスワード (2 回) と LDAP ルート パスワードの入力が求められ、終了します。ldapsearch を使用して再度クエリを実行すると、パスワードが変更されたことを確認できます (userPassword:: セクションが変更されます)。
次のコマンドを使用して LDAP アカウントにログインし、パスワードを確認できます。
ldapwhoami -vvv -h ldapi:/// -p 389 -D "uid=tester,ou=People,dc=example" -x -W
次に、次を使用して authconfig を設定します。
authconfig --enableldap --enableldapauth --ldapserver=servername.example --ldapbasedn="dc=example" --enablemkhomedir --update
しかし、CentOS GNOME ログイン画面を使用しようとすると、パスワードが拒否されます。
で/var/log/セキュア次のように表示されます。
pam_sss(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=tester
pam_sss(gdm-password:auth): received for user tester: 6 (Permission denied)
成功しなかった試み:
- SELinux を無効にする (テストとして、解決策としてではない)
- これに従って設定
FORCELEGACY=yes
する/etc/sysconfig/authconfig
役職 - 使用方法
system-config-authentication
とその他の提案リンク - 提案に従って作成した証明書をインストールするここ
私の質問は... CentOS 7 はどうやってログインしようとしているのか (そして ldapwhoami を使用してログイン試行をエミュレートするにはどうすればよいのか)、そしてこれをより適切にデバッグ/ログに記録するにはどうすればよいのかということです。私のユーザー DN は妥当なようですか (最初のエントリに cn ではなく uid を使用しています。さまざまなガイドで両方の方法が使用されているのを見たことがあります)?
どのような助けでも大歓迎です!