質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

Q&A

解決済

1回答

3360閲覧

389dsを使ってUNIXログインが出来ない

y-hirai

総合スコア14

LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

0グッド

0クリップ

投稿2021/08/11 10:15

編集2021/08/11 13:09

前提・実現したいこと

以前こちらで質問させていただいたことがあるのですが、CentOS7でopenldap-serverを用いて認証サーバを立てていました。
老朽化したサーバを置き換えるために、新しくcentOS-streamで389dsを使って同様の環境を作ろうとしています。

発生している問題・エラーメッセージ

この新しいサーバを認証サーバに指定して、ApacheのBasic認証を行う事は出来ました。
しかし、この新しいサーバを参照して、sshやpop3などのログインを行おうとすると、
Aug 11 17:56:10 サーバ sshd[14099]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=…… user=〇
Aug 11 17:56:10 サーバ sshd[14099]: pam_sss(sshd:auth): received for user 〇: 6 (Permission denied)
と表示され、ログインが行えません。

試したこと

パスワードが間違っているのかと思い、ldapsearchコマンドを使って該当するユーザでバインドしてみたのですが、こちらはパスワードが通るのを確認できました。
ログインできないクライアントで、authconfig -testをやってみますと

nss_ldap is enabled
LDAP server = "ldap://サーバ名/"
LDAP base DN = "dc=〇,dc=▽,dc=×"
と出ていて、問題はなさそうです。

また、クライアント側でid ユーザ名とすると、uidなどの情報を閲覧できますので、クライアント側の設定は間違っていないと思います。
(認証サーバを古い、slapdが動いている以前のサーバに向けると、このクライアントの設定でログイン可能です)

LDAPサーバには証明書を設置していないため、新しい認証サーバではLDAPSは使っていません。

なぜ、ログインができないのかが分からず困っております。
問題点が分かる人がいましたら教えていただけませんでしょうか?

メモ1

ACIとして、
aci: (targetattr=)(version 3.0;acl"";allow(all)(userdn="ldap:///self");)
aci: (targetattr=
)(version 3.0;acl"";allow(search,read)(userdn="ldap:///anyone");)
と設定しております。

修正

古いサーバでは、サーバ証明書を設定していました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2021/08/11 13:00

/etc/sssd/sssd.conf や /etc/sssd/conf.d/ 以下の設定内容を教えてください。
y-hirai

2021/08/11 13:05

/etc/sssd/sssd.confですが、 [domain/default] autofs_provider = ldap cache_credentials = True ldap_search_base = dc=dc=〇,dc=▽,dc=× id_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_uri = ldap://サーバ名/ ldap_id_use_start_tls = False ldap_tls_cacertdir = /etc/openldap/cacerts [sssd] services = nss, pam, autofs domains = default [nss] homedir_substring = /home と、このような感じになっております。
guest

回答1

0

ベストアンサー

chpass_provider = ldap を設定したのに、ldap_chpass_uri がないです。
ldap_chpass_uri = ldap://サーバー名 とするとどうでしょうか。

投稿2021/08/11 13:20

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y-hirai

2021/08/11 13:44

ありがとうございます。 明日、朝1番に試してみます。 もう一つの質問でお教えいただいたように、dscreateで作成したのであれば、自己署名証明書が作成済みで STARTTLS, LDAPS が有効になっていると言う事から、自己署名証明書に対する警告ではじかれている可能性もあるでしょうか?
y-hirai

2021/08/12 00:12

確認してみましたところ、やはりdscreateで作成しており、ldap.confのTLS_REQCERT をneverにする事で ldapsearch -x -H ldaps://サーバ名 としてやると、バインドは出来ることが確認できました。 そこで、/etc/sssd/sssd.confを [domain/default] autofs_provider = ldap cache_credentials = True ldap_search_base = dc=dc=〇,dc=▽,dc=× id_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_chpass_uri = ldap://サーバ名 ldap_uri = ldap://サーバ名 ldap_id_use_start_tls = False ldap_tls_cacertdir = /etc/openldap/cacerts [sssd] services = nss, pam, autofs domains = default [nss] homedir_substring = /home と、してから、service sssd restartしてみたのですが、sshでログインを行おうとすると、やはり Aug 11 17:56:10 サーバ sshd[14099]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=…… user=〇 Aug 11 17:56:10 サーバ sshd[14099]: pam_sss(sshd:auth): received for user 〇: 6 (Permission denied) と表示され、状況は変わりませんでした。
y-hirai

2021/08/12 01:07

ここからさらに、sssd.confでldap_tls_reqcert = neverとすると通りました! 迅速なご回答ありがとうございました。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問