LDAPに対して作成中のシステムから問い合わせをする
必要がでそうなのでLDAPをローカル環境にとりあえず設置する。
この本を参考に設置する。
■この環境にopenldapをインストールする。
# cat /etc/redhat-release
CentOS release 6.4 (Final)
PHPは5.4.16
epel,rpmforge,remiを利用しています。
■openldapのインストール
# yum install openldap-servers openldap-clients
# updatedb
# locate slapd.conf
/usr/share/man/man5/slapd.conf.5.gz
/usr/share/openldap-servers/slapd.conf.obsolete
■設定ファイルをコピーして設置
# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
・設定用のパスワードを生成しておく
# slappasswd -s [設定用パスワード]
{SSHA}uwv0bKRgYH0aD9kdOuHl1kG2YIrLyamp
・管理者用のパスワードを生成しておく
# slappasswd -s [管理者パスワード]
{SSHA}UmANXpHt8QzO96eb45Ik8Eg0e9QyFcjJ
■設定ファイルを変更
# diff /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
98a99,101
> rootdn cn=admin,cn=config
> rootpw {SSHA}uwv0bKRgYH0aD9kdOuHl1kG2YIrLyamp
>
115c118
< suffix "dc=my-domain,dc=com"
---
> suffix "dc=mogumagu,dc=com"
117c120,121
< rootdn "cn=Manager,dc=my-domain,dc=com"
---
> rootdn "cn=Manager,dc=mogumagu,dc=com"
> rootpw {SSHA}UmANXpHt8QzO96eb45Ik8Eg0e9QyFcjJ
■念のため最初からあったファイルを削除しておく
# cd /etc/openldap/slapd.d/
# ll
total 8
drwx------ 3 ldap ldap 4096 Jun 11 01:30 cn=config
-rw------- 1 ldap ldap 1131 Jun 11 01:30 cn=config.ldif
# rm -rf ./*
# cd /var/lib/ldap/
# ll
total 0
# rm -rf ./*
■予めldapのデータベースを作成する
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# echo "" | slapadd -f /etc/openldap/slapd.conf
The first database does not allow slapadd; using the first available one (2)
■設定ファイルを変更したので、設定ファイルの変換処理を行う
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
■権限を付与
# chown -R ldap:ldap /var/lib/ldap
# chown -R ldap:ldap /etc/openldap/slapd.d
■LDAPの起動
# service slapd start
Starting slapd: [ OK ]
# chkconfig slapd on
■ログを吐くようにsyslogの設定
# vim /etc/rsyslog.conf
追記
# openldap slapd log
local4.* /var/log/slapd
# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
# service slapd restart
Stopping slapd: [ OK ]
Starting slapd: [ OK ]
# less /var/log/slapd
Jun 11 01:47:36 takeuchi2 slapd[1214]: daemon: shutdown requested and initiated.
Jun 11 01:47:36 takeuchi2 slapd[1214]: slapd shutdown: waiting for 0 operations/tasks to finish
Jun 11 01:47:36 takeuchi2 slapd[1214]: slapd stopped.
Jun 11 01:47:36 takeuchi2 slapd[1282]: @(#) $OpenLDAP: slapd 2.4.23 (Apr 29 2013 07:41:58) $#012#011mockbuild@c6b7.bsys.dev.centos.org:/builddir/build/BUILD/openldap-2.4.23/openldap-2.4.23/build-servers/servers/slapd
Jun 11 01:47:36 takeuchi2 slapd[1283]: slapd starting
■初期データの投入(本の内容)
# pwd
/root
#mkdir ldap-data
# cd ldap-data/
# vi init.ldif
# less init.ldif
dn: dc=mogumagu,dc=com
objectClass: organization
objectClass: dcObject
o: Mogumagu
dc: mogumagu
dn: cn=Manager,dc=mogumagu,dc=com
objectClass: organizationalRole
cn: Manager
# ldapadd -x -D "cn=Manager,dc=mogumagu,dc=com" -W -f init.ldif
Enter LDAP Password:
adding new entry "dc=mogumagu,dc=com"
adding new entry "cn=Manager,dc=mogumagu,dc=com"
# vim people-service.ldif
dn: ou=People,dc=mogumagu,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Service,dc=mogumagu,dc=com
objectClass: organizationalUnit
ou: Service
# ldapadd -x -D "cn=Manager,dc=mogumagu,dc=com" -W -f people-service.ldif
Enter LDAP Password:
adding new entry "ou=People,dc=mogumagu,dc=com"
adding new entry "ou=Service,dc=mogumagu,dc=com"
■一旦検索してみる
# ldapsearch -x -D "cn=Manager,dc=mogumagu,dc=com" -W -b 'ou=People,dc=mogumagu,dc=com' '(objectClass=*)'
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <ou=People,dc=mogumagu,dc=com> with scope subtree
# filter: (objectClass=*)
# requesting: ALL
#
# People, mogumagu.com
dn: ou=People,dc=mogumagu,dc=com
objectClass: organizationalUnit
ou: People
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
■phpLDAPadminをインストールする
# pwd
/usr/local
# wget http://sourceforge.net/projects/phpldapadmin/files/latest/download?source=files
# tar xzvfp phpldapadmin-1.2.3.tgz
# mv phpldapadmin-1.2.3 phpldapadmin
# pwd
/etc/httpd/conf
■apache設定を追記
# vim httpd.conf
Alias /ldapadmin/ /usr/local/phpldapadmin/htdocs/
<Directory "/usr/local/phpldapadmin/htdocs">
DirectoryIndex index.php index.html
</Directory>
■phpLDAPadminの設定ファイルを変更する
# pwd
/usr/local/phpldapadmin/config
# cp config.php.example config.php
# diff config.php.example config.php
293c293
< // $servers->setValue('server','host','127.0.0.1');
---
> $servers->setValue('server','host','127.0.0.1');
296c296
< // $servers->setValue('server','port',389);
---
> $servers->setValue('server','port',389);
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
http://localhost/ldapadmin/
にアクセスするとphpLDAPadmin画面が表示される
■その他参考書、サイト等
CentOS6.3 で OpenLDAP の設定 (Life with Linux)