美文网首页
Ldap 小结

Ldap 小结

作者: 杰杰微电 | 来源:发表于2018-11-24 14:41 被阅读0次

    一. server 端安装

    yum -y install openldap-serversopenldap-clients nss-pam-ldapd

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

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

    systemctl start slapd

    systemctl enable slapd

    (需修改密码) slappasswd -s ldap@#123                    // 每次生成的密码串不一样

     或者  slappasswd -h {md5} -s "ldap@#123"        // 生成md5 密码 ,ldap@#123 加密成固定密码串

    {MD5}0YrHskgC54n3QqNNf7uBxg== 

    ldapadd -Y EXTERNAL -H ldapi:///  -f  /home/ocdc/diff/set_rootpw.ldif   // ldif 文件换成对应的密码

    cat set_rootpw.ldif

    dn: olcDatabase={0}config,cn=config

    changetype: modify

    add: olcRootPW

    olcRootPW: {MD5}0YrHskgC54n3QqNNf7uBxg==

    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

    SET domain onladp db  (管理员密码)

    set_domain.ldif文件中密码,跟上面密码一致

    ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/ocdc/diff/set_domain.ldif

    cat set_domain.ldif

    dn: olcDatabase={1}monitor,cn=config

    changetype: modify

    replace: olcAccess

    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"

      read by dn.base="cn=admin,dc=asiainfo,dc=com" read by * none

    dn: olcDatabase={2}hdb,cn=config

    changetype: modify

    replace: olcSuffix

    olcSuffix: dc=asiainfo,dc=com

    dn: olcDatabase={2}hdb,cn=config

    changetype: modify

    replace: olcRootDN

    olcRootDN: cn=asiainfo,dc=hadoop,dc=com

    dn: olcDatabase={2}hdb,cn=config

    changetype: modify

    add: olcRootPW

    olcRootPW: {MD5}0YrHskgC54n3QqNNf7uBxg==

    dn: olcDatabase={2}hdb,cn=config

    changetype: modify

    add: olcAccess

    olcAccess: {0}to attrs=userPassword,shadowLastChange by

      dn="cn=admin,dc=asiainfo,dc=com" write by anonymous auth by self write by * none

    olcAccess: {1}to dn.base="" by * read

    olcAccess: {2}to * by dn="cn=admin,dc=asiainfo,dc=com" write by * read

    ldapadd -x -D cn=admin,dc=asiainfo,dc=com -w ldap@#123 -f /home/ocdc/diff/create_basedomain.ldif

    cat create_basedomain.ldif

    dn: dc=asiainfo,dc=com

    objectClass: top

    objectClass: dcObject

    objectclass: organization

    o: Server com

    dc: asiainfo

    dn: cn=admin,dc=asiainfo,dc=com

    objectClass: organizationalRole

    cn: admin

    description: Directory admin

    dn: ou=People,dc=asiainfo,dc=com

    objectClass: organizationalUnit

    ou: People

    dn: ou=Group,dc=asiainfo,dc=com

    objectClass: organizationalUnit

    ou: Group

    测试能否连接到ldap server:

    ldapsearch -x  -b  'ou=People,dc=asiainfo,dc=com'

    ldapsearch -LLL -W -x  -D "cn=admin,dc=asiainfo,dc=com"  -b  "dc=asiainfo,dc=com"

    主从复制,主节点上执行如下命令:

    ldapadd -Y EXTERNAL -H ldapi:/// -f /home/ocdc/diff/sync_provider_addMode.ldif

    ldapadd -Y EXTERNAL -H ldapi:/// -f /home/ocdc/diff/sync_provider.ldif

    cat sync_provider_addMode.ldif

    # create new

    dn: cn=module,cn=config

    objectClass: olcModuleList

    cn: module

    olcModulePath: /usr/lib64/openldap

    olcModuleLoad: syncprov.la

    cat sync_provider.ldif

    # create new

    dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config

    objectClass: olcOverlayConfig

    objectClass: olcSyncProvConfig

    olcOverlay: syncprov

    olcSpSessionLog: 100

    从节点上执行如下命令:

     ldapadd -Y EXTERNAL -H ldapi:/// -f/home/ocdc/diff/sync_consumer.ldif

    cat sync_consumer.ldif

    # create new

    dn: olcDatabase={2}hdb,cn=config

    changetype: modify

    add: olcSyncRepl

    olcSyncRepl: rid=001

      # LDAP server's URI

      provider=ldap://oc-etl-data-new-060:389/

      bindmethod=simple

      # own domain name

      binddn="cn=admin,dc=asiainfo,dc=com"

      # directory manager's password

      credentials=ldap@#123

      searchbase="dc=asiainfo,dc=com"

      # includes subtree

      scope=sub

      schemachecking=on

      type=refreshAndPersist

      # [retry interval] [retry times] [interval of re-retry] [re-retry times]

      retry="30 5 300 3"

      # replication interval

      interval=00:00:05:00

    ldap client  安装

    yum -y install openldap-clients nss-pam-ldapd

    authconfig--enableldap --enableldapauth --ldapserver=xxxx-NN-01:389,xxxx-NN-02:389--ldapbasedn="dc=asiainfo,dc=com" --enablemkhomedir --update

    二 。常用维护命令

    1) Ldap 中添加一个用户:

          ldapadd -x-D cn=admin,dc=asiainfo,dc=com -W -f ldapuser.ldif

    2) 查询ldap 中的用户:

    ldapsearch -x -b 'ou=People,dc=asiainfo,dc=com'        // 不要管理员口令

    ldapsearch -LLL -W -x -D "cn=admin,dc=asiainfo,dc=com" -b"dc=asiainfo,dc=com"   

    // 需要ldap 管理员口令才能查询, 也可以换成 w (小写)参数,后面指定管理员口令

    ldapsearch -LLL -W -x  -D "cn=admin,dc=asiainfo,dc=com" -b"dc=asiainfo,dc=com" -H "ldap://127.0.0.1"

    //  -H 参数指定 要查询的Ldap 服务器地址

    3)删除ldap 中的一个用户 及 用户组:

    ldapdelete -x -W -D 'cn=admin,dc=asiainfo,dc=com'"uid=redhat,ou=People,dc=asiainfo,dc=com"

    ldapdelete -x -W -D 'cn=admin,dc=asiainfo,dc=com'"cn=redhat,ou=Group,dc=asiainfo,dc=com"

    4)更改ldap 中某一个用户的口令:

    ldappasswd -x -D "cn=manager,dc=asiainfo,dc=com" -w ldap123 "uid=asiainfo,ou=People,dc=asiainfo,dc=com" -s  xxxx

    说明: xxxx 为某个用户的新口令, -w(小写) 参数后面指定的是ldap 管理员密码

    5) 更改 ldap 管理员的口令:

    先查询 ldap 服务中的cn , dc 相关信息

    ldapsearch -H ldapi:// -LLL -Q -Y EXTERNAL -b “cn=config” “(olcRootDN=*)” dn olcRootDN olcRootPW        

    slappasswd -s  xxxxxx                        // 生成新密码的 加密串

    替换 newpasswd.ldif  当中的加密串 ,  newpasswd.ldif 文件的内容如下

    cat newpasswd.ldif                  

    dn: olcDatabase={2}hdb,cn=config

    changetype: modify

    replace: olcRootPW

    olcRootPW: {MD5}0YrHskgC54n3QqNNf7uBxg==

    执行更改操作

    ldapmodify -H ldapi:// -Y EXTERNAL  -f /root/newpasswd.ldif

    6)ldap 数据备份,迁移

    ldapsearch -LLL -w 'ldap@#123'  -x -D "cn=root,dc=asiainfo,dc=com" -b "dc=asiainfo,dc=com" >/root/ldapbak.ldif

    修改ldapbak.ldif 数据,删除top 组织,scp 到新ldap 服务器中

    导入到新ldap 数据库中

    ldapadd -x -D "cn=root,dc=asiainfo,dc=com" -w ldap@#123 -f /home/ocdc/diff/ldapbak1115.ldif

    cat ldapuser.ldif

    # create new

    # replace to your own domain name for "dc=***,dc=***" section

    dn: uid=red,ou=People,dc=asiainfo,dc=com

    objectClass: inetOrgPerson

    objectClass: posixAccount

    objectClass: shadowAccount

    cn: Red

    sn: TEST

    userPassword: {SSHA}y6mu044L1WYtDrEGFsqv7UmCWazCIqzx

    loginShell: /bin/bash

    uidNumber: 1602

    gidNumber: 1602

    homeDirectory: /ldapuser/red

    dn: cn=red,ou=Group,dc=asiainfo,dc=com

    objectClass: posixGroup

    cn: Red

    gidNumber: 1602

    memberUid: red

    相关文章

      网友评论

          本文标题:Ldap 小结

          本文链接:https://www.haomeiwen.com/subject/mhptqqtx.html