linux7 openldap,centos7 openldap主从部署安装
安裝說明:
從OpenLDAP2.4.23版本開始所有配置數據都保存在slapd.d目錄中,不再使用slapd.conf作為配置文件
有兩種配置方式,一種是通過修改slapd.conf,再用slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/導入。一種是通過編輯ldif文件,再用ldapadd命令導入。本文采用第二種方式,這種方式網上文檔比較少,不好弄
如果使用第一種方法,centos7系統yum安裝后沒有slapd.conf.obsolete文件,可以選擇從centos6上復制過來
安裝環境
centos 7.3
ldap主1服務器:test1 192.168.255.124
ldap主2服務器:test2 192.168.255.125
OpenLDAP2.4.44
一、安裝ldap服務器端,在主1和主2執行下面的步驟
1、安裝
[root@test1] ~$ yum install openldap openldap-servers openldap-clients compat-openldap
#可以通過rpm -ql ,來查看每個安裝包都有哪些文件
openldap: #OpenLDAP配置文件、庫和文檔
openldap-servers: #服務器進程及相關命令、遷移腳本和相關文件
openldap-clients: #客戶端進程及相關命令,用來訪問和修改 OpenLDAP 目錄
compat-openldap: #與主從配置相關
#安裝過程中會自動創建ldap用戶和ldap組
#復制數據庫模板
[root@test1] ~$ cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@test1] ~$ chown ldap. /var/lib/ldap/DB_CONFIG
[root@test1] ~$ systemctl enable slapd
[root@test1] ~$ systemctl start slapd
[root@test1] /etc/openldap/slapd.d/cn=config$ netstat -tunlp |grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 62756/slapd
tcp6 0 0 :::389 :::* LISTEN 62756/slapd
#ldap服務端進程為slapd,端口389,默認情況下數據為明文傳輸,添加ssl配置后為密文數據傳輸,端口636
2、使用 slappasswd 命令生成管理員(admin)密碼,編寫 LDIF(一種LDAP 專用的數據交換格式)文件并通過ldapadd命令將管理員密碼導入到 LDAP配置文件中
[root@test1] ~$ slappasswd
New password:
Re-enter new password:
{SSHA}BXTlwAUMwVSgqHr0WlIEud3iu9ddjvQE
[root@test1] ~$ vim chrootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}BXTlwAUMwVSgqHr0WlIEud3iu9ddjvQE
[root@test1] ~$ ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
3.我們需要向 LDAP 中導入一些基本的 Schema。這些 Schema 文件位于 /etc/openldap/schema/ 目錄中,schema控制著條目擁有哪些對象類和屬性
[root@test1] /etc/openldap/schema$ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"
[root@test1] /etc/openldap/schema$ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"
[root@test1] /etc/openldap/schema$ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"
4、配置 LDAP 的根域(以 dc=baidu,dc=com 為例)及其管理域:
# 編輯
[root@test1] ~$ vim chdomain.ldif
#用你自己的域名代替"dc=***,dc=***"語句塊
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=baidu,dc=com" read by * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=baidu,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=baidu,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}BXTlwAUMwVSgqHr0WlIEud3iu9ddjvQE
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=admin,dc=baidu,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=badiu,dc=com" write by * read
#導入
[root@test1] ~$ ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying 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"
5、在上述基礎上,我們來創建一個叫做 baidu company 的組織,并在其下創建一個 admin 的組織角色(該角色內的用戶具有管理整個 LDAP 的權限)和 People 和 Group 兩個組織單元:
[root@test1] ~$ vim basedomain.ldif
dn: dc=baidu,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: Baidu Company
dc: baidu
dn: cn=admin,dc=baidu,dc=com
objectClass: organizationalRole
cn: admin
dn: ou=People,dc=baidu,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=baidu,dc=com
objectClass: organizationalRole
cn: Group
[root@test1] ~$ ldapadd -x -D cn=admin,dc=baidu,dc=com -W -f basedomain.ldif
Enter LDAP Password: #輸入上面設置的管理員密碼(明文)
adding new entry "dc=baidu,dc=com"
adding new entry "cn=admin,dc=baidu,dc=com"
adding new entry "ou=People,dc=baidu,dc=com"
adding new entry "ou=Group,dc=baidu,dc=com"
通過以上的所有步驟,我們就設置好了一個 LDAP 目錄樹:其中基準 dc=baidu,dc=com 是該樹的根節點,其下有一個管理域 cn=admin,dc=baidu,dc=com 和兩個組織單元 ou=People,dc=baidu,dc=com 及 ou=Group,dc=baidu,dc=com。
至此ldap1服務器端已配置完成。
接下來,我們來創建一個叫作tom 的員工并將其分配到 SRE 組來驗證上述配置是否生效。
[root@test1] ~$ vim ldapuser.ldif
dn: uid=tom,ou=People,dc=baidu,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: tom
cn: tom
sn: tom
userPassword: {SSHA}i62EIL9tklQjQJvO8PrxEyGVidSUL8Fq
uidNumber: 1100
gidNumber: 1100
homeDirectory: /home/tom
dn: cn=SRE,ou=Group,dc=baidu,dc=com
objectClass: posixGroup
cn: SRE
gidNumber: 1100
memberUid: SRE
[root@test1] ~$ ldapadd -x -D cn=admin,dc=baidu,dc=com -W -f ldapuser.ldif
Enter LDAP Password:
adding new entry "uid=tom,ou=People,dc=baidu,dc=com"
adding new entry "cn=SRE,ou=Group,dc=baidu,dc=com"
我們也可以使用 ldapsearch 命令來查看 LDAP 目錄服務中的所有條目信息:
[root@test1] ~$ ldapsearch -x -b "dc=baidu,dc=com" -H ldap://127.0.0.1
刪除條目
ldapdelete -x -W -D 'cn=admin,dc=baidu,dc=com' "uid=tom,ou=People,dc=baidu,dc=com"
二、配置雙主復制,在主1和主2上執行下面的步驟
添加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=admin,dc=baidu,dc=com"
credentials=123456 #明文密碼
searchbase="dc=baidu,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"
配置ldap客戶端監聽所有的ldap服務器(?)
authconfig --ldapserver=192.168.255.124,192.168.255.125 --update
三、測試(我測試沒通過,上一步應該不正確或者不完整,待續)
在主1上進行測試
1)添加一個test用戶,然后分別在兩個節點上進行查詢操作,test.ldif參考上文。
[root@test1 ~]# ldapadd -x -D "cn=admin,dc=baidu,dc=com" -W -f test.ldif
adding new entry "uid=test,ou=People,dc=baidu,dc=com"
[root@test1] ~$ ldapsearch -x -b "dc=baidu,dc=com" -H ldap://127.0.0.1|grep uid=test
[root@test2] ~$ ldapsearch -x -b "dc=baidu,dc=com" -H ldap://127.0.0.1|grep uid=test
2)刪除test用戶,然后分別在兩個節點上進行查詢操作
[root@test1 ~]# ldapdelete -x -D "cn=admin,dc=baidu,dc=com" -W "uid=test,ou=People,dc=baidu,dc=com"
[root@test1 ~]# ldapsearch -x -H ldap://127.0.0.1 -b "dc=baidu,dc=com" |grep uid=test
[root@test2 ~]# ldapsearch -x -H ldap://127.0.0.1 -b "dc=baidu,dc=com" |grep uid=test
在主2上測試
同上
至此雙主部署完成
參考文章:
總結
以上是生活随笔為你收集整理的linux7 openldap,centos7 openldap主从部署安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 八大排序-志宇
- 下一篇: 安利2019年度10 款最优雅实用的「生