云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 16.04和CentOS 7上安装配置OpenLDAP和phpLDAPadmin的方法

在Ubuntu 16.04和CentOS 7上安装配置OpenLDAP和phpLDAPadmin的方法

2019-03-03 16:03:32作者:彭即元稿源:云网牛站

本文将介绍如何在CentOS 7和Ubuntu 16服务器上安装OpenLDAP,然后继续安装和配置phpLDAPadmin。

 

简介

如果你一直在管理OpenLDAP,那么你必须意识到使用本机OpenLDAP管理命令(例如ldapadd、ldapdelete、ldapmodify、ldapsearch)的挑战和复杂性。

phpLDAPadmin是一个用PHP编写的Web应用程序,用于管理轻量级目录访问协议服务器,phpLDAPadmin根据GNU通用公共许可证获得许可,OpenLDAP是OpenLDAP项目开发的轻量级目录访问协议的免费开源实现。

 

在CentOS 7上安装OpenLDAP

安装epel-release,更新yum缓存并安装OpenLDAP包:

$ sudo yum -y install epel-release

$ sudo yum clean all && yum makecache fast && yum update

$ sudo yum -y install openldap-servers openldap-clients

复制数据库配置:

$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG 

$ sudo chown ldap. /var/lib/ldap/DB_CONFIG

启动并启用slapd密码:

$ sudo systemctl start slapd && sudo systemctl enable slapd

生成OpenLDAP管理员密码:

$ sudo su -

# slappasswd 

New password:

Re-enter new password:

{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx

创建包含要设置的密码的change_pw.ldif文件:

# cat  change_pw.ldif

dn: olcDatabase={0}config,cn=config

changetype: modify

add: olcRootPW

olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx

将olcRootPW值替换为命令slappasswd输出中给出的散列密码。

为admin用户应用新密码:

# ldapadd -Y EXTERNAL -H ldapi:/// -f   change_pw.ldif

在防火墙上打开ldap和ldaps服务:

# firewall-cmd --add-service={ldap,ldaps} --permanent

# firewall-cmd --reload

 

在Ubuntu 16.04上安装OpenLDAP

更新apt缓存并安装OpenLDAP包:

$ sudo su -

# apt-get update && apt-get -y install slapd ldap-utils

# slapcat

 

在CentOS 7上安装phpLDAPadmin

安装Apache Web服务器和PHP:

# yum -y install httpd php php-mbstring php-pear

参考:在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

启动并启用httpd服务:

# systemctl start httpd   && systemctl enable httpd

在防火墙上打开HTTP和HTTPS端口:

# firewall-cmd --add-service={http,https} --permanent

# firewall-cmd --reload

安装phpLDAPadmin:

# yum -y install epel-release

# yum -y install phpldapadmin

编辑/etc/phpldapadmin/config.php:

$servers->setValue('server','name','Local LDAP Server');

$servers->setValue('server','base', array('dc=example,dc=com'));

$servers->setValue('login','attr','dn');

//$servers->setValue('login','attr','uid');

重启httpd:

# systemctl restart httpd

 

在Ubuntu 16.04上安装phpLDAPadmin

可参考Ubuntu 18.04/16.04上配置LDAP客户端,附安装phpLDAPadmin的方法

安装Apache 2和php:

# apt-get -y install apache2  php php-cgi libapache2-mod-php php-mbstring php-common php-pear

安装phpLDAPadmin:

# apt-get -y install phpldapadmin

修改/etc/apache2/conf-enabled/phpldapadmin.conf上的访问权限:

Order deny,allow

Deny from all

Allow from 127.0.0.1 private-subnet/24

重启apache:

# systemctl restart apache2

要访问phpLDAPadmin,你必须从允许的网络中的客户端访问“http://(服务器的主机名或IP地址)/ldapadmin/”:

在Ubuntu 16.04和CentOS 7上安装配置OpenLDAP和phpLDAPadmin的方法

点击左上角的“登录”:

在Ubuntu 16.04和CentOS 7上安装配置OpenLDAP和phpLDAPadmin的方法

 

使用Letsencrypt保护phpLDAPadmin

现在你已经安装并运行了phpLDAPadmin,让我们继续为服务器主机名配置Letsencrypt SSL证书,这将确保加密到phpLDAPadmin的所有流量,参考在阿里云服务器CentOS上Apache安装SSL证书配置https的方法,让我们继续在Ubuntu和CentOS 7上安装certbot。

在CentOS 7和Ubuntu 16.04上安装certbot:

$ sudo su -

$ wget https://dl.eff.org/certbot-auto -P /usr/local/bin

$ chmod a+x /usr/local/bin/certbot-auto

确保在CentOS 7的防火墙上打开https端口:

# firewall-cmd --add-service https --permanent

# firewall-cmd --reload

然后需要停止httpd服务。

在CentOS上:

$ sudo systemctl stop httpd

在Ubuntu 16.04上:

$ sudo systemctl stop apache2

然后生成Letsencrypt SSL证书。

申请SSL证书:

$ sudo su -

# export DOMAIN=`hostname -f`

# export EMAIL="notification-email-address"

# certbot certonly --standalone -d $DOMAIN --preferred-challenges http --agree-tos \

-n -m $EMAIL --keep-until-expiring

生成证书后,为https配置apache,并为httpps重定向配置http。

在CentOS上,要修改的文件位于/etc/httpd/conf.d/phpldapadmin.conf下,在Ubuntu上,该文件位于/etc/apache2/conf-enabled/phpldapadmin.conf下,请相应更新此文件:

#

# Web-based tool for managing LDAP servers

#

<VirtualHost *:80>

ServerName ldap.example.com

ServerAlias ldap

ServerAdmin admin@example.com

# Redirect http to https

Redirect / https://ldap.example.com/

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs

Alias /ldapadmin /usr/share/phpldapadmin/htdocs

</VirtualHost>

<Directory /usr/share/phpldapadmin/htdocs>

AllowOverride None

Require ip 192.168.10.20

Require ip 192.168.10.21

</Directory>

# HTTPS section

<VirtualHost *:443>

ServerName ldap.example.com

ServerAlias ldap

ServerAdmin admin@example.com

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs

Alias /ldapadmin /usr/share/phpldapadmin/htdocs

SSLEngine on

SSLCertificateFile /etc/letsencrypt/live/ldap.example.com/fullchain.pem

SSLCertificateKeyFile /etc/letsencrypt/live/ldap.example.com/privkey.pem

</VirtualHost>

注意:将所有出现的ldap.example.com替换为服务器主机名,将192.168.10.20,192.168.10.21替换为允许访问的IP,如果你没有进行任何限制,可以将其删除,应将域example.com替换为你的真实域名,完成所有更改后,重新启动Apache Web服务。

在CentOS 7上:

$ sudo systemctl restart httpd

在Ubuntu 16.04上:

$ sudo systemctl retsart apache2

现在可以通过https://ldap.example.com/ldapadmin访问phpLDAPadmin,如果你通过http://ldap.example.com/ldapadmin访问它,应该可以从http重定向到https了。

 

结语

phpLDAPadmin是一个很好的工具,可以用于任何使用OpenLDAP的LDAP管理员,如果你还是OpenLDAP的新手,那么phpLDAPadmin将非常有用。

 

相关主题

在Ubuntu 18.04或CentOS 7系统上安装PHP 7.3

精选文章
热门文章