OpenLDAPを使ったログインについて質問があります。
OpenLDAPサーバを利用したユーザー認証で、OpenLDAPサーバにエントリした
ユーザでログインできません。また、/etc/passwdに登録してあるユーザをツールを使用して、OpenLDAPサーバに移行したユーザでは、ログインできます。ユーザの追加方法または設定ファイルに誤りがあるんでしょうか?
slapd.conf
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/nis.schema
# Define global ACLs to disable default read access.
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
pidfile /usr/local/var/run/slapd.pid
argsfile /usr/local/var/run/slapd.args
# Load dynamic backend modules:
modulepath /usr/local/libexec/openldap
moduleload back_bdb.la
ldifファイル
dn: uid=hogehoge,ou=People,dc=solaristest,dc=com
uid: hogehoge
cn: hogehoge
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
loginShell: /bin/sh
uidNumber: 119
gidNumber: 1
homeDirectory: /export/home/hogehoge
userPassword: {SSHA}KzPlKEL6i7Sw0Br5BmgMr0OuW4WcXFJk
勉強不足で申し訳ありませんが、教えて頂けたら幸いです。
ご指導よろしくお願いします。
No.4ベストアンサー
- 回答日時:
> ログ情報は、残っていませんでした。
>>/usr/bin/ldapsearch -b ou=people,dc=solaristest,dc=com -D uid=hogehoge,ou=people,dc=solaristest,dc=com -h LDAPサーバ uid=hogehoge
> 実行したところ、下記のメッセージが表示されました。
> バインドパスワードを入力してください:
> ldap_simple_bind: 資格が無効です。
上記 ldapsearch コマンドが正常に実行できない限り、LDAP クライアントでの pam_ldap による認証は通りません。
入力したパスワードは本当に正しいものですか?
上記 ldapsearch コマンドを実行した際も、LDAP サーバにログは残っていなかったのでしょうか?
また、OpenLDAP サーバのログが残るように slapd.conf と /etc/syslog.conf をきちんと設定していますか?
あと、userPassword: {SSHA}KzPlKEL6i7Sw0Br5BmgMr0OuW4WcXFJk の {SSHA}..... の部分はどのようにして生成しましたか?
> ためしに、LDAP認証ができているCRYPTでパスワード設定したユーザで試したところ、同じメッセージが表示されました。
> クライアントからログインできていることは、確認しています。
> これってまったくLDAP認証がされていないってことですか?
LDAP クライアントでログイン認証できている CRYPT でパスワード設定したユーザでも bind できないのはおかしいです。
ちょっと気になるのは、以下のようにユーザによって DN が uid=... だったり、cn=.... だったり統一されていないようなのですが...
ldapsearch コマンドを実行する際、正しく DN を指定していますか?
> dn: uid=hogehoge,ou=People,dc=solaristest,dc=com
> dn: cn=test,ou=People,dc=solaristest,dc=com
> ldapclient list コマンドの結果
> NS_LDAP_FILE_VERSION= 2.0
> NS_LDAP_SERVERS= 192.168.24.52
> NS_LDAP_SEARCH_BASEDN= dc=solaristest,dc=com
> NS_LDAP_CACHETTL= 0
serviceAuthenticationMethod または authenticationMethod 属性の設定が足りていません。
以下 Sun のドキュメントからの抜粋です。
http://docs.sun.com/app/docs/doc/819-0382/ldapse …
----ここから----
pam_ldap は、認証方式 none をサポートしません。このため、クライアントが pam_ldap を使用できるように、serviceAuthenticationMethod または authenticationMethod 属性を定義する必要があります。詳細については、pam_ldap(5) のマニュアルページを参照してください。
----ここまで----
/etc/pam.conf は問題ないみたいです。
この回答への補足
>上記 ldapsearch コマンドが正常に実行できない限り、LDAP クライアントでの pam_ldap による認証は通りません。
>入力したパスワードは本当に正しいものですか?
再度、ユーザを作成し、ldapclientコマンドにてserviceAuthenticationMethodを追加し、ldapsearch コマンドがとおりました。また、ログインもできました。
>LDAP クライアントでログイン認証できている CRYPT でパスワード設定したユーザでも bind できないのはおかしいです。
ldapaddコマンドで、エントリーファイルのパスワードの部分でおかしい所を発見しました。
userPassword: {crypt}x
ツールを使って出来上がったエントリーファイルの中身を見てませんでした。ユーザを作った際のパスワードだと思い込んでました。ってことは
ldapクライアントからもともとログインなんて出来ていなかったですかね??
No.6
- 回答日時:
>>もしかして、ツールを使うと /etc/passwd ファイル中のパスワードフィールドの内容である x をそのまま userPassword としてしまうということでしょうか?(つまり、/etc/shadow ファイルの中にある crypt 形式のパスワードが userPassword として設定されない。
)> その通りでした。
えーと、それでは /etc/passwd に対してツールを使ったユーザで認証できるわけがありません。
ログインできたというのは何かの間違い(勘違い)ではないでしょうか?
あと念のため確認ですが、結局当初の質問の問題については解決した(SSHA 形式の userPassword でログイン可能になった)という認識でよいのですよね?
>えーと、それでは /etc/passwd に対してツールを使ったユーザで認証できるわけがありません。
ログインできたというのは何かの間違い(勘違い)ではないでしょうか?
確認します。
>あと念のため確認ですが、結局当初の質問の問題については解決した(SSHA 形式の userPassword でログイン可能になった)という認識でよいのですよね?
はい、ログインできたことを確認しましたので、解決したと認識でよいです。
ありがとうございました。
No.5
- 回答日時:
> ldapaddコマンドで、エントリーファイルのパスワードの部分でおかしい所を発見しました。
> userPassword: {crypt}x
> ツールを使って出来上がったエントリーファイルの中身を見てませんでした。ユーザを作った際のパスワードだと思い込んでました。ってことは
今ひとつ上記の意味がわかりませんが、ツールを使うと userPassword が正しく生成されない({crypt}x という固定値になる)ということですか?
もしかして、ツールを使うと /etc/passwd ファイル中のパスワードフィールドの内容である x をそのまま userPassword としてしまうということでしょうか?
(つまり、/etc/shadow ファイルの中にある crypt 形式のパスワードが userPassword として設定されない。)
> ldapクライアントからもともとログインなんて出来ていなかったですかね??
結局 LDAP サーバ側のログは確認できたのでしょうか?
LDAP サーバ側のログが残っていれば全てわかるのですが....
なお、LDAP クライアント側のローカルアカウントに LDAP サーバと同じアカウントがあると、LDAP を使わずにローカルアカウントだけで認証できてしまいますけど、そういう可能性はありませんか?
この回答への補足
>もしかして、ツールを使うと /etc/passwd ファイル中のパスワードフィールドの内容である x をそのまま userPassword としてしまうということでしょうか?(つまり、/etc/shadow ファイルの中にある crypt 形式のパスワードが userPassword として設定されない。)
わかりにくい説明で申し訳ありません。
その通りでした。
>結局 LDAP サーバ側のログは確認できたのでしょうか?
ログの設定ができたのですが、ものすごい量だったのでログの内容を貼り付けることができませんでした。
>なお、LDAP クライアント側のローカルアカウントに LDAP サーバと同じアカウントがあると、LDAP を使わずにローカルアカウントだけで認証できてしまいますけど、そういう可能性はありませんか?
それは、ありません。確認しています。
後、slappasswdでcryptのバスワードが設定できないので、インストール時にcryptを指定してインストールしていなかったので、再度、インストール
しているのですが、make testでエラーが出たので、再度、新規投稿で聞いて見ます。
No.3
- 回答日時:
> 教えていただいた例をもとに、設定したのですが、結局ログインできませんでした。
そのような時は LDAP サーバのログを確認して下さい。
pam_ldap では認証しようとするユーザの DN と LDAP クライアント側で入力されたパスワードで LDAP サーバに bind して成功するかどうかで認証しますので、LDAP クライアントから該当ユーザの DN による bind のログが残っているはずです。
もし、LDAP サーバ側に該当するログが残っていない場合は、LDAP クライアント側の設定をミスしている可能性が高いです。
また、LDAP クライアント側から、以下のようにパスワードを SSHA 形式にしたユーザで ldapsearch コマンドを実行し、正常に値を返すか(すなわち正常に bind できるか)どうか確認してみてください。
/usr/bin/ldapsearch -b ou=people,dc=solaristest,dc=com -D uid=hogehoge,ou=people,dc=solaristest,dc=com -h LDAPサーバ uid=hogehoge
あと、可能なら LDAP クライアント側の以下の情報を公開してもらえると何かアドバイスできるかもしれません
・ldapclient list コマンドの結果
・/etc/pam.conf の内容
この回答への補足
xinuさん、
ログ情報は、残っていませんでした。
>/usr/bin/ldapsearch -b ou=people,dc=solaristest,dc=com -D uid=hogehoge,ou=people,dc=solaristest,dc=com -h LDAPサーバ uid=hogehoge
実行したところ、下記のメッセージが表示されました。
バインドパスワードを入力してください:
ldap_simple_bind: 資格が無効です。
ためしに、LDAP認証ができているCRYPTでパスワード設定したユーザで試したところ、同じメッセージが表示されました。
クライアントからログインできていることは、確認しています。
これってまったくLDAP認証がされていないってことですか?
ldapclient list コマンドの結果
NS_LDAP_FILE_VERSION= 2.0
NS_LDAP_SERVERS= 192.168.24.52
NS_LDAP_SEARCH_BASEDN= dc=solaristest,dc=com
NS_LDAP_CACHETTL= 0
/etc/pam.conf の内容
pam.conf
login auth requisite pam_authtok_get.so.1
login auth required pam_dhkeys.so.1
login auth required pam_dial_auth.so.1
login auth required pam_unix_cred.so.1
login auth sufficient pam_unix_auth.so.1
login auth required pam_ldap.so.1
#
# rlogin service (explicit because of pam_rhost_auth)
#
rlogin auth sufficient pam_rhosts_auth.so.1
rlogin auth requisite pam_authtok_get.so.1
rlogin auth required pam_dhkeys.so.1
rlogin auth required pam_unix_cred.so.1
rlogin auth sufficient pam_unix_auth.so.1
rlogin auth required pam_ldap.so.1
#
# rsh service (explicit because of pam_rhost_auth,
# and pam_unix_auth for meaningful pam_setcred)
#
rsh auth sufficient pam_rhosts_auth.so.1
rsh auth required pam_unix_cred.so.1
#
# PPP service (explicit because of pam_dial_auth)
#
ppp auth requisite pam_authtok_get.so.1
ppp auth required pam_dhkeys.so.1
ppp auth required pam_dial_auth.so.1
ppp auth sufficient pam_unix_auth.so.1
ppp auth required pam_ldap.so.1
#
# Default definitions for Authentication management
# Used when service name is not explicitly mentioned for authentication
#
other auth requisite pam_authtok_get.so.1
other auth required pam_dhkeys.so.1
other auth required pam_unix_cred.so.1
other auth sufficient pam_unix_auth.so.1
other auth required pam_ldap.so.1
#
# passwd command (explicit because of a different authentication module)
#
passwd auth sufficient pam_passwd_auth.so.1
passwd auth required pam_ldap.so.1
#
# cron service (explicit because of non-usage of pam_roles.so.1)
#
cron account required pam_unix_account.so.1
#
# Default definition for Account management
# Used when service name is not explicitly mentioned for account management
#
other account requisite pam_roles.so.1
other account required pam_unix_account.so.1
#
# Default definition for Session management
# Used when service name is not explicitly mentioned for session management
#
other session required pam_unix_session.so.1
#
# Default definition for Password management
# Used when service name is not explicitly mentioned for password
よろしくお願いします。
No.2
- 回答日時:
> solaris で SSHA のパスワードを使用するには、pam_ldap.so を PAM のところで指定する必要がありますよ。
上記の No.1 さんの回答は、/etc/pam.conf で pam_ldap の設定をする必要があるという意味だと思います。
> PAM の設定ができない
質問者の上記補足は、/etc/pam.conf が設定できないという意味でしょうか?
> 平文で指定して確認したところ、やはり駄目でした。
/etc/pam.conf はデフォルトのままで変更していないのでしょうか?
もしそうなら、デフォルトの /etc/pam.conf では pam_unix の設定しかされていませので、パスワードは crypt 形式で LDAP サーバ側に格納されていないといけません。
(No.1 さんの平文でパスワード指定は何か認識違いをしていると思います。)
Sun のマニュアルにも以下の記述があります。
http://docs.sun.com/app/docs/doc/819-0382/ldapse …
から抜粋
----ここから----
pam_unix を使用する場合、次の 2 つの制限が存在します。
パスワードは、平文を含むほかの暗号化方式ではなく、UNIX crypt 形式で格納する必要があります。
(中略)
pam_ldap をアカウント管理に対して使用するのとは異なり、pam_unix をアカウント管理に対して使用する場合は、/etc/pam.conf ファイルの変更は必要ありません。デフォルトの /etc/pam.conf ファイルで十分です。
----ここまで----
下記 Sun のマニュアルを参考に /etc/pam.conf を設定すれば、SSHA でもログインできるようになるはずです。
・pam_ldap に対応した pam.conf ファイルの例
http://docs.sun.com/app/docs/doc/819-0382/schema …
この回答への補足
xinuさん、
ご回答ありがとうございます。
>質問者の上記補足は、/etc/pam.conf が設定できないという意味でしょうか?
OpenLDAPのことを色々調べていたときに、/etc/pamd/以下がないと設定出来ないと思っていました。/etc/pam.confは存在します。
>下記 Sun のマニュアルを参考に /etc/pam.conf を設定すれば、SSHA でもログインできるようになるはずです。
教えていただいた例をもとに、設定したのですが、結局ログインできませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sftpのバッチモード(Solaris)
-
SSH + rsyncがダメです
-
公開鍵方式のsshでパスワード入...
-
AWSでSSH接続をしたいのですが...
-
クライアントPCの端末からからs...
-
sshでlogin後、操作中、固まる...
-
PAM認証(pam_cracklib.soで複...
-
SSHに繋がらない
-
ssh公開鍵認証設定の解除について
-
Postfixのsmtp_sasl~ と smt...
-
不正アクセスの処理について
-
centOS7とteratermで、秘密鍵、...
-
Putty(Windows10)からCentOS7の...
-
UNIX初心者です。sftpで鍵認証...
-
DNSサーバを設定したのですがns...
-
同一のホスト名で何か問題があ...
-
パスワード設定していないユー...
-
応答を解析できません
-
循環参照にならない方法があっ...
-
エクセルで#N/Aを含めた平均値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
AWSでSSH接続をしたいのですが...
-
sftpのバッチモード(Solaris)
-
ssh公開鍵認証設定の解除について
-
sshでlogin後、操作中、固まる...
-
SSH + rsyncがダメです
-
sftpのパスワードなしでログイン
-
SSH通信で秘密鍵の読み込みが失敗
-
UNIX初心者です。sftpで鍵認証...
-
メールサーバのログにConnectio...
-
SSHに繋がらない
-
centOS7とteratermで、秘密鍵、...
-
XPのライセンス認証回数の制限...
-
Tera TermのSSHについて
-
不正アクセスの処理について
-
Cyrus SASL 認証Mechanism につ...
-
ベーシック認証のAuthNameでは...
-
公開鍵方式のsshでパスワード入...
-
クライアントPCの端末からからs...
-
SSHのアップグレードでログイン...
-
Postfixのsmtp_sasl~ と smt...
おすすめ情報