Centos7 yum安裝OpenLDAP(普通用戶能夠更改密碼)

環境

系統版本:centos7.4html

openldap版本2.4數據庫

安裝和配置

安裝並啓動服務

安裝:vim

yum install openldap openldap-servers openldap-clients

拷貝數據庫配置文件windows

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

 DB_CONIFG中主要是關於Berkeley DB的相關的一些配置centos

 啓動OpenLDAP Server:api

systemctl start slapd 
systemctl enable slapd
systemctl status slapd

slapd即standard alone ldap daemon,該進程默認監聽389端口app

設置root用戶密碼

先用一個命令生成一個LDAP管理用戶root密碼:dom

slappasswd -s 123456
New password:
Re-enter new password:
{SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od  #記住這個,下面會用到

新建一個rootpwd.ldif(名稱是自定義的)的文件:/opt/ldif工具

vi rootpwd.ldif

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od
  • ldif即LDAP Data Interchange Format,是LDAP中數據交換的一種文件格式。文件內容採用的是key-value形式,注意value後面不能有空格。
  • 上面內容中dn即distingush name
  • olc即Online Configuration,表示寫入LDAP後不須要重啓便可生效
  • changetype: modify表示修改一個entry,changetype的值能夠是add,delete, modify等。
  • add: olcRootPW表示對這個entry新增了一個olcRootPW的屬性
  • olcRootPW: {SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od指定了屬性值

下面使用ldapadd命令將上面的rootpwd.ldif文件寫入LDAP:測試

ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.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"

 

導入schema

導入schema,schema包含爲了支持特殊場景相關的屬性,可根據選擇導入,這裏先所有導入:

ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done

 

設定默認域

先使用slappasswd生成一個密碼:

slappasswd -s 123456
New password:
Re-enter new password:
{SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od

新建一個domain.ldif的文件:

複製代碼
vi 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=ceshi,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=ceshi,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=ceshi,dc=com

#這個是admin的密碼設置/若是要修改密碼把這段拿出來 add改爲replace,而後執行 ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldif


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}AtEg7bsctKkWCpeeSdazKcrFCASuU8fP


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=admin,dc=ceshi,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=ceshi,dc=com" write by * read

複製代碼
  • olcAccess即access,該key用於指定目錄的ACL即誰有什麼權限能夠存取什麼
  • olcRootDN設定管理員root用戶的distingush name
  • 注意替換上面文件內容中cn爲具體的域信息
  • olcRootPW用上面新生成的密碼替換

寫入:

複製代碼
ldapmodify -Y EXTERNAL -H ldapi:/// -f domain.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"
複製代碼

 

添加基本目錄

新建一個basedomain.ldif的文件:

複製代碼
 
------原

dn: dc=ceshi,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: ceshi com
dc: ceshi

dn: cn=admin,dc=ceshi,dc=com
objectClass: organizationalRole
cn: admin
description: Directory admin

dn: ou=People,dc=ceshi,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=ceshi,dc=com
objectClass: organizationalUnit
ou: Group

------

dn: dc=ceshi,dc=com
objectclass: dcObject
objectclass: organization
o: Ceshi.Inc
dc: ceshi

dn: cn=admin,dc=ceshi,dc=com
objectClass: organizationalRole
cn: admin
description: Directory admin

dn: ou=it,dc=ceshi,dc=com
ou: it
objectClass: organizationalUnit

dn: cn=hanxiaohui,ou=it,dc=ceshi,dc=com
ou: it
cn: hanxiaohui
sn: hui
userPassword: 123456
objectClass: inetOrgPerson
objectClass: organizationalPerson

複製代碼
  • 注意替換上面文件內容中dn爲具體的域信息
  • 理解dn,cn,dc
    • DC即Domain Component,LDAP目錄相似文件系統目錄dc=zhidaoauto,dc=com至關於/com/zhidaoauto
    • CN即Common Name,CN有可能表明一個用戶名,例如cn=Manager,dc=zhidaoauto,dc=com表示在/com/zhidaoauto域下的管理員用戶Manager
    • OU即Organizational Unit,例如ou=People,dc=zhidaoauto,dc=com表示在/com/zhidaoauto域下的一個組織單元People

 寫入:

複製代碼
ldapadd -x -D cn=admin,dc=ceshi,dc=com -W -f basedomain.ldif
Enter LDAP Password:
adding new entry "dc=zhidaoauto,dc=com"

adding new entry "cn=Manager,dc=zhidaoauto,dc=com"

adding new entry "ou=People,dc=zhidaoauto,dc=com"

adding new entry "ou=Group,dc=zhidaoauto,dc=com"
複製代碼

 

測試:

複製代碼
ldapsearch -LLL -W -x -D "cn=admin,dc=ceshi,dc=com" -H ldap:/// -b "dc=admin,dc=com"
Enter LDAP Password:
dn: dc=zhidaoauto,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: zhidaoauto com
dc: zhidaoauto

dn: cn=Manager,dc=zhidaoauto,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=zhidaoauto,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=zhidaoauto,dc=com
objectClass: organizationalUnit
ou: Group
複製代碼

 

管理工具

能夠在局域網內的windows電腦上下載ldapadmin做爲管理工具 下載地址: http://www.ldapadmin.org/download/ldapadmin.html

知識點:

登陸帳號爲:

登陸ldap的用戶dn爲:cn=Manager,dc=zhidaoauto,dc=com

ou=Group和ou=People的區別:

從ou=Group裏建立的是組,從ou=People建立的是用戶

ou=People裏的用戶怎麼加入到ou=Group下邊的組呢:

右鍵"yunwei"組-->properties

 

 

這樣就把ou=People裏"zhaijunming"用戶添加到ou=Group裏的"yunwei"組了

 

添加用戶:

 

 修改admin密碼

 

1)
[root@localhost /opt/ldif 17:55:41&&31]#slappasswd -s 1q2w3e4r
{SSHA}dYGee/j6y0qOeHqCTgp3vkIGETMOZYkQ

2)
vim changeAdminPwd.ldif (用上面的密碼)
-------------------------------------------------------------
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}AtEg7bsctKkWCpeeSdazKcrFCASuU8fP
--------------------------------------------------------------

3)
ldapadd -Y EXTERNAL -H ldapi:/// -f changeAdminPwd.ldif

  

參考文章

https://blog.frognew.com/2017/05/openldap-install-notes.html#ldapadmin

https://www.cnblogs.com/zhaijunming5/p/9522756.html

相關文章
相關標籤/搜索