
これまで openldap を使ったことがないので、テスト用の openldap サーバーをセットアップしようとしています。Redhat ベースのマシン (Oracle Linux を使用) で標準の openldap-servers パッケージを使用しています。パッケージをインストールし、サーバーを起動しました。
今のところ、サーバーに実際に何か役に立つことをさせる方法がわかりません。luma を使用してサーバーを参照することはできません (最上位エントリにアクセスしようとすると、「そのようなオブジェクトはありません」と表示されます)。openldap のドキュメントでは、サーバーを実際に基本的な動作構成にする方法がわかりにくく、オンラインの情報はすべて、新しい slapd.d および cn=config ではなく、古い slapd.conf ファイルに関するものです。
luma のルート DN を参照できる、標準パッケージの openldap インストールを動作させるにはどうすればよいですか?
答え1
あなたの痛みが分かります。
これを試してください (Scientific Linux 6.5 でテスト済みなので、OL でも動作するはずです)。
- OpenLDAP サーバーをインストールします
yum install openldap-servers openldap-clients
:) - 開始
slapd
:service slapd start
(そして多分chkconfig slapd on
) cn=config
を使用して、および通常の LDAP 管理ユーザーのパスワードを作成しますslappasswd
。この出力をメモします。- 次の内容の LDIF ファイルを作成します。
dn: olcDatabase={0}config、cn=config 変更タイプ: 変更 追加: olcRootPW olcルートパスワード: {SSHA}TXcmvaldskl312012cKsPK1cY2321+aj dn: olcDatabase={2}bdb、cn=config 変更タイプ: 変更 追加: olcRootPW olcルートパスワード: {SSHA}TXcmvaldskl312012cKsPK1cY2321+aj - 置換: olcRootDN olcRootDN: cn=admin,dc=your,dc=base,dc=com - 置換: olcSuffix olcサフィックス: dc=your、dc=base、dc=com
- の値は、前にメモし
olcRootPW
た出力に置き換える必要がありますslappaswd
。 - 当然、
olcSuffix
新しいolcRootDN
ベース DN に合わせて調整する必要があります。 次のコマンドを使用して、これらすべてを LDAP サーバーに送信します。
ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f yourfile.ldif
cn=config
その後は、両方にLDAP 経由で接続できるようになりますdc=your,dc=base,dc=com
。
答え2
OpenLDAP サーバーを起動する前に、まずいくつかの設定を行う必要があります。
基本構成
ベース DN を定義するとともに、ルート ユーザーとパスワードを設定する必要があります。 でslapd.conf
、次の行を探し、必要な値に設定します。
suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"
通常、ベース DN (suffix
ファイルで として定義) は、ドメイン名のコンポーネントであり、カンマで区切られ、 がプレフィックスとして付きますdc=
。したがって、serverfault.com
は となる可能性がありますdc=serverfault,dc=com
。 はrootdn
、そのサフィックスの下にある必要があります。
また、ルート パスワードを定義する行も変更する必要があります。プレーンテキスト値に設定するか、を使用してハッシュを作成することができます。次に、プレーンテキスト値またはハッシュ値のいずれかを次のような行にslappasswd
配置する必要があります。slappasswd
rootpw myultrasecurepassword
スキーマ
この時点で、使用するスキーマについて考え始めるのが得策です。スキーマはオブジェクトが持つことができる属性を定義するので、必要な属性を含むスキーマを含める必要があります。これらのスキーマは の先頭に含まれておりslapd.conf
、ここにあるスキーマは通常、必要となる絶対的な基本スキーマです。
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
これらのパスは Arch Linux で使用されるものなので、Oracle Linux に合わせて調整する必要がある場合があります。
についてslapd.conf
vsslapd.d
OpenLDAP はオフライン構成 ( で実行) からオンライン構成に切り替わり、にあるslapd.conf
特別なツリーにデータを保存します。ただし、のファイルを変更するのは面倒な作業なので、上記のように編集してから新しい形式に変換する方がはるかに簡単です。cn=config
slapd.d
ldif
slapd.d
slapd.conf
slapd.d
まず、 内のすべてを削除しますslapd.d
。次に、Oracle Linux へのパスを調整しながら、次のコマンドを実行します。
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
次に、そのディレクトリの LDAP ユーザーとグループに所有者を再帰的に設定するだけで、準備完了です。これは編集するたびに実行する必要がありますslapd.conf
。実行する前に OpenLDAP サーバーを停止することを忘れないでください。
初回実行
実際にディレクトリを使用する前に、ベース DN (およびルート ユーザー) を作成する必要があります。.ldif
次のような行を含むファイルを作成します。
dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: example.com
dc: example
dn: cn=root,dc=example,dc=com
objectclass: organizationalRole
cn: root
次に、OpenLDAP サーバーを起動します。その情報を LDAP ディレクトリにプッシュするだけです。
ldapadd -D "cn=root,dc=example,dc=com" -W -f initial.ldif
当然、ルート DN と ldif ファイル名を、お持ちのものと一致するように変更します。
これで、機能する LDAP ディレクトリが設定され、データを入力する準備が整いました。
Arch Linux wikiはこのトピックに関する素晴らしい情報源です。https://wiki.archlinux.org/index.php/OpenLDAPそしてhttps://wiki.archlinux.org/index.php/LDAP_Authenticationもっと詳しく知りたい場合。