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

本文涉及的产品
.cn 域名,1个 12个月
简介: 在 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 服务器进行系统认证。


目录
相关文章
|
8天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
6天前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
23 3
|
9天前
|
存储 缓存 固态存储
阿里云服务器2核8G、4核16G、8核32G配置租用收费标准与活动价格参考
2核8G、8核32G、4核16G配置的云服务器处理器与内存比为1:4,这种配比的云服务器一般适用于中小型数据库系统、缓存、搜索集群和企业办公类应用等通用型场景,因此,多为企业级用户选择。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
10天前
|
存储 编解码 安全
阿里云服务器2核4G、4核8G、8核16G配置租用收费标准与活动价格参考
通常情况下,个人和一般企业用户在购买阿里云服务器时比较喜欢购买2核4G、4核8G、8核16G等配置,这些配置既能满足各种图文类中小型网站和应用又能满足企业网站应用、批量计算、中小型数据库系统等场景,2核4G配置适合新手入门或初创企业,4核8G与8核16G兼具成本与性能优势,适合通用场景,本文介绍这些配置的最新购买价格,包含原价收费标准和最新活动价格。
|
14天前
|
弹性计算 异构计算
2024年阿里云GPU服务器多少钱1小时?亲测价格查询方法
2024年阿里云GPU服务器每小时收费因实例规格不同而异。可通过阿里云GPU服务器页面选择“按量付费”查看具体价格。例如,NVIDIA A100的gn7e实例为34.742元/小时,NVIDIA A10的gn7i实例为12.710156元/小时。更多详情请访问阿里云官网。
54 2
|
15天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
16天前
|
人工智能 弹性计算 关系型数据库
学生免费领取阿里云服务器一年的方法,以及各种活动
学生可以免费领取阿里云服务器一年,新人可获2核4G,非新人2核2G。访问链接注册并完成学生认证,领取300元无门槛优惠券,购买轻量应用服务器。此外,还有多项活动可赢取实物奖品。
84 2
|
弹性计算 网络协议 Ubuntu
为ECS Ubuntu 18.04实例配置辅助私网IP地址
本文介绍,如何给Ubuntu 18.04系统配置辅助私网ip。
4077 0
为ECS Ubuntu 18.04实例配置辅助私网IP地址
|
6天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
|
6天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。