在 Ubuntu 14.04 服务器上安装和配置 OpenLDAP 和 phpLDAPadmin 的方法

简介: 在 Ubuntu 14.04 服务器上安装和配置 OpenLDAP 和 phpLDAPadmin 的方法

简介

LDAP,即轻量级目录访问协议,是一种设计用于管理和访问集中式分层文件和目录结构中相关信息的协议。

在某些方面,它的操作方式类似于关系型数据库,但这并不适用于所有情况。分层结构是数据关联方式的主要区别。它可以用来存储任何类型的信息,通常作为集中式认证系统的一个组件。

在本指南中,我们将讨论如何在 Ubuntu 14.04 服务器上安装和配置 OpenLDAP 服务器。然后,我们将安装和保护 phpLDAPadmin 接口,以提供一个简单的 Web 接口。

安装 LDAP 和辅助工具

在开始之前,我们必须安装必要的软件。幸运的是,这些软件包都可以在 Ubuntu 的默认存储库中找到。

这是我们在本次会话中第一次使用 apt,所以我们将刷新本地软件包索引。之后我们可以安装我们需要的软件包:

sudo apt-get update
sudo apt-get install slapd ldap-utils

在安装过程中,您将被要求选择并确认 LDAP 的管理员密码。实际上,您可以输入任何内容,因为您很快就会有机会更改它。

重新配置 slapd 以选择更好的设置

尽管软件包刚刚安装完毕,我们将立即重新配置 Ubuntu 默认安装的默认设置。

原因是,尽管该软件包有能力询问许多重要的配置问题,但这些问题在安装过程中被跳过了。我们可以通过告诉系统重新配置软件包来获得所有提示:

sudo dpkg-reconfigure slapd

在您进行此过程时,将会询问一些新的问题。让我们现在来看看这些问题:

  • 省略 OpenLDAP 服务器配置? No
  • DNS 域名?
  • 此选项将确定您的目录路径的基本结构。阅读消息以确切了解如何实施。
  • 实际上,这是一个相当开放的选项。您可以选择任何您喜欢的“域名”值,即使您并不拥有实际的域名。但是,如果您有服务器的域名,最好使用它。
  • 对于本指南,我们将为我们的配置选择 test.com
  • 组织名称?
  • 再次,这基本上完全取决于您的偏好。
  • 对于本指南,我们将使用 example 作为我们组织的名称。
  • 管理员密码?
  • 正如我在安装部分提到的,这是您真正选择管理员密码的机会。您在这里选择的任何内容都将覆盖您之前使用的密码。
  • 数据库后端? HDB
  • 在清除 slapd 时删除数据库? No
  • 移动旧数据库? Yes
  • 允许 LDAPv2 协议? No

此时,您的 LDAP 应该以相当合理的方式配置完成。

安装 phpLDAPadmin 以使用 Web 接口管理 LDAP

虽然通过命令行管理 LDAP 是完全可能的,但大多数用户会发现使用 Web 接口更容易。我们将安装 phpLDAPadmin,它提供此功能,以帮助消除学习 LDAP 工具的一些摩擦。

Ubuntu 存储库包含 phpLDAPadmin 软件包。您可以通过输入以下命令来安装它:

sudo apt-get install phpldapadmin

这将安装管理界面,启用必要的 Apache 虚拟主机文件,并重新加载 Apache。

Web 服务器现在已配置为提供您的应用程序,但我们将进行一些额外的更改。我们需要配置 phpLDAPadmin 以使用我们为 LDAP 配置的域架构,并且我们还将对配置进行一些调整以增强安全性。

配置 phpLDAPadmin

现在软件包已安装,我们需要配置一些内容,以便它可以连接到在 OpenLDAP 配置阶段创建的 LDAP 目录结构。

首先,使用 root 权限在文本编辑器中打开主配置文件:

sudo nano /etc/phpldapadmin/config.php

在此文件中,我们需要添加我们为 LDAP 服务器设置的配置详细信息。首先查找主机参数,并将其设置为您服务器的域名或公共 IP 地址。此参数应反映您计划如何访问 Web 接口:

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


接下来,您需要配置您为 LDAP 服务器选择的域名。请记住,在我们的示例中,我们选择了 test.com。我们需要通过将每个域组件(除了点之外的所有内容)替换为 dc 规范的值来将其转换为 LDAP 语法。

这意味着,我们将写入类似 dc=test,dc=com 的内容,而不是 test.com。我们应该找到设置服务器基本参数的参数,并使用我们刚刚讨论的格式来引用我们决定的域:

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


我们需要在登录 bind_id 参数中进行相同的调整。cn 参数已设置为 “admin”。这是正确的。我们只需要再次调整 dc 部分,就像我们上面做的那样:

$servers->setValue('login','bind_id','cn=admin,dc=test,dc=com');


我们需要调整的最后一件事是控制警告消息可见性的设置。默认情况下,phpLDAPadmin 在其 Web 接口中会抛出相当多的关于对功能没有影响的模板文件的烦人警告消息。

我们可以通过搜索 hide_template_warning 参数,取消注释包含它的行,并将其设置为 “true” 来隐藏这些警告:

$config->custom->appearance['hide_template_warning'] = true;


这是我们需要调整的最后一件事。完成后,您可以保存并关闭文件。

创建 SSL 证书

我们希望通过 SSL 来保护与 LDAP 服务器的连接,以防止外部方拦截我们的通信。

由于管理界面是在本地网络上直接与 LDAP 服务器通信的,我们不需要为该连接使用 SSL。我们只需要在连接时保护我们与浏览器的外部连接。

为此,我们只需要设置一个自签名的 SSL 证书,以便我们的服务器可以使用。这不会帮助我们验证服务器的身份,但它将允许我们加密我们的消息。

OpenSSL 软件包应该默认安装在您的系统上。首先,我们应该创建一个目录来保存我们的证书和密钥:

sudo mkdir /etc/apache2/ssl

接下来,我们可以通过输入以下命令一次性创建密钥和证书:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

您将需要回答一些问题,以便工具正确填写证书中的字段。唯一重要的是提示中的 Common Name (e.g. server FQDN or YOUR name)。输入您服务器的域名或 IP 地址。

完成后,您的证书和密钥将被写入 /etc/apache2/ssl 目录。

创建密码认证文件

我们还希望对 phpLDAPadmin 位置进行密码保护。即使 phpLDAPadmin 已经有密码认证,这将提供额外的保护层。

我们需要的实用程序包含在 Apache 实用程序包中。通过输入以下命令获取它:

sudo apt-get install apache2-utils

现在您已经可以创建一个包含您选择的用户名和相关哈希密码的密码文件。

我们将把它保存在 /etc/apache2 目录中。通过输入以下命令创建文件并指定您想要使用的用户名:

sudo htpasswd -c /etc/apache2/htpasswd <span class="highlight">demo_user</span>

现在,我们准备修改 Apache 以利用我们的安全升级。

安全配置 Apache

我们应该首先在 Apache 中启用 SSL 模块。通过输入以下命令可以实现:

sudo a2enmod ssl

这将启用该模块,使我们能够使用它。不过,我们仍然需要配置 Apache 来充分利用它。

目前,Apache 正在读取一个名为 000-default.conf 的文件以用于常规的非加密 HTTP 连接。我们需要告诉它重定向对我们的 phpLDAPadmin 接口的请求到我们的 HTTPS 接口,以便连接被加密。

当我们重定向流量以使用我们的 SSL 证书时,我们还将实施密码文件来验证用户。在修改这些内容的同时,我们还将更改 phpLDAPadmin 接口本身的位置,以最小化有针对性的攻击。

修改 phpLDAPadmin Apache 配置

我们首先要做的是修改设置用于提供我们的 phpLDAPadmin 文件的别名。

以 root 权限在文本编辑器中打开文件:

sudo nano /etc/phpldapadmin/apache.conf

这是我们需要决定我们想要访问接口的 URL 位置的地方。默认值是 /phpldapadmin,但我们希望将其更改以减少机器人和恶意方的随机登录尝试。

在本指南中,我们将使用位置 /superldap,但您应该选择您自己的值。

我们需要修改指定 Alias 的行。这应该在一个 IfModule mod_alias.c 块中。完成后,它应该如下所示:

<IfModule mod_alias.c>
    Alias <span class="highlight">/superldap</span> /usr/share/phpldapadmin/htdocs
</IfModule>

完成后,保存并关闭文件。

配置 HTTP 虚拟主机

接下来,我们需要修改当前的虚拟主机文件。以 root 权限在编辑器中打开它:

sudo nano /etc/apache2/sites-enabled/000-default.conf

在其中,您将看到一个相当简单的配置文件,看起来像这样:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我们希望添加关于我们的域名或 IP 地址的信息来定义我们的服务器名称,并且我们希望设置我们的重定向以将所有 HTTP 请求指向 HTTPS 接口。这将匹配我们在上一节中配置的别名。

我们讨论的更改最终将如下所示。使用您自己的值修改红色项:

<VirtualHost *:80>
    ServerAdmin webmaster@<span class="highlight">server_domain_or_IP</span>
    DocumentRoot /var/www/html
    <span class="highlight">ServerName server_domain_or_IP</span>
    <span class="highlight">Redirect permanent /superldap https://server_domain_or_IP/superldap</span>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

完成后,保存并关闭文件。

配置 HTTPS 虚拟主机文件

Apache 包含一个默认的 SSL 虚拟主机文件。但是,默认情况下它是未启用的。

我们可以通过输入以下命令来启用它:

sudo a2ensite default-ssl.conf

这将把文件从 sites-available 目录链接到 sites-enabled 目录。现在我们可以通过输入以下命令来编辑这个文件:

sudo nano /etc/apache2/sites-enabled/default-ssl.conf

这个文件比上一个文件复杂一些,所以我们只讨论我们需要做的更改。下面的所有更改都应该放在文件中的虚拟主机块内。

首先,再次将 ServerName 的值设置为您服务器的域名或 IP 地址,并且也要更改 ServerAdmin 指令:

ServerAdmin webmaster@<span class="highlight">server_domain_or_IP</span>
<span class="highlight">ServerName server_domain_or_IP</span>

接下来,我们需要设置 SSL 证书指令,指向我们创建的密钥和证书。这些指令应该已经存在于您的文件中,所以只需修改它们指向的文件:

SSLCertificateFile <span class="highlight">/etc/apache2/ssl/apache.crt</span>
SSLCertificateKeyFile <span class="highlight">/etc/apache2/ssl/apache.key</span>

我们需要做的最后一件事是设置将为整个 phpLDAPadmin 安装实施密码保护的位置块。

我们通过引用我们提供 phpLDAPadmin 服务的位置并使用我们生成的文件设置认证来实现这一点。我们将要求任何试图访问此内容的人作为有效用户进行认证:

<span class="highlight">&lt;Location /superldap&gt;</span>
    <span class="highlight">AuthType Basic</span>
    <span class="highlight">AuthName "Restricted Files"</span>
    <span class="highlight">AuthUserFile /etc/apache2/htpasswd</span>
    <span class="highlight">Require valid-user</span>
<span class="highlight">&lt;/Location&gt;

完成后保存并关闭文件。

重新启动 Apache 以实施我们所做的所有更改:

sudo service apache2 restart

现在我们可以继续进行实际界面操作。

登录 phpLDAPadmin Web 界面

我们已经对 phpLDAPadmin 软件进行了所需的配置更改。现在我们可以开始使用它。

我们可以通过访问我们服务器的域名或公共 IP 地址,后面跟上我们配置的别名,来访问 Web 界面。在我们的情况下,这是 /superldap

http://<span class="highlight">server_domain_name_or_IP</span>/<span class="highlight">superldap</span>

第一次访问时,您可能会看到有关站点 SSL 证书的警告:

!phpLDAPadmin SSL 警告

这个警告只是为了让您知道浏览器不认识签署您证书的证书颁发机构。由于我们签署了自己的证书,这是预期的,不是问题。

点击“继续前往”按钮或您的浏览器提供的类似选项。

接下来,您将看到您为 Apache 配置的密码提示:

!phpLDAPadmin 密码提示

填写您使用 htpasswd 命令创建的帐户凭据。您将看到主 phpLDAPadmin 登陆页面:

!phpLDAPadmin 登陆页面

点击页面左侧可见的“login”链接。

!phpLDAPadmin 登陆页面

您将被带到一个登录提示。登录“DN”类似于您将要使用的用户名。它包含“cn”下的帐户名称和您为服务器选择的域名,按照我们上面描述的方式分成“dc”部分。

如果您正确配置了 phpLDAPadmin,它应该已经填充了管理员帐户的正确值。在我们的情况下,看起来是这样的:

cn=admin,dc=test,dc=com

对于密码,输入您在 LDAP 配置期间配置的管理员密码。

您将被带到主界面:

!phpLDAPadmin 主页面

添加组织单位、组和用户

此时,您已经登录到 phpLDAPadmin 界面。您可以添加用户、组织单位、组和关系。

LDAP 在您希望如何构建数据和目录层次结构方面非常灵活。您基本上可以创建任何您想要的结构,并创建它们相互交互的规则。

由于在 Ubuntu 14.04 上的这个安装与在 Ubuntu 12.04 上的安装完全相同,您可以按照 Ubuntu 12.04 上的 LDAP 安装文章中“添加组织单位、组和用户”部分中列出的步骤进行操作。

在这个安装上,步骤将完全相同,所以跟着进行一些练习,了解如何构建您的单位结构。

结论

您现在应该已经在您的 Ubuntu 14.04 服务器上安装并配置了 OpenLDAP。您还安装并配置了一个 web 界面,通过 phpLDAPadmin 程序来管理您的结构。您通过强制 SSL 和对整个应用程序进行密码保护,为应用程序配置了一些基本的安全性。

我们设置的系统非常灵活,您应该能够根据需要设计自己的组织架构,并管理资源组。在下一个指南中,我们将讨论如何配置您的网络机器,以便使用此 LDAP 服务器进行系统认证。


目录
打赏
0
0
0
0
40
分享
相关文章
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器ECS提供多种实例规格,包括高主频计算型hfc8i、计算型c8i、通用算力型u1、经济型e等。各规格配备不同CPU型号与主频性能,适用于机器学习、数据分析、游戏服务器、Web前端等多种场景。用户可根据需求选择Intel或AMD处理器,如第四代Xeon或AMD EPYC系列,满足高性能计算及企业级应用要求。更多详情参见阿里云官方文档。
129 1
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
95 12
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器ECS提供多种实例规格,如高主频计算型hfc8i、计算型c8i、通用算力型u1、经济型e等。各规格基于不同CPU型号与主频性能设计,适用于机器学习、数据分析、游戏服务器、网站应用等多种场景。用户可根据实际需求选择适合的配置,满足高性能计算或经济性要求。更多详情及参数说明可参考官方文档。
270 4
阿里云服务器2核8G、4核16G、8核32G配置热门实例性能、适用场景对于与选择参考
2025年,阿里云针对2核8G、4核16G、8核32G这三种主流配置,推出了一系列极具吸引力的活动,为用户提供了多样化的选择。目前,2核8G配置的云服务器活动价格为522.79元/年起,4核16G配置的云服务器活动价格为2149.92元/年起,而8核32G配置的云服务器活动价格则为4249.44元/年起。这些价格涵盖了经济型e、通用算力型u1、通用型g8i、通用型g7和通用型g8y等不同实例规格,为用户提供了多样化的选择。本文将对这些配置热门实例规格的实例性能、适用场景和活动价格做个对比,以供选择和参考。
在Jenkins上配置触发Ubuntu环境的图形用户界面(GUI)构建任务。
以上,这趟融合了技术与艺术的Jenkins配置之旅就告一段落了。记住,技术应当像艺术一样有趣和生动,这样才能激发出最大的创新和效率。
51 2
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
101 5
阿里云服务器2核4G、4核8G、8核16G配置主要适用场景及最新活动价格参考
云服务器现在已成为企业和个人开展业务、搭建应用不可或缺的基础设施,在众多配置中,2核4G、4核8G和8核16G是广大用户选择较多的配置,目前阿里云服务器通用算力型u1实例2核4G5M带宽企业用户购买的价格只要199元1年,且续费价格不变,4核8G目前的活动价格为955.58元1年起,8核16G配置选择计算型c8y实例的活动价格为3815.03元1年起。本文将为大家解析2025年截止目前阿里云服务器中2核4G、4核8G、8核16G配置的活动报价,帮助用户了解最新价格信息,以及不同配置的主要适用场景,以供参考和选择。
阿里云服务器38元、99元、199元配置、适用场景区别及选择参考
目前,阿里云有多款特价云服务器产品,轻量云服务器2核2G200M峰值带宽38元一年,经济型e实例云服务器2核2G3M带宽99元1年、4核16G10M云服务器70元1个月、210元3个月,8核32G10M带宽160元1个月、480元3个月,通用算力型u1实例2核4G5M带宽199元一年、4核8G云服务器955元一年。本文将详细介绍阿里云的三款特价云服务器产品:38元的轻量应用服务器、99元的云服务器ECS经济型e实例,以及199元的云服务器ECS u1实例,帮助用户更好地了解这些产品的规格、配置、适用场景及购买资格和注意事项。
阿里云国际服务器:全球企业数字化转型的云端基石
阿里云国际服务器提供高性能、高安全和全球化部署的云服务解决方案。其高效云盘具备单盘100万IOPS性能,9个9的数据可靠性,并采用三副本冗余存储确保数据安全。覆盖25个地域、80多个可用区的全球加速网络,大幅降低跨境访问延迟。阿里云已获50多项国际认证,支持企业合规出海。通过统一控制台管理多地域架构,助力企业提升效率、降低成本,是超过200个国家和地区企业的共同选择。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问