一、目录服务

    1、说明

      为了浏览和搜索数据而设计的特殊的数据库,树状结构,更多用来提供查询和搜索、而不是大量的写入。

    2、目录标准

       X.500:ITU定义

       ldap:基于TCP/IP的目录访问协议

二、ldap

    1、常用名词

       dc:域名部分

       uid:用户id

       ou:组织单位(子目录)

       cn:公共名称

       sn:姓

       dn:唯一辨别名(类似于linux文件系统的绝对路径)

    2、特点

       空行来分割一个条目

       以#开始为注释

       属性可以被重复赋值

       每行的结尾不允许有空格

    3、搭建

       server:192.168.137.51

        hostname:www.syk.com

       client:192.168.137.52

       时间同步:

          crontab -e

          */5 * * * * ntpdate time.nist.gov >/dev/null

       安装ldap

          yum -y install openldap openldap-* --skip-broken

          yum -y install nscd nss-pam-ldapd nss-* pcre pcre-* --skip-broken

       配置:

          拷贝配置文件:

           cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf

          生成密码:

           [root@web9 openldap]# slappasswd -s syk123

            {SSHA}6Y6iqJnmgwiXjFjh04cLCukqsCNCCRLQ

          把密码加入配置文件中

           vim slapd.conf

           1)、添加:

             rootpw {SSHA}6Y6iqJnmgwiXjFjh04cLCukqsCNCCRLQ

             loglevel        296 

             cachesize       1000

             checkpoint      2048 10

           注释:loglevel 日志级别

             cachesize 缓存的记录数

             checkpoint 将内存的数据写回数据文件,达到2048k或10分钟执行一次

           2)、修改:(114、115、116、117行)

             idatabase       bdb

             suffix         "dc=syk,dc=com"

             rootdn         "cn=admin,dc=syk,dc=com"

           3)、修改:

             将98-108行注释掉

             并在下面添加:

             access to *

             by self write

             by anonymous auth

             by * read

            注释:指定用户可以修改自己的密码同时更新自己的shadow信息来反映密码的变化,身份验证允许能够检索用户的密码。

           4)、配置syslog记录sldap的日志

             cp /etc/rsyslog.conf /etc/rsyslog.conf.bak

             vim /etc/rsyslog.conf添加:

                local4.*                /var/log/ldap.log

             重启rsyslog

                /etc/init.d/rsyslog restart

           5)、配置数据库

              cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

              chown ldap:ldap /var/lib/ldap/DB_CONFIG 

              chmod 700 /var/lib/ldap/DB_CONFIG

           检查所有配置是否正确

              slaptest -u

              config file testing succeeded则表示配置正确

           6)、查询数据库:

              ldapsearch -LLL -W -x -H ldap://www.syk.com -D "cn=admin,dc=syk,dc=com" -b "dc=syk,dc=com" "(uid=*)"

              如果报错:ldap_bind: Invalid credentials (49)

              解决方法:

              rm -rf /etc/openldap/slapd.d/*

              slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d 

              chown -R ldap.ldap /etc/openldap/slapd.d/

              重启:/etc/init.d/slapd restart

           7)、为ldap配置web接口管理

              官网:https://www.ldap-account-manager.org/lamcms/

              yum -y install httpd php php-ldap php-gd

              cd /var/www/html

              wget http://superb-sea2.dl.sourceforge.net/project/lam/LAM/5.2/ldap-account-manager-5.2.tar.bz2

              tar -jxvf ldap-account-manager-5.2.tar.bz2

              mv ldap-account-manager-5.2 ldap

              cd ldap/config

              cp config.cfg_sample config.cfg

              cp lam.conf_sample lam.conf

              sed -i 's#cn=Manager#cn=admin#g' lam.conf

              sed -i 's#dc=my-domain#dc=syk#g' lam.conf

              diff lam.conf.sample lam.conf

              chown -R apache.apache /var/www/html/ldap

              /etc/init.d/httpd restart

              网页访问即可:http://192.168.137.51/ldap