在Ubuntu 16.04和CentOS 7上安装和配置phpLDAPadmin
通过遵循本指南,学习在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。