在Ubuntu 16.04和CentOS 7上安装和配置phpLDAPadmin

时间:2020-02-23 14:31:05  来源:igfitidea点击:

通过遵循本指南,学习在Ubuntu 16.04和CentOS 7上安装和配置phpLDAPadmin。如果我们一直在管理OpenLDAP,则必须了解使用本机OpenLDAP管理命令(如ldapadd,ldapdelete,ldapmodify,ldapsearch等)的挑战和复杂性。

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

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

在CentOS 7上安装OpenLDAP

安装epel-release,更新yum缓存并安装OpenLDAPpackages。

$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

启动并启用密码

$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值替换为命令lappasswd输出中给出的哈希密码。

为管理员用户应用新密码:

# 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

启动并启用httpd服务:

# systemctl start httpd   && systemctl enable httpd

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

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

安装phpLDAPadmin:

yum -y安装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

安装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 /。

单击左上角的登录名:

使用Letsencrypt保护phpLDAPadmin:

现在我们已经安装并正在运行phpLDAPadmin,让我们继续为服务器主机名配置Letsencrypt SSL证书。这将确保对phpLDAPadmin的所有通信都进行加密。让我们继续在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以及可能的http到https重定向配置apache:

为Apache和HTTP到HTTP重定向配置Apache

在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 theitroad@localhost

# 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 theitroad@localhost
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> https://ldap.example.com/ldapadmin访问phpLDAPadmin,并且如果通过http://ldap.example.com/ldapadmin访问它,则应该从http重定向到https。