Fedora 12にデフォルトでインストールされているOpenLDAPをセットアップしようとしましたが、非常に失敗しました。私の最終的な目標は、同じマシンで実行されているOpenLDAPサーバーを使用して、ユーザーログインとApacheにLDAP認証を使用することです。
サーバーは実行されていますが、ldapsearchまたはldapaddを使用しようとすると常に発生するエラーは次のとおりです。ldap_bind:無効な資格情報(49)
私はこれらのチュートリアルに従ってきましたが、どれも私を助けませんでした:
まず、いくつかのコンポーネントがすでにインストールされており、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
_
アイデアが足りなくなりました。明らかな何かが欠けていますか?
あはは!私の問題は解決しました! rm -rf /etc/openldap/slapd.d
を使用してディレクトリを削除する必要があります。これにより、OpenLDAPはサービスの開始時にslapd.conf
ファイルを検索するように強制されます。
私はFedora12でもこのopenldapの問題を抱えています!ただし、次のコマンドを使用してopenldapを手動で起動しようとすると、動作は通常に戻ります。/usr/sbin/slapd -f /etc/openldap/slapd.conf
デフォルトのコマンド(「serviceslapdstart」を参照)が、yumのインストール後に手動で作成したopenldap構成ファイル(/etc/openldap/slapd.confを参照)をロードしていないと思われます。
これを初めて試したときも同じ問題に直面しました。
分析後、/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はデフォルトでこのディレクトリを使用していると思います。