- - PR -
LDAPサーバへのログインとパスワード変更について
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-09 01:39
毎々お世話になります。
山田と申します。 LDAPサーバへの「ログイン」、「パスワード変更」を 実現したいのですが、うまくいきません。 具体的なニーズとしましては、 ----------------------------------------------------------------------- 1)/etc/passwd内には存在しないLDAPユーザ(test1)でログインしたい。 2)/etc/passwd内には存在しないLDAPユーザ(test1)のパスワードを passwdコマンドにより変更したい。 ----------------------------------------------------------------------- 「パスワード変更」に関しては、以下のようなエラーが出ます。 # passwd test1 Changing password for user test1. Enter login(LDAP) password: LDAP Password incorrect: try again Enter login(LDAP) password: LDAP Password incorrect: try again Enter login(LDAP) password: Password change aborted passwd: Authentication token manipulation error また、「ログイン」に関しても # ssh test1@localhost test1@localhost's password: Permission denied, please try again. test1@localhost's password: Permission denied, please try again. test1@localhost's password: Permission denied (publickey,password,keyboard-interactive). といったパーミッションエラーが表示されます。 アクセス制限やパーミッションの設定が原因かと思うのですが、設定箇所が 他に思い当たらないので、おわかりになられる方がいらっしゃいましたら、 ご教授願えませんでしょうか。 以下に設定履歴を記載させていただきます。 長くなりますが、ご確認いただけませんでしょうか。 宜しくお願い申し上げます。 <検証環境> Turbolinux Server 10.0(全パッケージインストール) 私が行った操作を以下に記載させていただきます。 ※ちなみにホスト名は「caffe.ac.jp」としております。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1)/etc/openldap/slapd.confの編集 include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema ↑上記2つのスキーマ定義を追加 database ldbm ←デフォルトのまま suffix dc=caffe,dc=ac,dc=jp rootdn cn=Manager,dc=caffe,dc=ac,dc=jp rootpw {SSHA}i8zhFyjrjoTcEwgrAlsqEms1MGegw8qX ↑「slappasswd -s *****」の表示結果を貼り付け access to attr=userPassword by dn="cn=Manager,dc=caffe,dc=ac,dc=jp" write by self read by anonymous by * none access to * by dn="cn=Manager,dc=caffe,dc=ac,dc=jp" write by self write by * read ※これらのディレクティブ以外は触っておりません。 2)/etc/openldap/slapd.confの編集 host 127.0.0.1 base dc=caffe,dc=ac,dc=jp ssl no pam_password md5 ※編集箇所は「base」ディレクティブだけです。 3)サービス起動 /etc/init.d/ldap start(正常稼動確認) 4)データ投入 以下のldif形式のファイルを投入いたしました。 # ldapadd -x -D 'cn=Manager,dc=caffe,dc=ac,dc=jp' -W -f domain.ldif # ldapmodify -x -D 'cn=Manager,dc=caffe,dc=ac,dc=jp' -W -f user.ldif 「domain.ldif」の内容 ***************************************** dn: dc=caffe,dc=ac,dc=jp objectclass: dcObject objectclass: organization o: caffe dc: caffe dn: cn=Manager,dc=caffe,dc=ac,dc=jp objectclass: organizationalRole cn: Manager dn: ou=User,dc=caffe,dc=ac,dc=jp ou: User objectclass: organizationalUnit dn: ou=Group,dc=caffe,dc=ac,dc=jp ou: Group objectclass: organizationalUnit ***************************************** 「user.ldif」の内容 ***************************************** dn: uid=test1,ou=User,dc=caffe,dc=ac,dc=jp changetype: add objectClass: person objectClass: posixAccount objectClass: top objectClass: shadowAccount sn: test1 cn: test1 uid: test1 uidNumber: 10001 gidNumber: 10001 homeDirectory: /home/test1 userPassword: {crypt}* loginShell: /bin/bash shadowLastChange: 13123 shadowMax: 99999 shadowWarning: 7 ***************************************** 5)クライアント端末の認証設定 authconfigコマンドを実行し、 [*]Use LDAPにチェック Server:127.0.0.1 Base DN:dc=caffe,dc=ac,dc=jp 「OK」を選択 [*]Use LDAP Authenticationにチェック Server:127.0.0.1 Base DN:dc=caffe,dc=ac,dc=jp 「OK」を選択 上記の操作で、 /etc/pam.d/system-authファイル /etc/nsswitch.conf が編集されていることを確認 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | ||||||||||||
|
投稿日時: 2005-12-09 10:14
まずは、test1ユーザがシステムから見えているか以下のコマンドで確認出来ます。
# getent passwd test1ユーザが存在すれば見えています。 また、パスワードを変更するのは、ldappasswdコマンドでなければ 変更出来なかったと思うのですが。 参考スレッド: OpenLDAPでのパスワード変更 | ||||||||||||
|
投稿日時: 2005-12-09 15:56
To:anights 様
ご返答いただきまして、ありがとうございます。 ご教授いただきましたとおり、 # getent passwd にて確認いたしますて、「test1」というユーザは存在しております。 参考スレッドを拝見させていただきましたが、 「ldappasswd」でのパスワード変更も利かない状態です。 具体的には以下のようになってしまいます。 -------------------------------------------------------------- # ldappasswd -x -D 'uid=test1,dc=caffe,dc=ac,dc=jp' \ > -W 'uid=test1,dc=caffe,dc=ac,dc=jp' -S New password: Re-enter new password: Enter LDAP Password: ldap_bind: Invalid credentials (49) -------------------------------------------------------------- また、/var/log/ldap.logも確認しておりますが、何が原因かわからない状況です。 ------------------------------------------------------------------------------- Dec 9 15:55:01 caffe slapd[2011]: conn=17 fd=9 ACCEPT from IP=127.0.0.1:32837 (IP=0.0.0.0:389) Dec 9 15:55:01 caffe slapd[2011]: conn=17 op=0 BIND dn="uid=test1,dc=caffe,dc=ac,dc=jp" method=128 Dec 9 15:55:01 caffe slapd[2011]: conn=17 op=0 RESULT tag=97 err=49 text= Dec 9 15:55:01 caffe slapd[2011]: conn=17 fd=9 closed ------------------------------------------------------------------------------ 現在、プラットフォーム依存で「--enable-crypt」は「no」の状態ですが、 これがパスワード変更に何か関与しているのでしょうか。 何かおわかりでしたら、ご教授いただければ幸いに存じます。 失礼致します。 | ||||||||||||
|
投稿日時: 2005-12-09 17:21
bindに認証で失敗していますね。
であればどうして userPassword: {crypt}* とやっているのですか? 少なくともデータ投入出来ているということはrootdnではbind出来ていますし {SSHA}などを使ってエントリしてみてはどうでしょうか? そちらの方が手堅いかと。 また、
となっていたら本人はパスワード変更出来ないと思いますがどうでしょう? また、anonymousはどうしたいのでしょうか? auth? | ||||||||||||
|
投稿日時: 2005-12-12 09:52
To:anights 様
ご返答いただきまして、ありがとうございます。 また、ご連絡遅くなりましたこと、深くお詫び申し上げます。 失礼ですが、インラインでコメントさせていただきます。 >であればどうして >userPassword: {crypt}* >とやっているのですか? 上記に関しては、私のミスです、申し訳ございません。 >少なくともデータ投入出来ているということはrootdnではbind出来ていますし >{SSHA}などを使ってエントリしてみてはどうでしょうか? ご教授いただきましたとおり、{SSHA}でエントリすると、以下のように passwdコマンドによるパスワード変更は実現できた模様です。 # passwd test1 Changing password for user test1. Enter login(LDAP) password: New password: Retype new password: LDAP password information changed for test1 passwd: all authentication tokens updated successfully. ただ、このtest1ユーザーではいまだにシェルにログインできません。 pamの設定なのでしょうか・・・ 引き続き、調査していこうかと考えております。 参考になるご意見を頂戴いたしまして、ありがとうございました。 | ||||||||||||
|
投稿日時: 2005-12-12 12:08
ためしたところ、passwdコマンドでも変更出来ますね。失礼しました。 ただ、暗号形式は変わってしまうと思いますが。 そのあたりは、/etc/ldap.confのpam_password指定のようです。 md5では、{crypt}になってしまうのでパスワード変更後はダメかもしれません。 pam_password exopとしてみた場合はどうでしょうか? {SSHA}となるはずです。 まあ、暗号形式が原因であればの場合ですが。 | ||||||||||||
|
投稿日時: 2005-12-12 17:40
To:anights 様
ご返答いただきましてありがとうございます。 >そのあたりは、/etc/ldap.confのpam_password指定のようです。 >md5では、{crypt}になってしまうのでパスワード変更後はダメかもしれません。 上記でご指摘のとおり、passwdコマンドによるパスワード変更に関して、 test1ユーザーを{MD5}でエントリし、さらに、/etc/ldap.confのpam_passwordを「md5」と指定しても、最初の1回は成功しますが、2度目からはパスワードが正しくない旨のエラーが表示されます。 ですので、 test1ユーザを{SSHA}でエントリ、かつ、/etc/ldap.confのpam_passwordを「ssha」と指定すると、随時、パスワード変更が可能となります。 pam_passwordの「exop」という指定は初耳でした。調べてみようかと思います。 test1ユーザーによるログインに関しても、ローカルログインすら実現できていないので、{CRYPT}の実装とローカルログインに関連性があるか、調べてみようかと思っております。 ありがとうございます。 |
1