centos7搭建openldap+phpldapadmin

參考:http://www.javashuo.com/article/p-zhrqehzq-nt.html
https://www.ilanni.com/?p=13775
openldap-server的數據必須用原配的Berkeley DB,不能使用mysql做爲後端數據庫
openldap的操做語法比較複雜,推薦使用phpldapadmin管理配置,同時也能夠用windows下ldapadmin程序進行配置php

1.初始化準備

系統centos7 64位
配置yum源html

wget http://mirrors.aliyun.com/repo/Centos-7.repo
    cp Centos-7.repo /etc/yum.repos.d/
    cd /etc/yum.repos.d/
    mv CentOS-Base.repo CentOS-Base.repo.bak
    mv Centos-7.repo CentOS-Base.repo
    yum clean all
    yum makecache

關閉selinux和防火牆mysql

sed -i ‘/SELINUX/s/enforcing/disabled/’ /etc/selinux/config && setenforce 0&& systemctl disable firewalld.service && systemctl stop firewalld.service && shutdown -r now

centos7搭建openldap+phpldapadmin
環境初始化完畢後,咱們就能夠安裝OpenLDAP。linux

2.安裝OpenLDAP

使用以下命令安裝OpenLDAP:sql

yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

centos7搭建openldap+phpldapadmin
查看OpenLDAP版本,使用以下命令:數據庫

slapd -VV

centos7搭建openldap+phpldapadmin
OpenLDAP安裝完畢後,接下來咱們開始配置OpenLDAP。vim

3.配置OpenLDAP

OpenLDAP配置比較複雜牽涉到的內容比較多,接下來咱們一步一步對其相關的配置進行介紹。
注意:從OpenLDAP2.4.23版本開始全部配置數據都保存在/etc/openldap/slapd.d/中,建議再也不使用slapd.conf做爲配置文件。windows

3.1.配置OpenLDAP管理員密碼

設置OpenLDAP的管理員密碼:後端

slappasswd -s ******

centos7搭建openldap+phpldapadmin
上述加密後的字段保存下,等會咱們在配置文件中會使用到。centos

3.2.修改olcDatabase={2}hdb.ldif文件

Vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
修改olcDatabase={2}hdb.ldif文件,對於該文件增長一行
olcRootPW: {SSHA}o1bqtofUr95dkEDdXbAMAVPFSnNDU3+2,而後修改域信息:
olcSuffix: dc=hbgd,dc=com
olcRootDN: cn=Manager,dc=hbgd,dc=com

centos7搭建openldap+phpldapadmin
注意:其中cn=Manager中的Manager表示OpenLDAP管理員的用戶名,而olcRootPW表示OpenLDAP管理員的密碼。

3.3.修改olcDatabase={1}monitor.ldif文件

修改olcDatabase={1}monitor.ldif文件,以下:
vim /etc/openldap/slapd.d/cn=config/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=Manager,dc=hbgd,dc=com」 read by * none

centos7搭建openldap+phpldapadmin
注意:該修改中的dn.base是修改OpenLDAP的管理員的相關信息的。
驗證OpenLDAP的基本配置,使用以下命令:

slaptest -u

經過上圖,咱們能夠很明顯的看出OpenLDAP的基本配置是沒有問題。
啓動OpenLDAP服務,使用以下命令:

systemctl enable slapd
systemctl start slapd
systemctl status slapd

centos7搭建openldap+phpldapadmin
OpenLDAP默認監聽的端口是389,下面咱們來看下是否是389端口,以下:

netstat -antup | grep 389

centos7搭建openldap+phpldapadmin
經過上圖,咱們能夠很明顯的看出OpenLDAP確實是監聽的是389端口。

3.4.配置OpenLDAP數據庫

OpenLDAP默認使用的數據庫是BerkeleyDB,如今來開始配置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
ll /var/lib/ldap/

注意:/var/lib/ldap/就是BerkeleyDB數據庫默認存儲的路徑。

3.5.導入基本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

centos7搭建openldap+phpldapadmin

3.6.修改migrate_common.ph文件

migrate_common.ph文件主要是用於生成ldif文件使用,修改migrate_common.ph文件,以下:

vim /usr/share/migrationtools/migrate_common.ph +71
$DEFAULT_MAIL_DOMAIN = 「hbgd.com」;
$DEFAULT_BASE = 「dc=hbgd,dc=com」;
$EXTENDED_SCHEMA = 1;

centos7搭建openldap+phpldapadmin
到此OpenLDAP的配置就已經所有完畢,下面咱們來開始添加用戶到OpenLDAP中。

4.添加用戶及用戶組

默認狀況下OpenLDAP是沒有普通用戶的,可是有一個管理員用戶。管理用戶就是前面咱們剛剛配置的root。
如今咱們把系統中的用戶,添加到OpenLDAP中。爲了進行區分,咱們如今新加兩個用戶ldapuser1和ldapuser2,和兩個用戶組ldapgroup1和ldapgroup2,以下:
添加用戶組,使用以下命令:

groupadd ldapgroup1
groupadd ldapgroup2

添加用戶並設置密碼,使用以下命令

useradd -g ldapgroup1 ldapuser1
useradd -g ldapgroup2 ldapuser2
echo ‘123456’ | passwd –stdin ldapuser1
echo ‘123456’ | passwd –stdin ldapuser2

把剛剛添加的用戶和用戶組提取出來,這包括該用戶的密碼和其餘相關屬性,以下

grep 「:10[0-9][0-9]」 /etc/passwd > /root/users
grep 「:10[0-9][0-9]」 /etc/group > /root/groups

centos7搭建openldap+phpldapadmin
根據上述生成的用戶和用戶組屬性,使用migrate_passwd.pl文件生成要添加用戶和用戶組的ldif,以下:

/usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif
/usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif
cat users.ldif
cat groups.ldif

centos7搭建openldap+phpldapadmin
注意:後續若是要新加用戶到OpenLDAP中的話,咱們能夠直接修改users.ldif文件便可。

5.導入用戶及用戶組到OpenLDAP數據庫

配置openldap基礎的數據庫,以下:

cat > /root/base.ldif << EOF
dn: dc=hbgd,dc=com
o: hbgd com
dc: hbgd
objectClass: top
objectClass: dcObject
objectclass: organization
dn: cn=Manager,dc=hbgd,dc=com
cn: Manager
objectClass: organizationalRole
description: Directory Manager
dn: ou=People,dc=hbgd,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=hbgd,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
EOF

centos7搭建openldap+phpldapadmin
導入基礎數據庫,使用以下命令:

ldapadd -x -w 「xxxxxx」 -D 「cn=Manager,dc=hbgd,dc=com」 -f /root/base.ldif

centos7搭建openldap+phpldapadmin
導入用戶到數據庫,使用以下命令:

ldapadd -x -w 「xxxxx」 -D 「cn=Manager,dc=hbgd,dc=com」 -f /root/users.ldif

centos7搭建openldap+phpldapadmin
導入用戶組到數據庫,使用以下命令

ldapadd -x -w 「xxxxx」 -D 「cn=Manager,dc=hbgd,dc=com」 -f /root/groups.ldif

centos7搭建openldap+phpldapadmin

6.把OpenLDAP用戶加入到用戶組

儘管咱們已經把用戶和用戶組信息,導入到OpenLDAP數據庫中了。但實際上目前OpenLDAP用戶和用戶組之間是沒有任何關聯的。
若是咱們要把OpenLDAP數據庫中的用戶和用戶組關聯起來的話,咱們還須要作另外單獨的配置。
如今咱們要把ldapuser1用戶加入到ldapgroup1用戶組,須要新建添加用戶到用戶組的ldif文件,以下:

cat > add_user_to_groups.ldif << 「EOF」
dn: cn=ldapgroup1,ou=Group,dc=hbgd,dc=com
changetype: modify
add: memberuid
memberuid: ldapuser1
EOF

執行以下命令:

ldapadd -x -w 「xxxxxx」 -D 「cn=Manager,dc=hbgd,dc=com」 -f /root/add_user_to_groups.ldif

centos7搭建openldap+phpldapadmin
查詢添加的OpenLDAP用戶組信息,以下:

ldapsearch -LLL -x -D ‘cn=Manager,dc=hbgd,dc=com’ -w 「xxxxx」 -b ‘dc=hbgd,dc=com’ ‘cn=ldapgroup1’

centos7搭建openldap+phpldapadmin
經過上圖,咱們能夠很明顯的看出ldapuser1用戶已經加入到ldapgroup1用戶組了。

7.開啓OpenLDAP日誌訪問功能

默認狀況下OpenLDAP是沒有啓用日誌記錄功能的,可是在實際使用過程當中,咱們爲了定位問題須要使用到OpenLDAP日誌。
新建日誌配置ldif文件,以下:

cat > /root/loglevel.ldif << 「EOF」
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
EOF

centos7搭建openldap+phpldapadmin
導入到OpenLDAP中,並重啓OpenLDAP服務,以下:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/loglevel.ldif
systemctl restart slapd

centos7搭建openldap+phpldapadmin
修改rsyslog配置文件,並重啓rsyslog服務,以下:

cat >> /etc/rsyslog.conf << 「EOF」
local4.* /var/log/slapd.log
EOF
systemctl restart rsyslog

查看OpenLDAP日誌,以下:

tail -f /var/log/slapd.log

centos7搭建openldap+phpldapadmin

8..安裝和配置LDAP管理工具PHPldapadmin

首先安裝Apache和PHP:

[root@localhost ~]# yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml

而後安裝phpldapadmin:

[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum --enablerepo=epel -y install phpldapadmin

修改配置文件

[root@localhost ~]# vim /etc/phpldapadmin/config.php
#397行取消註釋,398行添加註釋
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');

[root@localhost ~]# vim /etc/httpd/conf.d/phpldapadmin.conf

// 修改配置
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
#添加一行內容,指定可訪問的ip段(雖然我也不知道爲何,但不填不能運行這個管理工具,我就直接寫的本地ip)
Require ip 172.31.101.110
</IfModule>

設置開機自啓並啓動Apache:

[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start httpd

 瀏覽器訪問phpldapadmin:
http://(localhost或服務器地址)/phpldapadmin/
用戶名:cn=Manager,dc=hbgd,dc=com
密碼:設定的管理員密碼
centos7搭建openldap+phpldapadmin
centos7搭建openldap+phpldapadmin

相關文章
相關標籤/搜索