ldap yum安装-centos6

yum安装openldap

系统环境信息
操作系统:CentOS release 6.7

基础的环境准备
    iptables -F && /etc/init.d/iptables save
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && setenforce 0

1)安装OpenLDAP的相关
    yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap   #其中compat-openldap这个包与主从有很大的关系

    安装完后,可以看到自动创建了ldap用户:
    [root@base ~ 09:59:34&&8]#cat /etc/passwd | grep ldap
    ldap:x:55:55:LDAP User:/var/lib/ldap:/sbin/nologin

    可以通过rpm -qa |grep openldap查看安装了哪些包:
    [root@base ~ 10:00:59&&9]#rpm -qa | grep openldap
    openldap-2.4.40-16.el6.x86_64
    openldap-servers-2.4.40-16.el6.x86_64
    compat-openldap-2.3.43-2.el6.x86_64
    openldap-devel-2.4.40-16.el6.x86_64
    openldap-clients-2.4.40-16.el6.x86_64

2)OpenLDAP的相关配置文件信息
    /etc/openldap/slapd.conf:OpenLDAP的主配置文件,记录根域信息,管理员名称,密码,日志,权限等
    /etc/openldap/slapd.d/*这下面是/etc/openldap/slapd.conf配置信息生成的文件,每修改一次配置信息,这里的东西就要重新生成
    /etc/openldap/schema/*:OpenLDAP的schema存放的地方
    /var/lib/ldap/*:OpenLDAP的数据文件
    /usr/share/openldap-servers/slapd.conf.obsolete 模板配置文件
    /usr/share/openldap-servers/DB_CONFIG.example 模板数据库配置文件

3) OpenLDAP监听的端口:
    默认监听端口:389(明文数据传输)
    加密监听端口:636(密文数据传输)

4)初始化OpenLDAP的配置
    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

5)修改配置文件
    首先,slappasswd生成密文密码123456,拷贝这个到/etc/openldap/slapd.conf里
    [root@base ~ 10:04:04&&12]#slappasswd 
    New password: 
    Re-enter new password: 
    {SSHA}6guCnCELUuh3+7DF9NmuA9CgO2uVEej+

    修改后的配置文件内容:红色字体的为修改的部分
    [root@base /etc/openldap 10:08:35&&20]#cat /etc/openldap/slapd.conf
    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 bind_v2
    pidfile        /var/run/openldap/slapd.pid
    argsfile    /var/run/openldap/slapd.args
    TLSCACertificatePath /etc/openldap/certs
    TLSCertificateFile "\"OpenLDAP Server\""
    TLSCertificateKeyFile /etc/openldap/certs/password
    database config
    access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
        by * none
    database monitor
    access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
            by dn.exact="cn=admin,dc=puyi,dc=com" read
            by * none
    database    bdb
    suffix        "dc=puyi,dc=com"
    checkpoint    1024 15
    rootdn        "cn=admin,dc=puyi,dc=com"
    rootpw        {SSHA}6guCnCELUuh3+7DF9NmuA9CgO2uVEej+
    directory    /var/lib/ldap
    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

6)重新生成配置文件信息文件
    先检测/etc/openldap/slapd.conf是否有错误:slaptest -f /etc/openldap/slapd.conf

    [root@base /etc/openldap 10:08:57&&21]#slaptest -f /etc/openldap/slapd.conf
    5ad6a916 bdb_db_open: database "dc=puyi,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).
    5ad6a916 backend_startup_one (type=bdb, suffix="dc=puyi,dc=com"): bi_db_open failed! (2)
    slap_startup failed (test would succeed using the -u switch)

    这里报错是因为在第三步后没有重新生成配置文件,启动slapd。而是直接修改配置文件去了。先启动slapd:

    [root@base /etc/openldap 10:10:30&&22]#/etc/init.d/slapd restart
    Stopping slapd:                                            [FAILED]
    /var/lib/ldap/__db.001 is not owned by "ldap"              [WARNING]
    /var/lib/ldap/__db.002 is not owned by "ldap"              [WARNING]
    /var/lib/ldap/__db.006 is not owned by "ldap"              [WARNING]
    /var/lib/ldap/alock is not owned by "ldap"                 [WARNING]
    /var/lib/ldap/__db.004 is not owned by "ldap"              [WARNING]
    /var/lib/ldap/__db.005 is not owned by "ldap"              [WARNING]
    /var/lib/ldap/__db.003 is not owned by "ldap"              [WARNING]
    Starting slapd:

    这里又报错,这是因为没有给/var/lib/ldap授权,授权后chown -R ldap.ldap /var/lib/ldap/,再重启slapd,/etc/init.d/slapd restart,可以看到成功的

    [root@base /etc/openldap 10:11:27&&23]#chown -R ldap.ldap /var/lib/ldap/
    [root@base /etc/openldap 10:12:19&&24]#/etc/init.d/slapd restart
    Stopping slapd:                                            [FAILED]
    Starting slapd:                                            [  OK  ]

    接着回到检测/etc/openldap/slapd.conf是否有错误:slaptest -f /etc/openldap/slapd.conf
    [root@base /etc/openldap 10:12:33&&25]#slaptest -f /etc/openldap/slapd.conf
    config file testing succeeded

    可以看到没问题,然后重新生成配置文件的配置信息:
    先删除最先的配置文件生成的信息:rm -rf /etc/openldap/slapd.d/*
    重新生成:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
    查看是否生成的是自己修改的配置文件信息:cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif

    [root@base /etc/openldap 10:13:03&&26]#rm -rf /etc/openldap/slapd.d/*
    [root@base /etc/openldap 10:13:55&&27]#slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
    config file testing succeeded
    [root@base /etc/openldap 10:14:05&&28]#cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif | grep puyi
    olcSuffix: dc=puyi,dc=com
    olcRootDN: cn=admin,dc=puyi,dc=com

    授权:chown -R ldap.ldap /etc/openldap/slapd.d/
     重启:/etc/init.d/slapd restart

     [root@base /etc/openldap 10:14:18&&29]#chown -R ldap.ldap /etc/openldap/slapd.d/
    [root@base /etc/openldap 10:15:26&&30]#/etc/init.d/slapd restart
    Stopping slapd:                                            [  OK  ]
    Starting slapd:                                            [  OK  ]
7)
创建1个管理员账号(此账号用来登陆phpldapadmin)  
编辑ldif文件  #注意与slapd.conf文件中保持一致,下面的命令同理,  
#本人曾在下面的ldapadd命令中将"admin"写成了"amdin",导致一直报" ldap_bind: Invalid credentials (49)"错(每次都是翻回上一条命令执行),排查了3个小时左右才发现。  
[root@localhost ~]# vim admin.ldif #此文件格式必须按照下面的格式编写,[开头不能有空格,中间有个空行]
dn: dc=puyi,dc=com  
objectclass: dcObject  
objectclass: organization  
o: Puyi.Inc  
dc: puyi

  dn: cn=admin,dc=puyi,dc=com
  objectclass: organizationalRole 
  cn: admin

插入数据库  
[root@base /etc/openldap 10:39:51&&42]#ldapadd -x -D "cn=admin,dc=puyi,dc=com" -W -f admin.ldif  
Enter LDAP Password: #些密码就是用slappasswd生成的密码,slapd.conf配置文件里的那个。  
adding new entry "dc=puyi,dc=com"
adding new entry "cn=admin,dc=puyi,dc=com"


    到这里为止,OpenLDAP服务端基本上完成了,我们可以通过PhpLDAPAdmin来登录看一下,那先得安装PhpLDAPAdmin

 PhpLDAPAdmin的搭建

1)安装EPEL仓库,镜像里没有PhpLDAPAdmin这个的安装包,所以得安装EPEL仓库
    wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
    yum clean all #清除YUM缓存,yum 会把下载的软件包和header存储在cache中,而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除,
   更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一全部清除 yum makecache # 将服务器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度
2)安装PhpLDAPAdmin yum install -y phpldapadmin 3)修改phpldapadmin的配置文件,访问控制权限vim /etc/httpd/conf.d/phpldapadmin.conf,允许谁访问 [root@base /etc/openldap 10:31:51&&36]#cat /etc/httpd/conf.d/phpldapadmin.conf Alias /phpldapadmin /usr/share/phpldapadmin/htdocs Alias /ldapadmin /usr/share/phpldapadmin/htdocs <Directory /usr/share/phpldapadmin/htdocs> <IfModule mod_authz_core.c> # Apache 2.4 Require local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Allow,Deny Allow from all #Deny from 127.0.0.1 #Deny from ::1 </IfModule> </Directory> 4)修改配置文件:vim /etc/phpldapadmin/config.php $servers->setValue('login','attr','dn'); 这一行的注释去掉 //$servers->setValue('login','attr','uid'); 这一行注释掉 5)重启httpd服务 [root@base /etc/openldap 10:34:53&&40]#/etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.159.14 for ServerName [ OK ] 6)在浏览器输入OpenLDAP服务端的IP 10.0.0.138/ldapadmin 登陆:用户 cn=admin,dc=puyi,dc=com 密码:123456

OpenLDAP的打开日志信息

vim /etc/openldap/slapd.conf #加上loglevel -1

这里修改了配置文件,所有得重新生成配置文件的信息
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/

在 vim /etc/rsyslog.conf加上
local4.*                                                /var/log/slapd/slapd.log

然后重启/etc/init.d/rsyslog restart

创建日志文件目录,授权
mkdir /var/log/slapd
chmod 755 /var/log/slapd/
chown ldap.ldap /var/log/slapd/

重启slapd服务,/etc/init.d/slapd restart
就可以看到日志信息了cat /var/log/slapd/slapd.log

 创建1个具有部门属性的员工

创建1个具有部门属性的员工

编辑ldif文件

#这里其实是先创建1个部门”yunwei”,再在”yunwei”部门创建了1个员工,实际上是两条命令
[root@localhost ~]# vim yunwei.ldif
dn: ou=yunwei,dc=puyi,dc=com
ou: yunwei
objectClass: organizationalUnit

dn: cn=hxh,ou=yunwei,dc=puyi,dc=com
ou: yunwei
cn: hxh
sn: hui
objectClass: inetOrgPerson
objectClass: organizationalPerson

插入数据库(admin是管理员,必须用admin来创建)
[root@localhost ~]# ldapadd -x -D "cn=admin,dc=puyi,dc=com" -W -f yunwei.ldif

验证
ldapsearch -x -b 'dc=puyi,dc=com' '(objectClass=*)'

 

常见对象属性

LDAP为人员组织机构中常见的对象都设计了属性(比如commonName,surname)。下面有一些常用的别名:

属性名称

属性别名

语法

描述

值(举例)

commonName

cn

Directory String

名子

sean

surname

sn

Directory String

姓氏

Chow

organizationalUnitName

ou

Directory String

单位(部门)名称

IT_SECTION

organization

o

Directory String

组织(公司)名称

linuxprobe

telephoneNumber

  

Telephone Number

电话号码

911

objectClass

  

  

内置属性

organizationa

ldif文件示例

http://www.linuxidc.com/Linux/2017-10/147559.htm

posted @ 2018-04-16 23:31  xgmxm  阅读(642)  评论(0编辑  收藏  举报