コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

No. 1 動かして、認証しないと検索できない状態まで。

CentOS 4.6をインストール。
パッケージはとりあえず何も考えずにすべて。まずは動かす。
バージョンは以下のコマンドで確認。

$ cat /etc/redhat-release
CentOS release 4.6 (Final)

管理者パスワードを決めておく。平文でもできるが、slappasswdコマンドで暗号化パスワードを生成する。

# slappasswd
New password:
Re-enter new password:
{SSHA}8TGANxgv6n2hjkNaHmG/9XE0Ns3rlvWe

/etc/openldap/slapd.confを編集。
suffixはベースとなるDNで、LDAPはここを元に木構造となっている。rootdnは、管理用のアクセス権のDN。Linuxのrootユーザみたいなものと考えればきっとそんなに違わない。あとは、rootpwでこれはrootdnのパスワードとなる。
suffixはとりあえず、kuwalab.netとでもしておく。
パスワードは、slappasswdで生成したもの。ちなみに、平文はtest。

suffix          "dc=kuwalab,dc=net"
rootdn          "cn=Manager,dc=kuwalab,dc=net"
rootpw          {SSHA}8TGANxgv6n2hjkNaHmG/9XE0Ns3rlvWe

rootpwは、暗号化せずに、

rootpw          test

とも書けるが、普通は暗号化する。手間もかからないし。
最低限必要なのはこれくらい。動かしてみる。

# /etc/init.d/ldap start
slapd の設定ファイルをチェック中:                          [  OK  ]
slapd を起動中:                                            [  OK  ]

動いた!
まずは、LDIFファイルを作成して、エントリを登録する。
必要最低限のエントリだけ記述して、test.ldifという名前で保存する。

dn: dc=kuwalab,dc=net
objectClass: dcObject
objectClass: organization
o: kuwalab
dc: kuwalab

dn: cn=Manager,dc=kuwalab,dc=net
objectClass: organizationalRole
cn: Manager

そのエントリを登録する。

# ldapadd -x -D "cn=Manager,dc=kuwalab,dc=net" -W -f test.ldif
Enter LDAP Password:
adding new entry "dc=kuwalab,dc=net"

adding new entry "cn=Manager,dc=kuwalab,dc=net"

できた感じ。
おもしろくもないけど、本当に登録されているか検索してみる。

# ldapsearch -x -LLL -b "dc=kuwalab,dc=net" "(objectClass=*)"
dn: dc=kuwalab,dc=net
objectClass: dcObject
objectClass: organization
o: kuwalab
dc: kuwalab

dn: cn=Manager,dc=kuwalab,dc=net
objectClass: organizationalRole
cn: Manager

うーん。匿名接続で、検索できてしまうのは面白くないので、制限できるか試してみる。
データアクセスも、slapd.confで確認する感じ。
まずは、slapd.confに以下の行を追加。

access to *
  by anonymous none

*へのアクセス(すべてのアクセス)は、anonymous(匿名ユーザ)はnone(不可)とした。とりあえず、認証はしないと何もさせないよという設定。
ldapを再起動して、再度検索。

# ldapsearch -x -LLL -b "dc=kuwalab,dc=net" "(objectClass=*)"
#

っ!エラーも出ずにプロンプトが返ってくるよ。動きは正しいんだろうね?
それは放っておいて、認証したらとれるか試してみる。

# ldapsearch -x -LLL -D "cn=Manager,dc=kuwalab,dc=net" -W -b "dc=kuwalab,dc=net" "(objectClass=*)"
Enter LDAP Password:
dn: dc=kuwalab,dc=net
objectClass: dcObject
objectClass: organization
o: kuwalab
dc: kuwalab

dn: cn=Manager,dc=kuwalab,dc=net
objectClass: organizationalRole
cn: Manager

OK。

次があれば、普通のユーザーを追加して、自分の情報だけ参照できるかをやってみる。