CentOS7.x 安裝 openldap 服務
标簽(空格分隔): 運維系列
[toc]
一: 安裝openladp 配置
1.1:系統環境介紹
環境
系統版本:centos7.4
openldap版本2.4
安裝和配置
安裝并啟動服務
1.2 安裝openldap服務
yum install openldap openldap-servers openldap-clients
拷貝資料庫配置檔案
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的相關的一些配置
啟動OpenLDAP Server:
systemctl start slapd
systemctl enable slapd
systemctl status slapd
slapd即standard alone ldap daemon,該程序預設監聽389端口
1.3 配置openldap服務
設定root使用者密碼
先用一個指令生成一個LDAP管理使用者root密碼:
slappasswd -s 123456
New password:
Re-enter new password:
{SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od #記住這個,下面會用到
----
{SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo
----
建立一個rootpwd.ldif(名稱是自定義的)的檔案:/root/ldif
mkdir -p /root/ldif
cd /root/ldif
vim rootpwd.ldif
---
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo
----
1) ldif即LDAP Data InterchangeFormat,是LDAP中資料交換的一種檔案格式。檔案内容采用的是key-value形式,注意value後面不能有空格。
2)上面内容中dn即distingush name
3)olc即Online Configuration,表示寫入LDAP後不需要重新開機即可生效
changetype: modify表示修改一個entry,changetype的值可以是add,delete, modify等。
4)add: olcRootPW表示對這個entry新增了一個olcRootPW的屬性
olcRootPW: {SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od指定了屬性值
下面使用ldapadd指令将上面的rootpwd.ldif檔案寫入LDAP:
ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldif
導入schema
導入schema,schema包含為了支援特殊場景相關的屬性,可根據選擇導入,這裡先全部導入:
ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done
1.4 導入domain
建立一個domain.ldif的檔案:
vim 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=flyfish,dc=com" read by * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=flyfish,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=flyfish,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}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=flyfish,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=flyfish,dc=com" write by * read
----
1.5 添加條目
添加基本目錄
建立一個basedomain.ldif的檔案:
vim basedomain.ldif
----
注意替換上面檔案内容中dn為具體的域資訊了解dn,cn,dc
DC即Domain Component,LDAP目錄類似檔案系統目錄dc=flyfish,dc=com相當于/com/
flyfish
CN即Common Name,CN有可能代表一個使用者名,例如cn=Manager,dc=flyfish,dc=com表示在/com/flyfish域下的管理者使用者Manager
OU即Organizational Unit,例如ou=People,dc=flyfish,dc=com表示在/com/flyfish域下的一個組織單元People
寫入:
ldapadd -x -D cn=admin,dc=flyfish,dc=com -W -f basedomain.ldif
測試:
ldapsearch -LLL -W -x -D "cn=admin,dc=flyfish,dc=com" -H ldap:/// -b "dc=flyfish,dc=com"
##二:ldap 用戶端工具連接配接
2.1 ldapadmin windows 用戶端工具連接配接
ldap 用戶端連結:
管理工具
可以在區域網路内的windows電腦上下載下傳ldapadmin作為管理工具 下載下傳位址: http://www.ldapadmin.org/download/ldapadmin.html
2.2 phpldapadmin 配置部署
phpldapadmin 配置:
一、phpldapadmin安裝
1、安裝Apache PHP
yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml
php需使用5版本,phpldapadmin是基于php5開發,若使用其他php版本,會出現相容性支援問題,如password_hash問題
2、修改httpd通路端口
# vim /etc/httpd/conf/httpd.conf
Listen 80
修改為
Listen 58100
如果主機已經啟用 80 端口要改端口如果沒有啟用就預設用80 不用改
安裝phpldapadmin
# wget https://nchc.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.tgz
tar -zxvf phpldapadmin-1.2.3.tgz
mv phpldapadmin-1.2.3 /var/www/html/phpldapadmin
編輯config.php
cd /var/www/html/phpldapadmin/config
cp -p config.php.example config.php
vim config.php
---
修改:
$servers->newServer('ldap_pla');
$servers->setValue('server','name','My LDAP Server');
$servers->setValue('server','host','192.168.100.14');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=flyfish,dc=com'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=flyfish,dc=com');
$servers->setValue('login','bind_pass','123456');
---
serivce httpd restart
打開web頁面:
http://192.168.100.14/phpldapadmin