龙空技术网

openldap(CentOS7下ldap主从安装配置)

丁志雪 91

前言:

当前同学们对“centos主从配置文件”都比较重视,咱们都需要分析一些“centos主从配置文件”的相关资讯。那么小编也在网络上收集了一些有关“centos主从配置文件””的相关资讯,希望朋友们能喜欢,我们快快来了解一下吧!

开始安装

参考:

注意:

主节点需要配置:basedomain.ldif、chdomain.ldif、chrootpw.ldif、ldapuser.ldif(用户及用户组)、loglevel.ldif(配置日志)

从节点配置(导入基础数据库、导入用户、导入用户组和用户加入到用户组都不需要):chdomain.ldif、chrootpw.ldif、loglevel.ldif

Step 1:安装必要包

首先使用如下命令查看是否已经安装 OpenLDAP:

# rpm -qa | grep openldapopenldap-2.4.40-13.el7.x86_64openldap-servers-2.4.40-13.el7.x86_64openldap-clients-2.4.40-13.el7.x86_64

若已经安装过,可以忽略此步骤,否则请继续执行如下命令(可以根据需要选择是否安装迁移工具 migrationtools):

# yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtoolscp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIGchown ldap. /var/lib/ldap/DB_CONFIGchown ldap:ldap -R /var/lib/ldapchmod 700 -R /var/lib/ldapsystemctl start slapd systemctl enable slapd

查看端口使用情况:

# netstat -tlnp | grep slapdtcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      227/slapd           tcp6       0      0 :::389                  :::*                    LISTEN      227/slapd

默认情况下, slapd 用户会占用 389 端口。

Step 2:设置 OpenLDAP 的管理员密码

首先要生成经处理后的明文密码:

# slappasswd  New password: Re-enter new password: {SSHA}hnm8WDAp0mn2HgN26h6ZdbzFVtFATQhG

其中 {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx 就是加密处理后的明文密码,之后会用到这个密码。

之后再新建如下文件:

touch chrootpw.ldifecho "dn: olcDatabase={0}config,cn=config" >> chrootpw.ldifecho "changetype: modify" >> chrootpw.ldifecho "add: olcRootPW" >> chrootpw.ldifecho "olcRootPW: {SSHA}f+8HYXQoEnCF5TEuAAXB9Kdy3fWyvn7K" >> chrootpw.ldif

最后导入该文件:

# ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldifSASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "olcDatabase={0}config,cn=config"
Step 3:导入基本 Schema

(可以有选择地导入)

ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldifldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldifldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/inetorgperson.ldif
Step 4:设置自己的 Domain Name

首先要生成经处理后的目录管理者明文密码:

# slappasswdNew password: Re-enter new password: {SSHA}ZhmO2UeH4tsyy5ly0fTwdkO10WJ69V6U

之后,再新建如下文件:

vim chdomain.ldif

文件内容如下,注意,要使用你自己的域名替换掉文件中所有的 "dc=,dc=",并且使用chrootpw.ldif文件中的密码,替换文中的 "olcRootPW" 部分:

# replace to your own domain name for "dc=***,dc=***" section# specify the password generated above for "olcRootPW" sectiondn: olcDatabase={1}monitor,cn=configchangetype: modifyreplace: olcAccessolcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"  read by dn.base="cn=root,dc=baidu,dc=com" read by * nonedn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcSuffixolcSuffix: dc=baidu,dc=comdn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcRootDNolcRootDN: cn=root,dc=baidu,dc=comdn: olcDatabase={2}hdb,cn=configchangetype: modifyadd: olcRootPWolcRootPW: {SSHA}f+8HYXQoEnCF5TEuAAXB9Kdy3fWyvn7Kdn: olcDatabase={2}hdb,cn=configchangetype: modifyadd: olcAccessolcAccess: {0}to attrs=userPassword,shadowLastChange by  dn="cn=root,dc=baidu,dc=com" write by anonymous auth by self write by * noneolcAccess: {1}to dn.base="" by * readolcAccess: {2}to * by dn="cn=root,dc=baidu,dc=com" write by * read

之后再导入该文件:

# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif  SASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "olcDatabase={1}monitor,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"

然后再新建如下文件:

vim basedomain.ldif

文件内容如下,注意,要使用你自己的域名替换掉文件中所有的 "dc=,dc=":

# replace to your own domain name for "dc=***,dc=***" sectiondn: dc=baidu,dc=comobjectClass: topobjectClass: dcObjectobjectclass: organizationo: Server Worlddc: baidudn: cn=root,dc=baidu,dc=comobjectClass: organizationalRolecn: rootdescription: Directory Managerdn: ou=People,dc=baidu,dc=comobjectClass: organizationalUnitou: Peopledn: ou=Group,dc=baidu,dc=comobjectClass: organizationalUnitou: Group

最后导入该文件:

# ldapadd -x -D cn=root,dc=baidu,dc=com -W -f basedomain.ldifEnter LDAP Password: adding new entry "dc=baidu,dc=com"adding new entry "cn=root,dc=baidu,dc=com"adding new entry "ou=People,dc=baidu,dc=com"adding new entry "ou=Group,dc=baidu,dc=com"
Step 5:允许防火墙访问 LDAP 服务。

开启 389/TCP 端口(根据你自己的防火墙进行设置):

若使用的是 firewall,修改方法如下:

# firewall-cmd --add-service=ldap --permanent success# firewall-cmd --reload success

若使用的是 iptables,修改方法如下:

vim /etc/sysconfig/iptables

追加如下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 389 -j ACCEPT

同样的,修改 ipv6 的防火墙文件,并追加相同的内容:

vim /etc/sysconfig/ip6tables

追加如下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 389 -j ACCEPT

最后重启防火墙:

systemctl restart iptablessystemctl restart ip6tables
Step 6:开启openldap日志功能
#cat > /root/loglevel.ldif << EOFdn: cn=configchangetype: modifyreplace: olcLogLevelolcLogLevel: statsEOF#ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/loglevel.ldif#systemctl restart slapd
#cat >> /etc/rsyslog.conf << EOFlocal4.* /var/log/slapd.logEOF#systemctl restart rsyslog#touch /var/log/slapd.log#tail -f /var/log/slapd.log
OpenLDAP Server 中添加用户添加用户

首先要生成经处理后的明文密码:

# slappasswdNew password: Re-enter new password: {SSHA}8TEZlcfO0LLcnby7zDGYkNdd2fiysP4X

之后再新建如下文件:

vim ldapuser.ldif

文件内容如下,注意,要使用你自己的域名替换掉文件中所有的 "dc=,dc=",并且使用刚刚生成的密码,替换文中的 "userPassword" 部分:

# create new# replace to your own domain name for "dc=***,dc=***" sectiondn: uid=ldapuser01,ou=People,dc=baidu,dc=comobjectClass: inetOrgPersonobjectClass: posixAccountobjectClass: shadowAccountcn: ldapuser01sn: LinuxuserPassword: {SSHA}H+Au54NmBYHGj6zMVJXcH1Q6O6Yu9villoginShell: /bin/bashuidNumber: 1000gidNumber: 1000homeDirectory: /home/ldapuser01dn: cn=ldapuser01,ou=Group,dc=baidu,dc=comobjectClass: posixGroupcn: ldapuser01gidNumber: 1000memberUid: ldapuser01
# ldapadd -x -D cn=root,dc=baidu,dc=com -W -f ldapuser.ldif  Enter LDAP Password: adding new entry "uid=ldapuser01,ou=People,dc=baidu,dc=com"adding new entry "cn=ldapuser01,ou=Group,dc=baidu,dc=com"
删除 LDAP 用户或组

删除用户:

ldapdelete -x -W -D 'cn=root,dc=baidu,dc=com' "uid=ldapuser01,ou=People,dc=baidu,dc=com"

删除组:

ldapdelete -x -W -D 'cn=root,dc=baidu,dc=com' "cn=ldapuser01,ou=Group,dc=baidu,dc=com"
配置主从:

参考:

主从服务器配置:

新建如下文件:

touch syncprov_mod.ldif 

文件内容如下,

dn: cn=module,cn=configobjectClass: olcModuleListcn: moduleolcModulePath: /usr/lib64/openldapolcModuleLoad: syncprov.la
ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov_mod.ldif

然后新建文件:

touch syncprov.ldif

文件内容如下:

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=configobjectClass: olcOverlayConfigobjectClass: olcSyncProvConfigolcOverlay: syncprovolcSpSessionLog: 100
ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov.ldif
主节点:

新建如下文件:

touch rp.ldif 

文件内容如下,

dn: cn=configchangetype: modifyreplace: olcServerIDolcServerID: 0  #主节点olcServerID配置为0,从节点为1开始dn: olcDatabase={2}hdb,cn=configchangetype: modifyadd: olcSyncReplolcSyncRepl: rid=100    #同步进程号  provider=ldap://172.18.0.253:389   #从节点ldap的ip加端口  bindmethod=simple  #简单的认证方式  binddn=" cn=root,dc=baidu,dc=com"  #管理员明文密码  credentials=123456  searchbase=" dc=baidu,dc=com"  filter="(objectClass=*)"  scope=sub  schemachecking=on  type=refreshAndPersist  retry=” 5 5 300 3″  attrs=” *,+”  interval=00:00:05:00-add: olcMirrorModeolcMirrorMode: TRUE-add: olcDbIndexolcDbIndex: entryUUID eq-add: olcDbIndexolcDbIndex: entryCSN eqdn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=configchangetype: addobjectClass: olcOverlayConfigobjectClass: olcSyncProvConfigolcOverlay: syncprov
ldapadd -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif
从节点01:

新建如下文件:

touch rp.ldif 

文件内容如下,

dn: cn=configchangetype: modifyreplace: olcServerIDolcServerID: 1dn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcSyncReplolcSyncRepl: rid=100   provider=ldap://172.18.0.230:389  bindmethod=simple  binddn=" cn=root,dc=baidu,dc=com"  credentials=123456  searchbase=" dc=baidu,dc=com"  filter="(objectClass=*)"  scope=sub  schemachecking=on  type=refreshAndPersist  retry="60 +″  attrs=” *,+”  interval=00:00:00:10-add: olcMirrorModeolcMirrorMode: TRUE-add: olcDbIndexolcDbIndex: entryUUID eq-add: olcDbIndexolcDbIndex: entryCSN eqdn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=configchangetype: addobjectClass: olcOverlayConfigobjectClass: olcSyncProvConfigolcOverlay: syncprov
ldapadd -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif
从节点02:

新建文件:

touch rp.ldif

文件内容配置:

dn: cn=configchangetype: modifyreplace: olcServerIDolcServerID: 2dn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcSyncReplolcSyncRepl: rid=123#改变进程号rid的值即可配置其他的从节点  provider=ldap://172.18.0.230:389  bindmethod=simple  binddn=" cn=root,dc=baidu,dc=com"  credentials=123456  searchbase=" dc=baidu,dc=com"  filter="(objectClass=*)"  scope=sub  schemachecking=on  type=refreshAndPersist  retry="60 +″  attrs=” *,+”  interval=00:00:00:10-add: olcMirrorModeolcMirrorMode: TRUE-add: olcDbIndexolcDbIndex: entryUUID eq-add: olcDbIndexolcDbIndex: entryCSN eq-dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=configchangetype: addobjectClass: olcOverlayConfigobjectClass: olcSyncProvConfigolcOverlay: syncprov
ldapadd -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif

标签: #centos主从配置文件 #centos7上ldap启动