zoukankan      html  css  js  c++  java
  • LDAP安装步骤

    大数据平台,LDAP和kerberos的统一账户管理和认证是必不可少的。通过Openldap来搭建LDAP服务器。

    1. 安装openldap软件包

    yum install openldap openldap-* -y

    2. 初始化配置文件,不要手动去创建slapd.conf,可能会由于格式问题导致问题

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

    3. 初始化数据库配置文件

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

    4. 修改权限

    chown -R ldap.ldap /etc/openldap 
    chown -R ldap.ldap /var/lib/ldap

    5. slapd.conf配置文件如下

    # egrep -v "#|^$" /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
    include         /etc/openldap/schema/kerberos.schema   <<<<<<<由于后面需要配合kerberos认证,这里增加kerberos.schema,参考第6步骤
    allow bind_v2
    pidfile         /var/run/openldap/slapd.pid
    argsfile        /var/run/openldap/slapd.args
    loglevel        4095
    TLSCACertificatePath /etc/openldap/certs
    TLSCertificateFile ""OpenLDAP Server""
    TLSCertificateKeyFile /etc/openldap/certs/password
    access to *
        by self write
        by users read
        by anonymous read
    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,ou=ldap,ou=admin,dc=testserver,dc=com" read
            by * none
    database        bdb
    suffix          "dc=testserver,dc=com"
    checkpoint      1024 15
    cachesize       10000
    rootdn          "cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com"
    rootpw          {SSHA}LPbWMTEOprpTvqjmxy/mTW+i0IPrugJc    <<<<<<<<<<<<<<<参考第7步骤,生成加密密码
    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. 安装kerberos软件

    1
    yum install krb5* -y

    查找kerberos.schema文件,并拷贝到/etc/openldap/schema/kerberos.schema

    1
    2
    3
    # cd /usr/share/doc/krb5-server-ldap-1.10.3/
    # ls
    60kerberos.ldif  kerberos.ldif  kerberos.schema

    7. 生成LDAP的root管理密码

    1
    2
    slappasswd -s 123456
    {SSHA}L4uH7lVxwdS0/L/vspdseXORcneIWfeb

    8. 检查配置文件是否有格式错误

    1
    2
    # slaptest -f /etc/openldap/slapd.conf
    config file testing succeeded

    9. 准备生成LDAP数据库结构

    先删除slapd.d的原有结构

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

    生成新的数据结构

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

    修改权限,这个很重要,不然后面会报错

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

    每次修改都需要重启ldap

    1
    service slapd restart

    10. 测试LDAP的连接,这里足足让我纠结两周,无数次的安装,有的时候可以正常登陆,有的时候会报错,明确说认证错误(密码错误)。这个一直让我以为是密码部分的格式设置有问题。各种尝试都无法正常解决掉。最后突然发现,是rootdn的问题,而不是rootpw的问题。

    1
    2
    3
    # ldapsearch -x -D "cn=admin,dc=testserver,dc=com" -h 10.24.103.17 -W -b 'ou=People,dc=testserver,dc=com'
    Enter LDAP Password
    ldap_bind: Invalid credentials (49)

    就是说,下面的命令中,要完整的复制sldap.conf中的“rootdn "cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com"”条目信息,不能多,不能少

    这样才能正常查询结果

    1
    ldapsearch -x -D "cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com" -h 10.24.103.17 -W

    11. LDAP创建成功之后,需要创建数据。由于我是迁移数据过来,只是将生产的ldap数据导出导入。

    ldap数据备份的方式有两种:一种是通过ldapsearch ,一种是通过slapcat命令。很多人都是建议通过slapcat来完成,但是我测试一下,没有成功,就先使用ldapsearch导出,ldapadd导入的

    1
    2
    /usr/sbin/slapcat > /tmp/liang/ldapdbak.ldif
    /usr/sbin/slapadd -l  /tmp/liang/ldapdbak.ldif

    12. 导入数据命令

    1
    ldapadd -x -D "cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com" -h 10.24.103.17 -W -f ldapexport.ldif

    13. 查询数据,确认已经导入成功即可

    1
    ldapsearch -LLL -x -D "cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com" -W -b "dc=testserver,dc=com" '(uid=*)'

    15. 在客户端安装ldap软件,我比较偷懒,全都安装了,实际只安装openldap-clients就可以了

    1
    yum install openldap openldap-* -y

    16. 设置LDAP客户端,客户端设置有几种方式

    ---1. 通过图形化命令完成LDAP client设置

    1
    LANG=C authconfig-tui

    05d32feb59999f4a1aafbad5dcde5919.png


    841e76ae51eb378ee3f389f712d7bc08.png

    ---2. 通过authconfig命令,配置客户端。由于是大数据平台运维,所以我是通过命令行实现的,这样比较方便批量处理。

    authconfig --enablemkhomedir 
    --disableldaptls 
    --enablemd5 
    --enableldap 
    --enableldapauth 
    --ldapserver=ldap://10.24.103.17 
    --ldapbasedn="dc=testserver,dc=com" 
    --enableshadow 
    --update
    17. 然后在client上,root用户su - username,可以发现,已经配置成功了。
  • 相关阅读:
    103
    101
    102
    100
    ByteView和Sink
    二叉排序树删除、搜索、插入的迭代实现
    怎样就地反转单链表?
    有序单链表的合并
    有序数组的合并
    静态表之整型数组的插入、删除、查找
  • 原文地址:https://www.cnblogs.com/fungitive/p/9136212.html
Copyright © 2011-2022 走看看