zoukankan      html  css  js  c++  java
  • openldap 双主模式部署

    规划两台机器

    系统版本centos7.5

    master1上部署ldap:

       

    一、安装启动openldap软件

    yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

    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
    systemctl enable slapd
    
    systemctl start slapd
    
    systemctl status slapd

    二、配置openldap管理员密码

      先自行生成秘钥  >>>>>  命令: slappassword -s "密码"  本文用root@123

    编写ldif文件 添加进去密码字段

      

    cat >/root/chrootpw.ldif << EOF
    #specify the password generated above for “olcRootPW” section
    dn: olcDatabase={0}config,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}FC/YWM2DGSuhn5vuKaK92pF1EwGVdznj  #根据自行生成的秘钥修改
    EOF
    
    ldapadd -Y EXTERNAL -H ldapi:/// -f /root/chrootpw.ldif

    三、导入相关openldap属性

      

    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

     四、修改openldap的基本配置

    cat > /root/chdomain.ldif << EOF
    
    # replace to your own domain name for "dc=***,dc=***" section
    # specify the password generated above for "olcRootPW" section
    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=root,dc=ztjy,dc=com" read by * none
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=ztjy,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=root,dc=ztjy,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}cm/LXtPjAlGzPWta+Yn3mKiDH53rVfMD  #管理员密码  自行生成修改
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcAccess
    olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=root,dc=ztjy,dc=com" write by anonymous auth by self write by * none
    olcAccess: {1}to dn.base="" by * read
    olcAccess: {2}to * by dn="cn=root,dc=ztjy,dc=com" write by * read
    EOF


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

    五、导入基础数据库

    cat >/root/basedomain.ldif <<  EOF
    
    # replace to your own domain name for "dc=***,dc=***" section
    dn: dc=root,dc=com
    objectClass: top
    objectClass: dcObject
    objectclass: organization
    o: Server Com
    dc: root
    
    dn: cn=root,dc=root,dc=com
    objectClass: organizationalRole
    cn: root
    description: Directory root
    
    dn: ou=People,dc=root,dc=com
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Group,dc=root,dc=com
    objectClass: organizationalUnit
    ou: Group
    
    EOF
    如下导入basedomain.ldif文件时需要输入的密码是root@123
     ldapadd -x -D cn=Manager,dc=huanqiu,dc=com -W -f basedomain.ldif
    

    六、导入用户及用户组

      

    cat > /root/user.ldif << EOF
    # create new
    # replace to your own domain name for "dc=***,dc=***" section
    dn: uid=kevin,ou=People,dc=huanqiu,dc=com
    objectClass: inetOrgPerson
    objectClass: posixAccount
    objectClass: shadowAccount
    cn: Kevin
    sn: Linux
    userPassword: {SSHA}NKGiugr+3ceSiv3tkgKYU5w5ywpDy/bP  #自行修改
    loginShell: /bin/bash
    uidNumber: 1000
    gidNumber: 1000
    homeDirectory: /home/kevin
    
    dn: cn=kevin,ou=Group,dc=huanqiu,dc=com
    objectClass: posixGroup
    cn: Kevin
    gidNumber: 1000
    memberUid: kevin
    EOF
    ldapadd -x -D cn=Manager,dc=huanqiu,dc=com -W -f ldapuser.ldif   导入用户 输入管理员密码


    至此,master上配置已完成,可以用ldap管理工具去链接 管理员账号 cn=root,dc=ztjy,dc=com 密码:root@123

    master2上配置:

    一、安装启动openldap软件

    yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

    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
    systemctl enable slapd
    
    systemctl start slapd
    
    systemctl status slapd

    二、配置openldap管理员密码

      先自行生成秘钥  >>>>>  命令: slappassword -s "密码"  本文用root@123

    编写ldif文件 添加进去密码字段

      

    cat >/root/chrootpw.ldif << EOF
    #specify the password generated above for “olcRootPW” section
    dn: olcDatabase={0}config,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}FC/YWM2DGSuhn5vuKaK92pF1EwGVdznj  #根据自行生成的秘钥修改
    EOF
    
    ldapadd -Y EXTERNAL -H ldapi:/// -f /root/chrootpw.ldif

    三、导入相关openldap属性

      

    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

     四、修改openldap的基本配置

    cat > /root/chdomain.ldif << EOF
    
    # replace to your own domain name for "dc=***,dc=***" section
    # specify the password generated above for "olcRootPW" section
    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=root,dc=ztjy,dc=com" read by * none
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=ztjy,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=root,dc=ztjy,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}cm/LXtPjAlGzPWta+Yn3mKiDH53rVfMD  #管理员密码  自行生成修改
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcAccess
    olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=root,dc=ztjy,dc=com" write by anonymous auth by self write by * none
    olcAccess: {1}to dn.base="" by * read
    olcAccess: {2}to * by dn="cn=root,dc=ztjy,dc=com" write by * read
    EOF


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

     

    配置双主复制,在主1和主2上执行下面的步骤

    添加syncprov模块

    添加syncprov模块
    [root@test1] ~/ldif$ vim mod_syncprov.ldif 
    # create new
    dn: cn=module,cn=config
    objectClass: olcModuleList
    cn: module
    olcModulePath: /usr/lib64/openldap
    olcModuleLoad: syncprov.la
    
    [root@test1 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=module,cn=config
    [root@test1] ~/ldif$ vim syncprov.ldif 
    # create new
    dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
    objectClass: olcOverlayConfig
    objectClass: olcSyncProvConfig
    olcOverlay: syncprov
    olcSpSessionLog: 100
    
    [root@test1 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "olcOverlay=syncprov,olcDatabase={2}hdb,cn=config"

    在主1和主2上执行下面的步骤,但是注意需要替换olcServerID和provider的值

      

    [root@test1] ~/ldif$ vim master01.ldif 
    # create new
    dn: cn=config
    changetype: modify
    replace: olcServerID
    # specify uniq ID number on each server
    olcServerID: 0                      #主2上替换为1
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcSyncRepl
    olcSyncRepl: rid=001
      provider=ldap://192.168.255.125:389/               #主2上替换为192.168.255.124:389
      bindmethod=simple
      binddn="cn=root,dc=ztjy,dc=com"
      credentials=123456              #明文密码 可以选择加密的
      searchbase="dc=ztjy,dc=com"
      scope=sub
      schemachecking=on
      type=refreshAndPersist
      retry="30 5 300 3"
      interval=00:00:05:00
    -
    add: olcMirrorMode
    olcMirrorMode: TRUE
    
    dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
    changetype: add
    objectClass: olcOverlayConfig
    objectClass: olcSyncProvConfig
    olcOverlay: syncprov
    
    ####[root@test1 ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f master01.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    modifying entry "cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    adding new entry "olcOverlay=syncprov,olcDatabase={2}hdb,cn=config"
    至此双主已搭建完成.


    取消匿名用户登录ldif文件:
      
    cat > /root/disable_anon.ldif << EOF
    dn: cn=config
    changetype: modify
    add: olcDisallows
    olcDisallows: bind_anon
    
    dn: cn=config
    changetype: modify
    add: olcRequires
    olcRequires: authc
    
    dn: olcDatabase={-1}frontend,cn=config
    changetype: modify
    add: olcRequires
    olcRequires: authc
    EOF
    ldapadd -Y EXTERNAL -H ldapi:/// -f /root/disable_anon.ldif
    修改超级管理员密码ldif文件:
    slappasswd -s 新密码
    cat > /root/newpasswd.ldif << EOF
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootPW
    olcRootPW: {SSHA}jPCXoLxOgasTDuWx9eNdZS0nrqd242oc  #根据生成更改
    
    EOF
    
    ldapmodify -H ldapi:// -Y EXTERNAL -f /root/newpasswd.ldif

      开启openldap日志功能

    cat > /root/loglevel.ldif << “EOF”
    dn: cn=config
    changetype: modify
    replace: olcLogLevel
    olcLogLevel: stats
    EOF
    
    ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/loglevel.ldif
    
    systemctl restart slapd
    cat >> /etc/rsyslog.conf << EOF
    
    local4.* /var/log/slapd.log
    
    EOF
    
    systemctl restart rsyslog



      

    
    
    

      

  • 相关阅读:
    linux ssh免密
    flink WaterMark之TumblingEventWindow
    flink 并行计数器实现
    VSCode删除重复的空行
    Gnome添加Open with Code菜单
    Linux下设置VSCode为默认的文本编辑器
    Jupyter Notebook添加Ruby支持
    Linux下无法运行Color picker
    oh-my-zsh: bracketed-paste-magic:zle:47: not enough arguments for -U
    Vim auto-pairs设置选项
  • 原文地址:https://www.cnblogs.com/cy0917/p/10248260.html
Copyright © 2011-2022 走看看