在CentOS 8上安装phpLDAPadmin

在本指南中,我们将学习如何在CentOS 8上安装phpLDAPadmin。 phpLDAPadmin是用PHP编写的用于管理LDAP的Web应用程序,因此它对于以gui为中心的系统管理员非常有用。使用它,您可以通过浏览器管理LDAP。

在继续之前,请通过以下链接了解如何在CentOS 8上安装OpenLDAP。

在CentOS 8上安装和设置OpenLDAP

在CentOS 8上安装phpLDAPadmin

安装PHP和必需的模块

运行以下命令以安装PHP和其他必需的PHP模块。

dnf install php php-cgi php-mbstring php-common php-pear php-{gd,json,zip} php-ldap

安装phpLDAPadmin

phpLDAPadmin在默认的CentOS 8存储库中不可用。此外,它不支持运行上述命令时安装的PHP 7.2。

php -v
PHP 7.2.11 (cli) (built: Oct  9 2018 15:09:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

但是,有人已经努力确保phpLDAPadmin支持PHP 7.2。就是这样 布赖西希。在本指南中,我们将克隆breisig的phpLDAPadmin github存储库,并将其安装在CentOS 8上。

dnf install git
git clone https://github.com/breisig/phpLDAPadmin.git /usr/share/phpldapadmin

这将在下面安装phpLDAPadmin /usr/share/phpldapadmin 目录。

在CentOS 8上配置phpLDAPadmin

安装phpLDAPadmin后,继续进行配置以连接到您的openLDAP服务器。

首先,重命名提供的样本配置文件。

cp /usr/share/phpldapadmin/config/config.php{.example,}

打开配置文件, /usr/share/phpldapadmin/config/config.php 用于编辑;

vim /usr/share/phpldapadmin/config/config.php

向下滚动配置文件到该部分;

/*********************************************
 * Define your LDAP servers in this section  *
 *********************************************/

为您的LDAP服务器定义一个合适的名称。该名称将出现在phpLDAPadmin Web界面上。

$servers->setValue('server','name','Kifarunix-demo LDAP master');

设置您的OpenLDAP地址,它可以是可解析的主机名或IP地址。

$servers->setValue('server','host','192.168.56.152');

如果您的OpenLDAP服务器正在侦听非默认端口,请在此部分下定义端口。 (此处使用默认值)

/* The port your LDAP server listens on (no quotes). 389 is standard. */
// $servers->setValue('server','port',389);

定义您的OpenLDAP基本DN。

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

如果要定义静态绑定DN,请在部分下进行设置。

/* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or
    'cookie','session' or 'sasl' auth_types, LEAVE THE LOGIN_DN AND LOGIN_PASS
    BLANK. If you specify a login_attr in conjunction with a cookie or session
    auth_type, then you can also specify the bind_id/bind_pass here for searching
    the directory for users (ie, if your LDAP server does not allow anonymous
    binds. */
 // $servers->setValue('login','bind_id','');
#  $servers->setValue('login','bind_id','cn=Manager,dc=example,dc=com');

/* Your LDAP password. If you specified an empty bind_id above, this MUST also
   be blank. */
// $servers->setValue('login','bind_pass','');
#  $servers->setValue('login','bind_pass','secret');

在本指南中,我们选择不定义静态绑定DN。阅读上面突出显示的部分。

您也可以定义登录属性。

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

这将需要完整的DN才能登录。

这些只是本指南中进行的一些phpLDAPadmin配置。确保进行配置以满足您的需求。

保存并退出配置文件,并设置适当的所有权,如下所示;

chown -R apache:apache /usr/share/phpldapadmin

为phpLDAPadmin创建Apache

接下来,您需要为phpLDAPadmin创建Web配置,以定义如何从浏览器进行访问。

vim /etc/httpd/conf.d/phpldapadmin.conf
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs


  
    Require all granted
  

保存并退出配置文件。使用此配置,您将必须使用URL在浏览器上访问phpLDAPadmin, http://ldap-server-hostname-OR-IP/phpldapadmin

另一方面,您可以为phpLDAPadmin创建一个Apache VirtualHost,如下所示。确保在配置中进行适当的替换。

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

        ServerName ldapmaster.kifarunix-demo.com
        DocumentRoot /usr/share/phpldapadmin/htdocs
        
        
          
            # Apache 2.4
            Require all granted
          
        
        ErrorLog /var/log/httpd/ldapmaster.kifarunix-demo.com.error.log
        CustomLog /var/log/httpd/ldapmaster.kifarunix-demo.com.access.log combined

使用此配置,您可以使用URL访问phpLDAPadmin, http://ldap-server-hostname-OR-IP

检查apache的语法错误。

httpd -t

如果得到输出, Syntax OK,那您就好了。否则,请先解决任何错误,然后再继续。

配置防火墙D

允许外部访问firewalld上的Apache(如果正在运行)。

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

配置SELinux

如果SELinux正在运行,请运行以下命令;

允许httpd连接到网络。

setsebool -P httpd_can_network_connect 1

允许httpd连接到OpenLDAP服务器。

setsebool -P httpd_can_connect_ldap 1

直接从ldap解析用户passwd条目

setsebool -P authlogin_nsswitch_use_ldap 1

允许系统与NIS一起运行。

setsebool -P nis_enabled 1

运行Apache

启动并启用Apache以在系统启动时运行。

systemctl enable --now httpd

在CentOS 8上访问phpLDAPadmin

现在,您可以使用该网址从任何浏览器访问phpLDAPadmin。 http://server-hostname-or-IP/phpldapadmin 要么 http://server-hostname-or-IP 取决于您的配置。

这将带您使用phpLDAPadmin Web界面。

请点击 登录 在您的LDAP服务器名称的正下方,以获取登录界面。要登录,您可以指定您的DN,例如, cn=admin,dc=ldapmaster,dc=kifarunix-demo,dc=com

在CentOS 8上安装phpLDAPadmin

成功登录后,您应该能够看到LDAP结构。

在CentOS 8上安装phpLDAPadmin

如果通过单击架构,您将看到以下错误;

我们找不到您的SCHEMA的尝试失败(对像类)

phpLDAPadmin CentOS 8我们尝试找到您的SCHEMA的尝试失败(对像类)

然后,您需要在前端LDAP数据库上启用对Subschema的匿名读取访问,以解决此问题。

如果您按照我们的指南在上面提供了链接的CentOS 8上安装和设置OpenLDAP服务器,那么我们当前在前端数据库上的访问控制列表是:

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={-1}frontend)' olcAccess
dn: olcDatabase={-1}frontend,cn=config
olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=externa
 l,cn=auth" manage  by * none

要允许任何人读取LDAP模式,您只需要将以下ACL添加到前端数据库中作为第一个ACL。

to dn.base="cn=Subschema" by * read

使用LDIF文件来实现此更改。

vim read-access-to-subschema.ldif
dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to dn.base="cn=Subschema" by * read

更新数据库。

ldapadd -H ldapi:/// -Y EXTERNAL -f read-access-to-subschema.ldif

再次列出访问控制列表。

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={-1}frontend)' olcAccess
dn: olcDatabase={-1}frontend,cn=config
olcAccess: {0}to dn.base="cn=Subschema" by * read
olcAccess: {1}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=externa
 l,cn=auth" manage  by * none

重新启动LDAP和Apache Service。

systemctl restart httpd slapd

现在,您应该能够读取您的OpenLDAP架构和目录树,以及使用phpLDAPadmin从Web管理OpenLDAP服务器。

在CentOS 8上安装phpLDAPadmin

这标志着我们有关如何在CentOS 8上安装phpLDAPadmin的指南的结尾。

相关的OpenLDAP教程

实施OpenLDAP密码策略

配置ownCloud OpenLDAP身份验证

如何通过OpenLDAP服务器配置SUDO

配置基于OpenLDAP主机的身份验证

Sidebar