本文将介绍如何在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/”:
点击左上角的“登录”:
使用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将非常有用。
相关主题 |