Centos7 下Yum安裝OpenLdap

網上的教程一大堆,也沒用具體說明版本,因此不少操做方法都不同,把我踩過的坑記錄下來html

環境:git

Centos7sql

OpenLdap 2.4.44 數據庫

openldap新版本和老版本的配置方法差異特別大apache

安裝步驟vim

1.yum安裝OpenLdap
#yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtoolsapi

2.生成管理密碼
#slappasswd -s Your_P@ssw0rd
{SSHA}J8D5Vzhe1HVmdj3jl83UeT4uO3LPYcUMapp

3.編輯配置dom

#cd /etc/openldap/slapd.d/cn\=configgitlab

修改olcDatabase={2}hdb.ldif文件以下
#vim olcDatabase\=\{2\}hdb.ldif
olcRootPW: {SSHA}J8D5Vzhe1HVmdj3jl83UeT4uO3LPYcUM,這個密碼就是上面生成的管理密碼,而後修改域名信息:
olcSuffix: dc=domain,dc=com
olcRootDN: cn=root,dc=domain,dc=com

 

修改olcDatabase={1}monitor.ldif文件,以下:
#vim olcDatabase\=\{1\}monitor.ldif
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=cn=root,dc=domain,dc=com" read by * none

4.測試一下配置

 #slaptest -u 若是提示success 說明配置文件沒有問題

5.配置OpenLDAP數據庫
#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
注意:/var/lib/ldap/就是BerkeleyDB數據庫默認存儲的路徑。

 

導入基本Schema
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
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

注意:這個根據我的須要,導入本身須要的schema

下面的步驟就是往OpenLdap裏面插入用戶,可作可不作,你也能夠本身用ldap客戶端插入數據,我先把他放在這

添加用戶及用戶組
默認狀況下OpenLDAP是沒有普通用戶的,可是有一個管理員用戶。管理用戶就是前面咱們剛剛配置的root。
如今咱們把系統中的用戶,添加到OpenLDAP中。爲了進行區分,咱們如今新加兩個用戶ldapuser1和ldapuser2,和兩個用戶組ldapgroup1和ldapgroup2,以下:
添加用戶組,使用以下命令:
groupadd ldapgroup1
groupadd ldapgroup2
添加用戶並設置密碼,使用以下命令:
useradd -g ldapgroup1 ldapuser1
useradd -g ldapgroup2 ldapuser2
把剛剛添加的用戶和用戶組提取出來,這包括該用戶的密碼和其餘相關屬性,以下:
grep ":10[0-9][0-9]" /etc/passwd > /root/users
grep ":10[0-9][0-9]" /etc/group > /root/groups
根據上述生成的用戶和用戶組屬性,使用migrate_passwd.pl文件生成要添加用戶和用戶組的ldif,以下:
生成ldif文件以前要先修改vim /usr/share/migrationtools/migrate_common.ph 文件,修改base_dn信息
vim /usr/share/migrationtools/migrate_common.ph
$DEFAULT_BASE = "dc=domain,dc=com";
保存後,執行以下腳本
/usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif
/usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif

配置openldap基礎的數據庫,以下:
cat /root/base.ldif

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

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

dn: ou=OP,dc=domain,dc=com
ou: OP
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=domain,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

執行以下命令導入基礎數據、用戶數據,組數據
ldapadd -x -W -D "cn=root,dc=domain,dc=com" -f /root/base.ldif
ldapadd -x -W -D "cn=root,dc=domain,dc=com" -f /root/usersldif
ldapadd -x -W -D "cn=root,dc=domain,dc=com" -f /root/groups.ldif

用戶和用戶組所有導入完畢後,咱們就能夠查詢OpenLDAP的相關信息。
查詢OpenLDAP所有信息,使用以下命令:
ldapsearch -x -b "dc=domain,dc=com" -H ldap://127.0.0.1
ldapsearch -h 127.0.0.1 -D "cn=root,dc=domain,dc=com" -w "your_password" -b "dc=domain,dc=com" "(uid=testuser)"

參考資料 https://www.ilanni.com/?p=13775

 

 

由於須要在OpenLdap中添加組的功能,因此須要添加memberOf功能,步驟以下

一、在/etc/openldap目錄下新建文件memberof_load_configure.ldif。內容以下:

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulepath: /usr/lib64/openldap
olcModuleload: {0}memberof.la

dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof

說明:上面的參數請根據實際狀況修改(好比32的系統的話olcModulepath爲/usr/lib/openldap)
dn: cn=module{0},cn=config 若是/etc/openldap/slapd.d/cn=config目錄下已經存在cn=module{0}.ldif 文件的話,你就須要修改 module後面的數字了
dn: olcOverlay={0}memberof,olcDatabase={2}bdb,cn=config 這行中 若是上述目錄中沒有olcDatabase={2}bdb.ldif文件就把 olcDatabase={2}bdb改爲olcDatabase={2}hdb
二、執行命令ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_load_configure.ldif。
至此memberof功能添加完成,你能夠用客戶端添加一個group試一下,我這邊添加的group的ldif文件以下

dn: cn=gitlab,ou=Group,dc=domain,dc=com
objectClass: top
objectClass: groupOfNames
cn: gitlab
member: uid=testuser,ou=OP,dc=domain,dc=com

將上面代碼保存爲 addgroup.ldif,而後執行

ldapadd -x -W -D "cn=root,dc=domain,dc=com" -f addgroup.ldif 便可添加成功

可使用ldap的客戶端鏈接試試看下效果,客戶端可使用apache開源的這個,下載地址

http://directory.apache.org/

 

參考資料:

https://blog.csdn.net/tongdao/article/details/52538365http://www.bubuko.com/infodetail-1795667.html

相關文章
相關標籤/搜索