zoukankan      html  css  js  c++  java
  • Centos7 下Yum安装OpenLdap

    网上的教程一大堆,也没用具体说明版本,所以很多操作方法都不一样,把我踩过的坑记录下来

    环境:

    Centos7

    OpenLdap 2.4.44 

    openldap新版本和老版本的配置方法差别特别大

    安装步骤

    1.yum安装OpenLdap
    #yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

    2.生成管理密码
    #slappasswd -s Your_P@ssw0rd
    {SSHA}J8D5Vzhe1HVmdj3jl83UeT4uO3LPYcUM

    3.编辑配置

    #cd /etc/openldap/slapd.d/cn=config

    修改olcDatabase={2}hdb.ldif文件如下
    #vim olcDatabase={2}hdb.ldif
    olcRootPW: {SSHA}J8D5Vzhe1HVmdj3jl83UeT4uO3LPYcUM,这个密码就是上面生成的管理密码,然后修改域名信息:
    olcSuffix: dc=domain,dc=com
    olcRootDN: cn=root,dc=domain,dc=com

    修改olcDatabase={1}monitor.ldif文件,如下:
    #vim olcDatabase={1}monitor.ldif
    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
    al,cn=auth" read by dn.base="cn=cn=root,dc=domain,dc=com" read by * none

    4.测试一下配置

     #slaptest -u 如果提示success 说明配置文件没有问题

    5.配置OpenLDAP数据库
    #cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    #chown ldap:ldap -R /var/lib/ldap
    #chmod 700 -R /var/lib/ldap
    注意:/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径。

    导入基本Schema
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

    注意:这个根据个人需要,导入自己需要的schema

    下面的步骤就是往OpenLdap里面插入用户,可做可不做,你也可以自己用ldap客户端插入数据,我先把他放在这

    添加用户及用户组
    默认情况下OpenLDAP是没有普通用户的,但是有一个管理员用户。管理用户就是前面我们刚刚配置的root。
    现在我们把系统中的用户,添加到OpenLDAP中。为了进行区分,我们现在新加两个用户ldapuser1和ldapuser2,和两个用户组ldapgroup1和ldapgroup2,如下:
    添加用户组,使用如下命令:
    groupadd ldapgroup1
    groupadd ldapgroup2
    添加用户并设置密码,使用如下命令:
    useradd -g ldapgroup1 ldapuser1
    useradd -g ldapgroup2 ldapuser2
    把刚刚添加的用户和用户组提取出来,这包括该用户的密码和其他相关属性,如下:
    grep ":10[0-9][0-9]" /etc/passwd > /root/users
    grep ":10[0-9][0-9]" /etc/group > /root/groups
    根据上述生成的用户和用户组属性,使用migrate_passwd.pl文件生成要添加用户和用户组的ldif,如下:
    生成ldif文件之前要先修改vim /usr/share/migrationtools/migrate_common.ph 文件,修改base_dn信息
    vim /usr/share/migrationtools/migrate_common.ph
    $DEFAULT_BASE = "dc=domain,dc=com";
    保存后,执行如下脚本
    /usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif
    /usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif

    配置openldap基础的数据库,如下:
    cat /root/base.ldif

    dn: dc=domain,dc=com
    o: domain com
    dc: domain
    objectClass: top
    objectClass: dcObject
    objectclass: organization

    dn: cn=root,dc=domain,dc=com
    cn: root
    objectClass: organizationalRole
    description: Directory Manager

    dn: ou=OP,dc=domain,dc=com
    ou: OP
    objectClass: top
    objectClass: organizationalUnit

    dn: ou=Group,dc=domain,dc=com
    ou: Group
    objectClass: top
    objectClass: organizationalUnit

    执行如下命令导入基础数据、用户数据,组数据
    ldapadd -x -W -D "cn=root,dc=domain,dc=com" -f /root/base.ldif
    ldapadd -x -W -D "cn=root,dc=domain,dc=com" -f /root/usersldif
    ldapadd -x -W -D "cn=root,dc=domain,dc=com" -f /root/groups.ldif

    用户和用户组全部导入完毕后,我们就可以查询OpenLDAP的相关信息。
    查询OpenLDAP全部信息,使用如下命令:
    ldapsearch -x -b "dc=domain,dc=com" -H ldap://127.0.0.1
    ldapsearch -h 127.0.0.1 -D "cn=root,dc=domain,dc=com" -w "your_password" -b "dc=domain,dc=com" "(uid=testuser)"

    参考资料 https://www.ilanni.com/?p=13775

    因为需要在OpenLdap中添加组的功能,所以需要添加memberOf功能,步骤如下

    1、在/etc/openldap目录下新建文件memberof_load_configure.ldif。内容如下:

    dn: cn=module{0},cn=config
    objectClass: olcModuleList
    cn: module{0}
    olcModulepath: /usr/lib64/openldap
    olcModuleload: {0}memberof.la

    dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
    objectClass: olcMemberOf
    objectClass: olcOverlayConfig
    objectClass: olcConfig
    objectClass: top
    olcOverlay: {0}memberof

    说明:上面的参数请根据实际情况修改(比如32的系统的话olcModulepath为/usr/lib/openldap)
    dn: cn=module{0},cn=config 如果/etc/openldap/slapd.d/cn=config目录下已经存在cn=module{0}.ldif 文件的话,你就需要修改 module后面的数字了
    dn: olcOverlay={0}memberof,olcDatabase={2}bdb,cn=config 这行中 如果上述目录中没有olcDatabase={2}bdb.ldif文件就把 olcDatabase={2}bdb改成olcDatabase={2}hdb
    2、执行命令ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_load_configure.ldif。
    至此memberof功能添加完成,你可以用客户端添加一个group试一下,我这边添加的group的ldif文件如下

    dn: cn=gitlab,ou=Group,dc=domain,dc=com
    objectClass: top
    objectClass: groupOfNames
    cn: gitlab
    member: uid=testuser,ou=OP,dc=domain,dc=com

    将上面代码保存为 addgroup.ldif,然后执行

    ldapadd -x -W -D "cn=root,dc=domain,dc=com" -f addgroup.ldif 即可添加成功

    可以使用ldap的客户端连接试试看下效果,客户端可以使用apache开源的这个,下载地址

    http://directory.apache.org/

    参考资料:

    https://blog.csdn.net/tongdao/article/details/52538365
    http://www.bubuko.com/infodetail-1795667.html

  • 相关阅读:
    angularJs实现星星等级评分
    angular自定义过滤器在页面和控制器中的使用
    字符串单个替换
    angular中的$cookies和$cookieStore设置过期时间
    DOM操作和jQuery实现选项移动操作
    PHP 中英文混排截取字符串
    固定格式时间转换时间戳
    PHP生成唯一订单号的方法汇总
    MySQL优化索引及优化汉字模糊查询语句
    简单封装数据库类
  • 原文地址:https://www.cnblogs.com/Kevin-1967/p/8931304.html
Copyright © 2011-2022 走看看