必要がでそうなので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)