# 主节点配置:basedomain.ldif、chdomain.ldif、chrootpw.ldif、ldapuser.ldif(用户及用户组)、loglevel.ldif(配置日志) # 从节点配置:chdomain.ldif、chrootpw.ldif、loglevel.ldif(导入基础数据库、导入用户、导入用户组和用户加入到用户组都不需要) 1.配置openLDAP 1.1 安装并启动ldap # 可以根据需要选择是否安装迁移工具 migrationtools: 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. /var/lib/ldap/DB_CONFIG chown ldap:ldap -R /var/lib/ldap chmod 700 -R /var/lib/ldap systemctl start slapd systemctl enable slapd # 查看端口使用情况: # 默认情况下, slapd 用户会占用 389 端口。 netstat -tlnp | grep slapd tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 227/slapd tcp6 0 0 :::389 :::* LISTEN 227/slapd 1.2 设置 OpenLDAP 的管理员密码 # 首先要生成经处理后的明文密码: slappasswd New password: Re-enter new password: {SSHA}hnm8WDAp0mn2HgN26h6ZdbzFVtFATQhG # 其中{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx就是加密处理后的明文密码,之后会用到这个密码。 # 新建chrootpw.ldif文件(注意:ldif格式非常严格,行首行位均不能出现空格): cat > chrootpw.ldif << EOF dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}hnm8WDAp0mn2HgN26h6ZdbzFVtFATQhG EOF # 导入该文件: ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif 1.3 导入基本 Schema(可以有选择的导入) ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/inetorgperson.ldif 1.4 设置自己的 Domain Name # 新建chdomain.ldif文件: # 文件内容如下,使用自己的域名替换掉文中所有的 "dc=***,dc=***",并且使用chrootpw.ldif文件中的密码,替换文中的 "olcRootPW" 部分: cat > chdomain.ldif << EOF 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=example,dc=com" read by * none dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=example,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=root,dc=example,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}f+8HYXQoEnCF5TEuAAXB9Kdy3fWyvn7K dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=root,dc=example,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=example,dc=com" write by * read EOF # 导入该文件: ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif # 新建basedomain.ldif文件: # 文件内容如下,使用自己的域名替换掉文件中所有的 "dc=***,dc=***": cat > basedomain.ldif << EOF dn: dc=example,dc=com objectClass: top objectClass: dcObject objectclass: organization o: Server World dc: example dn: cn=root,dc=example,dc=com objectClass: organizationalRole cn: root description: Directory Manager dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Group,dc=example,dc=com objectClass: organizationalUnit ou: Group EOF # 导入该文件: ldapadd -x -D cn=root,dc=example,dc=com -W -f basedomain.ldif 1.5 允许防火墙访问 LDAP 服务 # 开启 389/TCP 端口(根据你自己的防火墙进行设置): # 若使用的是 firewall,修改方法如下: firewall-cmd --add-service=ldap --permanent success firewall-cmd --reload success # 若使用的是 iptables,修改方法如下: echo "-A INPUT -p tcp -m state --state NEW -m tcp --dport 389 -j ACCEPT" >> /etc/sysconfig/iptables echo "-A INPUT -p tcp -m state --state NEW -m tcp --dport 389 -j ACCEPT" >> /etc/sysconfig/ip6tables systemctl restart iptables systemctl restart ip6tables 1.6 开启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 # OpenLDAP Server 中添加用户 1.7 添加用户 # 首先要生成经处理后的明文密码: slappasswd New password: Re-enter new password: {SSHA}8TEZlcfO0LLcnby7zDGYkNdd2fiysP4X # 新建文件: # 文件内容如下,使用自己的域名替换掉文件中所有的 "dc=***,dc=***",并且使用刚刚生成的密码,替换文中的 "userPassword" 部分: cat > ldapuser.ldif << EOF dn: uid=ldapuser01,ou=People,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: ldapuser01 sn: Linux userPassword: {SSHA}8TEZlcfO0LLcnby7zDGYkNdd2fiysP4X loginShell: /bin/bash uidNumber: 1000 gidNumber: 1000 homeDirectory: /home/ldapuser01 dn: cn=ldapuser01,ou=Group,dc=example,dc=com objectClass: posixGroup cn: ldapuser01 gidNumber: 1000 memberUid: ldapuser01 EOF # 导入该文件: ldapadd -x -D cn=root,dc=example,dc=com -W -f ldapuser.ldif 1.8 删除 LDAP 用户或组 # 删除用户: ldapdelete -x -W -D 'cn=root,dc=example,dc=com' "uid=ldapuser01,ou=People,dc=example,dc=com" # 删除组: ldapdelete -x -W -D 'cn=root,dc=example,dc=com' "cn=ldapuser01,ou=Group,dc=example,dc=com" 2.配置主从 2.1 主从服务器配置(主从服务器都需要配置) cat > syncprov_mod.ldif << EOF dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: /usr/lib64/openldap olcModuleLoad: syncprov.la EOF ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov_mod.ldif cat > syncprov.ldif << EOF dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpSessionLog: 100 EOF ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov.ldif 2.2 主节点(主节点olcServerID配置为0,从节点为1开始) cat > rp.ldif << EOF dn: cn=config changetype: modify replace: olcServerID olcServerID: 0 dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcSyncRepl olcSyncRepl: rid=100 #同步进程号 provider=ldap://172.18.0.253:389 #从节点ldap的ip加端口 bindmethod=simple #简单的认证方式 binddn=" cn=root,dc=example,dc=com" #管理员明文密码 credentials=123456 searchbase=" dc=example,dc=com" filter="(objectClass=*)" scope=sub schemachecking=on type=refreshAndPersist retry=” 5 5 300 3″ attrs=” *,+” interval=00:00:05:00 - add: olcMirrorMode olcMirrorMode: TRUE - add: olcDbIndex olcDbIndex: entryUUID eq - add: olcDbIndex olcDbIndex: entryCSN eq dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov EOF ldapadd -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif 2.3 从节点01 cat > rp.ldif << EOF dn: cn=config changetype: modify replace: olcServerID olcServerID: 1 dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSyncRepl olcSyncRepl: rid=100 provider=ldap://172.18.0.230:389 bindmethod=simple binddn=" cn=root,dc=example,dc=com" credentials=123456 searchbase=" dc=example,dc=com" filter="(objectClass=*)" scope=sub schemachecking=on type=refreshAndPersist retry="60 +″ attrs=” *,+” interval=00:00:00:10 - add: olcMirrorMode olcMirrorMode: TRUE - add: olcDbIndex olcDbIndex: entryUUID eq - add: olcDbIndex olcDbIndex: entryCSN eq dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov EOF ldapadd -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif 2.4 从节点02(改变进程号rid的值即可配置其他的从节点) cat > rp.ldif << EOF dn: cn=config changetype: modify replace: olcServerID olcServerID: 2 dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSyncRepl olcSyncRepl: rid=123 provider=ldap://172.18.0.230:389 bindmethod=simple binddn=" cn=root,dc=example,dc=com" credentials=123456 searchbase=" dc=example,dc=com" filter="(objectClass=*)" scope=sub schemachecking=on type=refreshAndPersist retry="60 +″ attrs=” *,+” interval=00:00:00:10 - add: olcMirrorMode olcMirrorMode: TRUE - add: olcDbIndex olcDbIndex: entryUUID eq - add: olcDbIndex olcDbIndex: entryCSN eq - dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov EOF ldapadd -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif
OpenLDAP安装配置及主从复制
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
下一篇:OpenLDAP安装及可视化部署
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
mysql主从复制运行原理及配置
mysql主从复制是一种高可用的解决方案
mysql 主从复制 配置