zoukankan      html  css  js  c++  java
  • centos6.5安装openLDAP2.3

    查看系统版本,内核,定时任务同步时间,关闭防火墙selinux等

    [root@ldap-master ~]# cat /etc/redhat-release 
    CentOS release 6.5 (Final)
    [root@ldap-master ~]# uname -r
    2.6.32-431.el6.x86_64
    [root@ldap-master ~]# crontab -l
    #time update by root
    */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
    [root@ldap-master ~]# getenforce 
    Disabled
    [root@ldap-master ~]# /etc/init.d/iptables status
    iptables: Firewall is not running.
    [root@ldap-master ~]# echo "10.0.0.4 test.org" >>/etc/hosts
    [root@ldap-master ~]# tail -1 /etc/hosts
    10.0.0.4 test.org
    

    安装openLDAP

    [root@ldap-master ~]# rpm -qa|grep openldap*
    compat-openldap-2.3.43-2.el6.x86_64
    openldap-2.4.23-32.el6_4.1.x86_64
    [root@ldap-master ~]# yum -y install openldap openldap-* --skip-broken               #<===此步骤出错检查yum源配置,网络,DNS等是否正确
    [root@ldap-master ~]# yum -y install nscd nss-pam-ldap nss* pcre pcre-* --skip-broken      #<===此步骤如果出错,执行下面一条命令,然后重新再执行本条命令再继续下一步
    [root@ldap-master ~]# yum -y update nss-softokn-freebl
    [root@ldap-master ~]# rpm -qa|grep openldap*        #<===保证以下软件安装完毕
    openldap-2.4.40-16.el6.x86_64
    openldap-clients-2.4.40-16.el6.x86_64
    openldap-servers-2.4.40-16.el6.x86_64
    openldap-devel-2.4.40-16.el6.x86_64
    openldap-servers-sql-2.4.40-16.el6.x86_64
    compat-openldap-2.3.43-2.el6.x86_64
    

    查看yum安装的openLDAP软件所在目录路径(没有列出所有,只列出重要的)

    [root@ldap-master ~]# rpm -ql openldap-servers-2.4.40-16.el6.x86_64
    /etc/openldap/slapd.conf                              #<===/etc/openldap为配置文件目录
    /etc/openldap/slapd.conf.bak
    /etc/openldap/slapd.d
    /etc/portreserve/slapd
    ......
    /usr/share/openldap-servers                           #<===服务端目录
    /usr/share/openldap-servers/DB_CONFIG.example         #<===数据库配置文件样本
    /usr/share/openldap-servers/slapd.conf.obsolete       #<===2.3版本主配置文件样本
    /usr/share/openldap-servers/slapd.ldif.example        #ldif 文件样本
    /var/lib/ldap                                         #<===数据库所在路径(默认为空)
    /var/run/openldap                                     #进程pid目录

    配置ldap2.3版本主配置文件slapd.conf

    [root@ldap-master ~]# cd /etc/openldap/
    [root@ldap-master openldap]# ll
    total 20
    drwxr-xr-x. 2 root root 4096 Feb 25 17:03 certs
    -rw-r----- 1 root ldap 121 Mar 22 2017 check_password.conf
    -rw-r--r-- 1 root root 280 Mar 22 2017 ldap.conf
    drwxr-xr-x 2 root root 4096 Feb 25 17:03 schema
    drwxr-x--- 3 ldap ldap 4096 Feb 25 17:03 slapd.d
    [root@ldap-master openldap]# ll slapd.d/
    total 8
    drwxr-x--- 3 ldap ldap 4096 Feb 25 17:03 cn=config
    -rw-r----- 1 ldap ldap 1281 Feb 25 17:03 cn=config.ldif
    [root@ldap-master openldap]# cp /usr/share/openldap-servers/slapd.conf.obsolete ./slapd.conf
    [root@ldap-master openldap]# ll
    total 28
    drwxr-xr-x. 2 root root 4096 Feb 25 17:03 certs
    -rw-r----- 1 root ldap 121 Mar 22 2017 check_password.conf
    -rw-r--r-- 1 root root 280 Mar 22 2017 ldap.conf
    drwxr-xr-x 2 root root 4096 Feb 25 17:03 schema
    -rw-r--r-- 1 root root 4635 Feb 25 17:25 slapd.conf              #<===2.3版本配置文件目录
    drwxr-x--- 3 ldap ldap 4096 Feb 25 17:03 slapd.d                 #<===2.4版本配置文件目录
    [root@ldap-master openldap]# slap                                #<===查看所有slapd相关命令
    slapacl slapauth slapd slapindex slapschema 
    slapadd slapcat slapdn slappasswd slaptest
    [root@ldap-master openldap]# slappasswd -s 123456|sed -e 's#{SSHA}#rootpw	{SSHA}#g' >>/etc/openldap/slapd.conf     #<===此命令生成ldap管理员加密密码(明文密码为123456)
    [root@ldap-master openldap]# tail -1 /etc/openldap/slapd.conf 
    rootpw {SSHA}cwkGLG6/cxNyInMajMw9kkXebbLBesTx
    [root@ldap-master openldap]# vi /etc/openldap/slapd.conf         #<===修改配置文件内容为如下(解释部分)
    [root@ldap-master openldap]# cat /etc/openldap/slapd.conf 
    #
    # See slapd.conf(5) for details on configuration options.
    # This file should NOT be world readable.
    #
    
    include /etc/openldap/schema/corba.schema
    include /etc/openldap/schema/core.schema
    include /etc/openldap/schema/cosine.schema
    include /etc/openldap/schema/duaconf.schema
    include /etc/openldap/schema/dyngroup.schema
    include /etc/openldap/schema/inetorgperson.schema
    include /etc/openldap/schema/java.schema
    include /etc/openldap/schema/misc.schema
    include /etc/openldap/schema/nis.schema
    include /etc/openldap/schema/openldap.schema
    include /etc/openldap/schema/ppolicy.schema
    include /etc/openldap/schema/collective.schema
    
    # Allow LDAPv2 client connections. This is NOT the default.
    allow bind_v2
    
    # Do not enable referrals until AFTER you have a working directory
    # service AND an understanding of referrals.
    #referral ldap://root.openldap.org
    
    pidfile /var/run/openldap/slapd.pid
    argsfile /var/run/openldap/slapd.args
    
    # Load dynamic backend modules
    # - modulepath is architecture dependent value (32/64-bit system)
    # - back_sql.la overlay requires openldap-server-sql package
    # - dyngroup.la and dynlist.la cannot be used at the same time
    
    # modulepath /usr/lib/openldap
    # modulepath /usr/lib64/openldap
    
    # moduleload accesslog.la
    # moduleload auditlog.la
    # moduleload back_sql.la
    # moduleload chain.la
    # moduleload collect.la
    # moduleload constraint.la
    # moduleload dds.la
    # moduleload deref.la
    # moduleload dyngroup.la
    # moduleload dynlist.la
    # moduleload memberof.la
    # moduleload pbind.la
    # moduleload pcache.la
    # moduleload ppolicy.la
    # moduleload refint.la
    # moduleload retcode.la
    # moduleload rwm.la
    # moduleload seqmod.la
    # moduleload smbk5pwd.la
    # moduleload sssvlv.la
    # moduleload syncprov.la
    # moduleload translucent.la
    # moduleload unique.la
    # moduleload valsort.la
    
    # The next three lines allow use of TLS for encrypting connections using a
    # dummy test certificate which you can generate by running
    # /usr/libexec/openldap/generate-server-cert.sh. Your client software may balk
    # at self-signed certificates, however.
    TLSCACertificatePath /etc/openldap/certs
    TLSCertificateFile ""OpenLDAP Server""
    TLSCertificateKeyFile /etc/openldap/certs/password
    
    # Sample security restrictions
    # Require integrity protection (prevent hijacking)
    # Require 112-bit (3DES or better) encryption for updates
    # Require 63-bit encryption for simple bind
    # security ssf=1 update_ssf=112 simple_bind=64
    
    # Sample access control policy:
    # Root DSE: allow anyone to read it
    # Subschema (sub)entry DSE: allow anyone to read it
    # Other DSEs:
    # Allow self write access
    # Allow authenticated users read access
    # Allow anonymous users to authenticate
    # Directives needed to implement policy:
    # access to dn.base="" by * read
    # access to dn.base="cn=Subschema" by * read
    # access to *
    # by self write
    # by users read
    # by anonymous auth
    #
    # if no access controls are present, the default policy
    # allows anyone and everyone to read anything but restricts
    # updates to rootdn. (e.g., "access to * by * read")
    #
    # rootdn can always read and write EVERYTHING!
    
    # enable on-the-fly configuration (cn=config)
    # enable server status monitoring (cn=monitor)
    #<===以下是在删除配置文件98-108增加的内容
    access to *                               #<===将原来98-108行(2.4版本的内容)注释掉或者删除掉,然后增加这4行安全方面的优化内容
    by self write
    by anonymous auth                        
    by * read                                 #<===此4行意思是用户可以修改并更新自己的密码,身份验证允许检索用户的密码
    
    #######################################################################
    # database definitions
    #######################################################################
    
    database bdb                                  #<===指定数据库为dbd格式
    suffix "dc=test,dc=org"                       #<===指定ldap要使用的后缀
    checkpoint 2048 10                            #<===设置每达到2048KB或者每10分钟执行一次写数据进磁盘的checkpoint操作
    rootdn "cn=admin,dc=test,dc=org"              #<===指定管理员的DN,使用此DN可以登录管理openLDAP服务器
    # Cleartext passwords, especially for the rootdn, should
    # be avoided. See slappasswd(8) and slapd.conf(5) for details.
    # Use of strong authentication encouraged.
    # rootpw secret
    # rootpw {crypt}ijFYNcSNctBYg
    
    # The database directory MUST exist prior to running slapd AND 
    # should only be accessible by the slapd and slap tools.
    # Mode 700 recommended.
    directory /var/lib/ldap                       
    
    # Indices to maintain for this database
    index objectClass eq,pres
    index ou,cn,mail,surname,givenname eq,pres,sub
    index uidNumber,gidNumber,loginShell eq,pres
    index uid,memberUid eq,pres,sub
    index nisMapName,nisMapEntry eq,pres,sub
    
    # Replicas of this database
    #replogfile /var/lib/ldap/openldap-master-replog
    #replica host=ldap-1.example.com:389 starttls=critical
    # bindmethod=sasl saslmech=GSSAPI
    # authcId=host/ldap-master.example.com@EXAMPLE.COM
    rootpw {SSHA}cwkGLG6/cxNyInMajMw9kkXebbLBesTx
    #<===以下是增加的内容
    loglevel 296                  #<===日志级别(由256日志链接/操作/结果,32搜索过滤器,8链接管理器一起构成)
    cachesize 1000                #<===设置ldap可以缓存的记录数
    

    配置rsyslog服务记录openLDAP服务日志

    [root@ldap-master openldap]# echo 'local4.*                                /var/log/ldap.log' >>/etc/rsyslog.conf
    [root@ldap-master openldap]# tail -2 /etc/rsyslog.conf 
    #ldap.log by root 2019/02/25
    local4.* /var/log/ldap.log
    [root@ldap-master openldap]# /etc/init.d/rsyslog start
    Shutting down system logger:     [ OK ]
    Starting system logger:               [ OK ]
    [root@ldap-master openldap]# lsof -i :389
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    slapd 5499 ldap 7u IPv4 20606 0t0 TCP *:ldap (LISTEN)
    slapd 5499 ldap 8u IPv6 20607 0t0 TCP *:ldap (LISTEN)
    [root@ldap-master openldap]# cat /var/log/ldap.log         #<===启动服务后,此文件中有内容证明配置rsyslog没有错误
    Feb 25 18:00:14 ldap-master slapd[5498]: @(#) $OpenLDAP: slapd 2.4.40 (Mar 22 2017 06:29:21) $#012#011mockbuild@c1bm.rdu2.centos.org:/builddir/build/BUILD/openldap-2.4.40/openldap-2.4.40/build-servers/servers/slapd

    配置ldap数据库并授权,slapd服务加入开机自启动,配置了数据库后重启服务提示有错误及其解决办法

    [root@ldap-master openldap]# pwd 
    /etc/openldap
    [root@ldap-master openldap]# ll /var/lib/ldap/
    total 0
    [root@ldap-master openldap]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    [root@ldap-master openldap]# ll /var/lib/ldap/
    total 4
    -rw-r--r-- 1 root root 845 Feb 25 17:57 DB_CONFIG
    [root@ldap-master openldap]# chown -R ldap.ldap /var/lib/ldap
    [root@ldap-master openldap]# chmod 700 /var/lib/ldap/DB_CONFIG 
    [root@ldap-master openldap]# ll /var/lib/ldap/
    total 4
    -rwx------ 1 ldap ldap 845 Feb 25 17:57 DB_CONFIG
    [root@ldap-master openldap]# slaptest -u            #<===此命令用于检查ldap配置是否出错
    config file testing succeeded
    [root@ldap-master openldap]# /etc/init.d/slapd start
    Starting slapd: [ OK ]
    [root@ldap-master openldap]# chkconfig --level 3 slapd on         
    [root@ldap-master openldap]# chkconfig --list|grep slapd
    slapd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
    [root@ldap-master openldap]# /etc/init.d/slapd restart          #<===重新启动slapd服务提示错误(原因:openLDAP2.3与2.4配置文件不一样导致)
    Stopping slapd: [ OK ]
    ls: cannot access /etc/openldap/slapd.d//cn=config/olcDatabase*.ldif: No such file or directory
    Starting slapd: [ OK ]

    解决办法:重新生成基于2.3版本的配置文件

    [root@ldap-master openldap]# ll
    total 32
    drwxr-xr-x. 2 root root 4096 Feb 25 17:03 certs
    -rw-r----- 1 root ldap 121 Mar 22 2017 check_password.conf
    -rw-r--r-- 1 root root 280 Mar 22 2017 ldap.conf
    drwxr-xr-x 2 root root 4096 Feb 25 17:03 schema
    -rw-r--r-- 1 root root 4478 Feb 25 17:49 slapd.conf
    drwxr-x--- 3 ldap ldap 4096 Feb 25 17:03 slapd.d
    drwxr-x--- 3 ldap ldap 4096 Feb 25 17:03 slapd.d.2019-02-25.bak
    [root@ldap-master openldap]# rm -fr slapd.d/*
    [root@ldap-master openldap]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
    [root@ldap-master openldap]# ll /etc/openldap/slapd.d/*
    -rw------- 1 root root 1301 Feb 25 18:08 /etc/openldap/slapd.d/cn=config.ldif
    /etc/openldap/slapd.d/cn=config:
    total 76
    drwxr-x--- 2 root root 4096 Feb 25 18:08 cn=schema
    -rw------- 1 root root 59398 Feb 25 18:08 cn=schema.ldif
    -rw------- 1 root root 584 Feb 25 18:08 olcDatabase={0}config.ldif
    -rw------- 1 root root 2710 Feb 25 18:08 olcDatabase={1}bdb.ldif
    -rw------- 1 root root 660 Feb 25 18:08 olcDatabase={-1}frontend.ldif
    [root@ldap-master openldap]# chown -R ldap.ldap /etc/openldap/slapd.d
    [root@ldap-master openldap]# /etc/init.d/slapd restart
    Stopping slapd: [ OK ]
    Starting slapd: [ OK ]
    [root@ldap-master openldap]# lsof -i :389
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    slapd 5618 ldap 7u IPv4 21201 0t0 TCP *:ldap (LISTEN)
    slapd 5618 ldap 8u IPv6 21202 0t0 TCP *:ldap (LISTEN)
    

    验证openLDAP2.3安装成功

    [root@ldap-master openldap]# ldapsearch -LLL -W -x -H ldap://test.org -D "cn=admin,dc=test,dc=org" -b "dc=test,dc=org" "(uid=*)"
    Enter LDAP Password:                      #<===这里输入前面设置的ldap管理员admin的密码123456
    No such object (32)                       #<===正常情况下,输入正确密码登录,内容为空证明以上所有配置正确(如果输入正确的密码登录提示错误证明配置有错误)

    配置web管理openLDAP

    [root@ldap-master openldap]# yum -y install httpd php php-ldap php-gd
    [root@ldap-master openldap]# rpm -qa httpd php php-ldap php-gd 
    httpd-2.2.15-69.el6.centos.x86_64
    php-5.3.3-49.el6.x86_64
    php-ldap-5.3.3-49.el6.x86_64
    php-gd-5.3.3-49.el6.x86_64
    [root@ldap-master openldap]# cd /var/www/html/
    [root@ldap-master html]# ll
    total 0
    [root@ldap-master html]# rz -y 
    rz waiting to receive.
    ???a? zmodem ′???£ °′ Ctrl+C ???£
    ?[root@ldap-master html]# rz -y 
    rz waiting to receive.
    ???a? zmodem ′???£ °′ Ctrl+C ???£
    ??′?? ldap-account-manager-3.7.tar.gz...
    100% 8942 KB 8942 KB/s 00:00:01 0 ′?
    ?[root@ldap-master html]# ll
    total 8944
    -rw-r--r-- 1 root root 9157357 Feb 21 15:00 ldap-account-manager-3.7.tar.gz
    [root@ldap-master html]# tar xf ldap-account-manager-3.7.tar.gz
    [root@ldap-master html]# mv ldap-account-manager-3.7 ldap
    [root@ldap-master html]# cd ldap/config
    [root@ldap-master config]# cp config.cfg_sample config.cfg
    [root@ldap-master config]# cp lam.conf_sample lam.conf
    [root@ldap-master config]# sed -i 's#cn=Manager#cn=admin#g' lam.conf 
    [root@ldap-master config]# sed -i 's#dc=my-domain#dc=test#g' lam.conf 
    [root@ldap-master config]# sed -i 's#dc=com#dc=org#g' lam.conf
    [root@ldap-master config]# chown -R apache.apache /var/www/html/ldap
    [root@ldap-master config]# /etc/init.d/httpd restart
    Stopping httpd: [ OK ]
    Starting httpd: httpd: apr_sockaddr_info_get() failed for ldap-master
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    [ OK ]
    [root@ldap-master config]# lsof -i :80
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    httpd 5841 root 4u IPv6 24972 0t0 TCP *:http (LISTEN)
    httpd 5843 apache 4u IPv6 24972 0t0 TCP *:http (LISTEN)
    httpd 5844 apache 4u IPv6 24972 0t0 TCP *:http (LISTEN)
    httpd 5845 apache 4u IPv6 24972 0t0 TCP *:http (LISTEN)
    httpd 5846 apache 4u IPv6 24972 0t0 TCP *:http (LISTEN)
    httpd 5847 apache 4u IPv6 24972 0t0 TCP *:http (LISTEN)
    httpd 5848 apache 4u IPv6 24972 0t0 TCP *:http (LISTEN)
    httpd 5849 apache 4u IPv6 24972 0t0 TCP *:http (LISTEN)
    

    浏览器输入 http://10.0.0.4/ldap/templates/login.php 访问,输入ldap管理员admin的密码123456

    安装Windows客户端管理软件LdapAdminExe-w64-1.8.3管理openLDAP(链接http://www.ldapadmin.org/download/ldapadmin.html

  • 相关阅读:
    ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
    Node.js
    AC多模式匹配算法
    红黑树的实现原理
    OAuth2.0 用户验证授权标准 理解
    SNMP 和 NetBios协议理解
    使用RSA非对称密钥算法实现硬件设备授权
    常用
    目录列表
    Memcache的 简介
  • 原文地址:https://www.cnblogs.com/blog-tim/p/10433159.html
Copyright © 2011-2022 走看看