在 Rocky Linux 8 上安装 phpLDAPadmin

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

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

在 Rocky Linux 8 上安装和设置 OpenLDAP

在 Rocky Linux 8 上安装 phpLDAPadmin

安装所需的第三方存储库

一些必需的软件包,例如 phpLDAPadmin 和 php-ldap 模块,在默认的 Rocky Linux 8 存储库中不可用。

因此,您需要安装一些第三方存储库。

  • 在 Rocky Linux 上安装 EPEL 存储库:
dnf install epel-release
  • 安装 Lux YUM 存储库,它提供 phpLDAPadmin 包:
dnf install https://repo.iotti.biz/CentOS/8/noarch/lux-release-8-1.noarch.rpm
  • 安装 Remi 存储库,它提供所需的 PHP-LDAP 模块:
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

启用 PHP 7.4 Remi 模块

dnf module reset php
dnf module enable php:remi-7.4

在 Rocky Linux 8 上安装 phpLDAPadmin

一旦存储库就位,然后运行以下命令在 Rocky Linux 8 上安装 phpLDAPadmin。

dnf install phpldapadmin
Dependencies resolved. ============================================================================================================================================================================  Package                                   Architecture                       Version                                        Repository                                Size ============================================================================================================================================================================ Installing:  phpldapadmin                              noarch                             1.2.6.2-1.el8.lux                              lux                                      799 k Installing dependencies:  oniguruma5php                             x86_64                             6.9.7.1-1.el8.remi                             remi-safe                                210 k  php-common                                x86_64                             7.4.20-1.el8.remi                              remi-modular                             1.2 M  php-fpm                                   x86_64                             7.4.20-1.el8.remi                              remi-modular                             1.6 M  php-gd                                    x86_64                             7.4.20-1.el8.remi                              remi-modular                              93 k  php-json                                  x86_64                             7.4.20-1.el8.remi                              remi-modular                              77 k  php-ldap                                  x86_64                             7.4.20-1.el8.remi                              remi-modular                              97 k  php-mbstring                              x86_64                             7.4.20-1.el8.remi                              remi-modular                             529 k  php-xml                                   x86_64                             7.4.20-1.el8.remi                              remi-modular                             215 k  Transaction Summary ============================================================================================================================================================================ Install  9 Packages  Total download size: 4.8 M Installed size: 26 M Is this ok [y/N]: y 

在 Rocky Linux 8 上配置 phpLDAPadmin

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

首先,备份提供的默认配置文件;

cp /etc/phpldapadmin/config.php{,.orig}

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

vim /etc/phpldapadmin/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.60.29');

如果您的 OpenLDAP 服务器正在侦听非默认端口,请取消注释下面突出显示的行并定义端口。 (默认端口,这里使用389/tcp)

/* 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,则在section下设置;

/* 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。 阅读上面突出显示的部分。

定义 phpLDAPadmin 登录属性。 我们在本指南中使用 dn。 如果需要,您可以使用 uid。

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

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

这些只是本指南中所做的一些 phpLDAPadmin 配置。 请务必进行配置以满足您的需求。

为 phpLDAPadmin 创建 Web 服务器配置

首先,您需要一个 Web 服务器,它可以是 Apache 或 Nginx 以便能够从 Web 浏览器访问 phpLDAPadmin。

我们用 Apache 在这个设置中。 因此安装它。

dnf install httpd

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

cat > /etc/httpd/conf.d/phpldapadmin.conf << 'EOL' Alias /phpldapadmin /usr/share/phpldapadmin/htdocs  <Directory /usr/share/phpldapadmin/htdocs>   <IfModule mod_authz_core.c>     Require all granted   </IfModule> </Directory> EOL

Save 并退出配置文件。

使用此配置,您将必须使用 URL 在浏览器上访问 phpLDAPadmin, https://ldap-server-hostname-OR-IP/phpldapadmin.

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

cat > /etc/httpd/conf.d/phpldapadmin.conf 'EOL' <VirtualHost *:80>         ServerName ldapmaster.kifarunix-demo.com         DocumentRoot /usr/share/phpldapadmin/htdocs                  <Directory /usr/share/phpldapadmin/htdocs>           <IfModule mod_authz_core.c>             # Apache 2.4             Require all granted           </IfModule>         </Directory>         ErrorLog /var/log/httpd/phpldapadmin.error.log         CustomLog /var/log/httpd/phpldapadmin.access.log combined </VirtualHost> EOL

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

设置文档根的正确所有权,如下所示;

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

检查 apache 是否存在语法错误。

httpd -t

如果你得到输出, Syntax OK,那你就可以走了。 否则,在继续之前修复任何错误。

配置防火墙D

允许外部访问 Apache 在 firewalld 上,如果它正在运行。

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 解析用户密码条目

setsebool -P authlogin_nsswitch_use_ldap 1

允许系统与 NIS 一起运行。

setsebool -P nis_enabled 1

跑步 Apache

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

systemctl enable --now httpd

在 Rocky Linux 8 上访问 phpLDAPadmin

您现在可以使用 url 从任何浏览器访问 phpLDAPadmin。 https://server-hostname-or-IP/phpldapadmin 或者 https://server-hostname-or-IP 取决于您的配置。

这将带您进入 phpLDAPadmin Web 界面。

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

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

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

我们试图找到您的 SCHEMA 失败(对象类)

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

如果您按照我们的指南在上面提供了链接的 Rocky Linux 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 服务。

systemctl restart httpd slapd

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

这标志着我们关于如何在 Rocky Linux 8 上安装 phpLDAPadmin 的指南结束。

相关 OpenLDAP 教程

在 Rocky Linux 8 上为 LDAP 身份验证配置 SSSD

设置 Apache 鳄梨酱 OpenLDAP 身份验证

在 pfSense 上配置 Squid 代理 OpenLDAP 身份验证