CentOS 7搭建openldap+phpldapadmin

寫在前面:
本文引用http://blog.51cto.com/11555417/2065747內容,筆者依照該博客內容進行Openladp的搭建,遇到問題也記錄下來,分享給大家.
1.初始化準備
系統centos7 64位
配置yum源

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和防火牆

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。

2.安裝OpenLDAP
使用如下命令安裝OpenLDAP:

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。

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

3.1.配置OpenLDAP管理員密碼
設置OpenLDAP的管理員密碼:

slappasswd -s 123456

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

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

vi /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文件,如下:

vi /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文件,如下:

vi /usr/share/migrationtools/migrate_common.ph
$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

添加用戶並設置密碼,ldpauser1和ldpuser2密碼均設置爲123456,使用如下命令

useradd -g ldapgroup1 ldapuser1
useradd -g ldapgroup2 ldapuser2
passwd ldapuser1
passwd 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基礎的數據庫,如下(注意有空行,原博客沒加,一直會報錯ldap_add: Type Or Value Exists):

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 "123456" -D  "cn=Manager,dc=hbgd,dc=com" -f /root/base.ldif

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

ldapadd -x -w "123456" -D "cn=Manager,dc=hbgd,dc=com" -f /root/users.ldif

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

ldapadd -x -w "123456" -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 "123456" -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 "123456" -b 'dc=hbgd,dc=com' 'cn=ldapgroup1'

通過上圖,我們可以很明顯的看出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

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');

修改phpldapamdin.conf文件,讓所有IP都能否訪問

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

    <Directory /usr/share/phpldapadmin/htdocs>
  <IfModule mod_authz_core.c>
    # Apache 2.4
    Require all granted
  </IfModule>
  <IfModule !mod_authz_core.c>
    # Apache 2.2
    Order Allow,Deny
    Allow from all
  </IfModule>
</Directory>

設置開機自啓並啓動Apache:

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

瀏覽器訪問phpldapadmin:
http://(localhost或服務器地址)/phpldapadmin/
用戶名:cn=Manager,dc=hbgd,dc=com
密碼:設定的管理員密碼
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章