OpenLDAPサーバー構築

yum -y install openldap-clients openldap-servers
yum -y install cyrus-sasl-md5

# 管理者用のパスワード生成
[root@red5 ldap]# /usr/sbin/slappasswd -h {MD5}
# 後で登録するので控えておく
{MD5}*************************

vi /etc/openldap/slapd.conf
———————————————————————-
# 86行目:suffix指定 – ドメイン名をドットで区切ったものをdc=***で指定

# ここの例でのドメイン名は「hogehoge.com」なので以下のようになる
suffix          "dc=hogehoge,dc=com"

# 87行目:管理者suffix指定
rootdn          "cn=Manager,dc=hogehoge,dc=com"

# 93行目:(1)のパスワードを追記
rootpw          {MD5}**********************
———————————————————————-

# /sbin/chkconfig ldap on
# /sbin/chkconfig –list ldap

設定ファイルに間違いがないかを確認しよう。

# /usr/sbin/slaptest -v
config file testing succeeded

続いてOpenLDAPが後ろで使う Berkeley DB のパラメーター・ファイルをサンプルそのままコピーする。

# cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

現状のLDAPツリーは空っぽなので、基礎となるデータを挿入する必要がある。
データを
/var/lib/ldap/ldif/init.ldif
として作成した。

# mkdir /var/lib/ldap/ldif
# touch /var/lib/ldap/ldif/init.ldif
# chmod -R 600 /var/lib/ldap/ldif

vi /var/lib/ldap/ldif/init.ldif
—————————————————————-
dn: dc=hogehoge,dc=com
objectClass: organization
objectClass: dcObject
o: hogehoge Lab.
dc: hogehoge

dn: cn=Manager,dc=hogehoge,dc=com
objectClass: organizationalRole
cn: Manager

dn: ou=People,dc=hogehoge,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Services,dc=hogehoge,dc=com
objectClass: organizationalUnit
ou: Services

dn: ou=Groups,dc=hogehoge,dc=com
objectClass: organizationalUnit
ou: Groups

dn: ou=Machines,dc=hogehoge,dc=com
objectClass: organizationalUnit
ou: Machines

—————————————————————-

# /usr/bin/ldapadd -x -W -D "cn=Manager,dc=hogehoge,dc=com" -f /var/lib/ldap/ldif/init.ldif
Enter LDAP Password:
adding new entry "dc=hogehoge,dc=com"

adding new entry "cn=Manager,dc=hogehoge,dc=com"

adding new entry "ou=People,dc=hogehoge,dc=com"

adding new entry "ou=Services,dc=hogehoge,dc=com"

adding new entry "ou=Groups,dc=hogehoge,dc=com"

adding new entry "ou=Machines,dc=hogehoge,dc=com"

削除する場合
/usr/bin/ldapdelete -x -W -D "cn=Manager,dc=hogehoge,dc=com" -f /var/lib/ldap/ldif/del_init.ldif
/var/lib/ldap/ldif/del_init.ldif
————————————-
ou=People,dc=hogehoge,dc=com
ou=Services,dc=hogehoge,dc=com
ou=Groups,dc=hogehoge,dc=com
ou=Machines,dc=hogehoge,dc=com
————————————-

このままではすべてのユーザーがすべてのデータを読み書きできてしまう。そのためユーザー自身のデータはすべて変更可能、匿名ユーザーはすべての userPasswordをバインド可能、すべてのユーザーはuserPassword以外のすべてのデータを読取り可能という設定をした。なお、rootdnはこのアクセス権限設定を無視してすべてのデータを変更可能だ。

vi /etc/openldap/slapd.conf

access to attrs=userPassword
        by self =rwcsx
        by anonymous auth
        by * none

access to *
        by self =rwcsx
        by * read
を追加

最後に再起動
/etc/rc.d/init.d/ldap restart

OpenLDAPサーバー構築