CentOS 7部署OpenLDAP+phpLDAPadmin實現統一認證


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#linux

安裝OpenLDAP

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


安裝後查看ldap版本信息

slapd -VV

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_02


設置OpenLDAP的管理員密碼
slappasswd -s ******

加密後的字段保存下來,後續在配置文件中會用到

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_03


修改olcDatabase={2}hdb.ldif文件
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif

修改olcSuffix、olcRootDN這兩行,cn 表示openldap管理員用户名

dc表示域名的部分,格式將完整的域名分成幾部分,如域名是example.com,分為dc=example,dc=com

在最後一行添加olcRootPW+上一步生成的密碼,olcRootPW表示OpenLDAP管理員的密碼

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#centos_04


修改olcDatabase={1}monitor.ldif文件
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif

修改此處的cn,dc為自己設置的cn,dc

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_05


驗證配置

slaptest -u

checksum忽略即可,testing succeeded即為成功

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#linux_06


啓動openldap

systemctl enable slapd
systemctl start slapd
systemctl status slapd

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_07

OpenLDAP默認監聽的端口是389

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_php_08


配置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

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_09


導入Schema

schema文件位於/etc/openldap/schema/下
schema控制着條目擁有哪些對象類和屬性,可自行根據需求導入,通常導入前3即可

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

驗證

ll /etc/openldap/schema/

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#centos_10


配置基礎數據庫

修改migrate_common.ph文件
migrate_common.ph文件主要是用於生成ldif文件使用
vim /usr/share/migrationtools/migrate_common.ph

$DEFAULT_MAIL_DOMAIN = “test.com”;
$DEFAULT_BASE = “dc=test,dc=com”;
$EXTENDED_SCHEMA = 1;

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#linux_11


配置openldap基礎的數據庫
mkdir /etc/openldap/onlineldif -p

vim /etc/openldap/onlineldif/base.ldif

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

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

dn: ou=People,dc=test,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

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

導入基礎庫

ldapadd -x -D "cn=Manager,dc=test,dc=com" -f ./base.ldif -w "前面slappasswd設置的密碼"

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_php_12

驗證
ldapsearch -x -b 'dc=test,dc=com' '(objectClass=*)'|grep Success

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_13


安裝phpldapadmin

yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml phpldapadmin

vim /etc/httpd/conf.d/phpldapadmin.conf

#
#  Web-based tool for managing LDAP servers
#

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs

<Directory /usr/share/phpldapadmin/htdocs>
  <IfModule mod_authz_core.c>
    # Apache 2.4
    #Require local
    #Require ip 10.10.xx 指定可訪問的ip段
    Require all granted
  </IfModule>
  <IfModule !mod_authz_core.c>
    # Apache 2.2
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
  </IfModule>
</Directory>

配置phpldapadmin登錄方式

vim /etc/phpldapadmin/config.php

cn為使用用户名登陸

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#linux_14

460行,關閉匿名登錄
$servers->setValue('login','anon_bind',false);

519行,保證用户屬性的唯一性
$servers->setValue('unique','attrs',array('mail','uid','uidNumber','cn','sn'));


設置開機自啓並啓動

systemctl restart httpd
systemctl enable httpd

使用phpldapadmin

http://服務器地址/phpldapadmin/

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_15


cn:Manager

密碼:設定的管理員密碼

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_16

賬户管理方式:Group下創建組,People下創建賬户。不同平台創建不同的組,將賬户添加到相應的組,一個賬户可有多個組,使一個賬户和密碼可登陸多個平台。


點擊“創建新條目”,創建基礎域

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#linux_17

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_18

提交

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_php_19


在Test下新建一個組

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_20


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_php_21


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#linux_22


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_23


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_24


新建用户

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_25

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_26


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#centos_27


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_28

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_php_29


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#centos_30


用zabbix測試LDAP認證

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#centos_31


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_32


CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_vim_33


配置用户

用户名稱必須是LDAP中已經存在的用户

密碼隨便寫,登陸用的是ldap中的密碼

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#centos_34

配置羣組

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#centos_35


驗證

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#linux_36

登錄成功,實現統一認證

CentOS7 安裝OpenLDAP 及 PhpLDAPAdmin_#運維_37