web-dev-qa-db-ja.com

Fedora 12へのOpenLDAPのインストール:ldap_bind:無効な資格情報(49)

Fedora 12にデフォルトでインストールされているOpenLDAPをセットアップしようとしましたが、非常に失敗しました。私の最終的な目標は、同じマシンで実行されているOpenLDAPサーバーを使用して、ユーザーログインとApacheにLDAP認証を使用することです。

サーバーは実行されていますが、ldapsearchまたはldapaddを使用しようとすると常に発生するエラーは次のとおりです。ldap_bind:無効な資格情報(49)

私はこれらのチュートリアルに従ってきましたが、どれも私を助けませんでした:

  • http://www.howtoforge.com/openldap_Fedora7
  • http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/s1-ldap-quickstart.html
  • http://www.howtoforge.com/linux_ldap_authentication
  • http://docs.fedoraproject.org/deployment-guide/f12/en-US/html/s1-ldap-pam.html
  • http://www.openldap.org/doc/admin24/quickstart.html

まず、いくつかのコンポーネントがすでにインストールされており、yumを使用してこれらをインストールしました。

_yum install openldap-servers openldap-devel
_

次に、/ etc/openldapに基本的なslapd.confファイルを作成しました。

_database        bdb
suffix          "dc=sniejana-sandbox,dc=com"
rootdn          "cn=root,dc=sniejana-sandbox,dc=com"
rootpw          {SSHA}cxdz55ygPu4T3ykg7dgu+L0VRvsFSeom
directory       /var/lib/ldap/sniejana-sandbox.com
_

このコマンドでrootpwを取得しました:

_slappasswd -s changeme
_

また、_/var/lib/ldap/sniejana-sandbox.com_ディレクトリを作成し、_/var/lib/ldap_の内容全体がLDAPユーザーによって所有されていることを確認しました。

2つのldap.confファイルが見つかりました。1つは/ etcに、もう1つは/ etc/openldapにあります。どちらが正しいかわかりません。私が正しく理解していれば、このファイルはクライアントを構成するためのものです。私はこれを両方に入れました:

_Host localhost
BASE dc=sniejana-sandbox,dc=com
_

次に、次のコマンドでサーバーを実行しました。

_service slapd start
_

OKと言った。

上記のチュートリアルのほとんどは、コマンド_ldapsearch -D "cn=Manager,dc=my-domain,dc=com" -W_を使用して、すべてが機能していることを確認するように指示しています。このコマンドを実行すると、パスワードプロンプトが表示され、パスワードを入力するとエラーが発生します。

_ldapsearch -D "cn=root,dc=sniejana-sandbox,dc=com" -W
Enter LDAP password:
ldap_bind: Invalid credentials (49)
_

Ldapaddを使おうとすると同じことが起こります。 slapd.confで暗号化されたパスワードと暗号化されていないパスワードを試してみましたが、何も変更されません。単純な認証に-xを追加しても、何も変わりません。

netstat -apは、サーバーがリッスンしていることを確認します。

_tcp   0   0 *:ldap    *:*       LISTEN      4148/slapd          
tcp   0   0 *:ldap    *:*       LISTEN      4148/slapd
_

ps -ef | grep slapdは、プロセスが実行されていることを確認します。

_ldap   4148  1  0 15:22 ?   00:00:00 /usr/sbin/slapd -h  ldap:/// -u ldap
_

Slaptest手順の実行構成ファイルのテストに成功しました

コマンドldapsearch -x -b '' -s base '(objectclass=*)' namingContextがサーバーの実行を確認できることをどこかで読みました。動作しているようです:

_# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContext 
#

#
dn:

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
_

アイデアが足りなくなりました。明らかな何かが欠けていますか?

2
Alpha Hydrae

あはは!私の問題は解決しました! rm -rf /etc/openldap/slapd.dを使用してディレクトリを削除する必要があります。これにより、OpenLDAPはサービスの開始時にslapd.confファイルを検索するように強制されます。

2
choojun

私はFedora12でもこのopenldapの問題を抱えています!ただし、次のコマンドを使用してopenldapを手動で起動しようとすると、動作は通常に戻ります。/usr/sbin/slapd -f /etc/openldap/slapd.conf

デフォルトのコマンド(「serviceslapdstart」を参照)が、yumのインストール後に手動で作成したopenldap構成ファイル(/etc/openldap/slapd.confを参照)をロードしていないと思われます。

0
choojun

これを初めて試したときも同じ問題に直面しました。

分析後、/etc/openldap/slapd.d/ディレクトリを削除し、/var/lib/ldap/ディレクトリ(データベースを含む)の内容も削除しました。その後、すべてが正常に機能します。

注:var/lib/ldapディレクトリが存在する必要があります。存在しない場合、slapdサービスは開始されません。

/etc/init.d/slapdスクリプトを読んでこれを理解しました。そのスクリプトでは、/etc/openldap/slapd.dディレクトリが存在するかどうかを盲目的にチェックしています。はいの場合、彼らは単にslapd.confファイルを無視しました。このスクリプトは、データベースが/var/lib/ldap/ディレクトリに存在するかどうかもチェックします。はいの場合はそのデータベースを使用し、そうでない場合は新しい空のデータベースを作成します。

/etc/openldap/slapd.dディレクトリには、slapd.confファイルの代わりに使用されるディレクトリデータ構造の構成情報が正確に含まれています。 Fedoraはデフォルトでこのディレクトリを使用していると思います。

0
Sriram