如何在Ubuntu 14.04服务器上配置并安装OpenLDAP和phpLDAPadmin

介绍

LDAP或轻量级目录访问协议,是设计在一个集中的,分级的文件和目录结构来管理和访问相关的信息的协议。 在某些方面,它的操作类似于关系数据库,但这并不适用于一切。分层结构是数据如何相关的主要区别。它可以用于存储任何类型的信息,它通常用作集中式认证系统的一个组件。 在本指南中,我们将讨论如何在Ubuntu 14.04服务器上安装和配置OpenLDAP服务器。然后我们将安装并保护一个phpLDAPadmin接口,以提供一个简单的Web界面。

安装LDAP和Helper实用程序

在我们开始之前,我们必须安装必要的软件。幸运的是,这些包都在Ubuntu的默认仓库中可用。 这是我们第一次使用 apt在这个环节,所以我们将更新我们的本地包索引。之后我们可以安装我们想要的包:
sudo apt-get update
sudo apt-get install slapd ldap-utils
在安装过程中,系统将要求您选择并确认LDAP的管理员密码。你可以在这里放任何东西,因为你有机会改变它在一瞬间。

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

即使刚刚安装了这个软件包,我们还是可以重新配置Ubuntu安装的默认值。 这样做的原因是,虽然包有能力提出很多重要的配置问题,这些都在安装过程中跳过。我们可以通过告诉我们的系统重新配置包来访问所有的提示:
sudo dpkg-reconfigure slapd
当你经历这个过程时,有很多新的问题会被问到。现在让我们来看一下:
  • 省略OpenLDAP服务器的配置?
  • DNS域名?
    • 此选项将确定目录路径的基本结构。阅读消息,以确切了解如何实现。
    • 这实际上是一个相当开放的选择。您可以选择任何“域名”值,即使您不是真正的域名。但是,如果您有服务器的域名,那么使用它是明智的。
    • 对于本指南中,我们将选择test.com我们的配置。
  • 机构名称?
    • 这也是完全取决于你的喜好。
    • 对于本指南中,我们将使用的例子作为我们组织的名称。
  • 管理员密码?
    • 正如我在安装部分提到的,这是你真正的机会选择管理员密码。您在此处选择的任何内容都将覆盖您使用的以前的密码。
  • 后端数据库?HDB
  • 删除数据库中的slapd被清除时?
  • 将旧的数据库吗
  • 允许的LDAPv2协议?
此时,您的LDAP应以相当合理的方式配置。

安装phpLDAPadmin以使用Web Interface管理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 。 我们需要通过更换每个域分量(一切不是点)插入一个的值翻译成LDAP语法此 dc规范。 所有这一切意味着,而不是写 test.com ,我们会写类似 dc=test,dc=com 。我们应该找到设置服务器基本参数的参数,并使用我们刚刚讨论的格式来引用我们决定的域:
$servers->setValue('server','base',array('dc=test,dc=com'));
我们需要在我们的登录bind_id参数中调整同样的事情。在 cn参数已经被设置为“管理员”。 这是对的。 我们只需要调整 dc再次部分,就像我们上面那样:
$servers->setValue('login','bind_id','cn=admin,dc=test,dc=com');
我们需要调整的最后一件事是控制警告消息的可见性的设置。默认情况下phpLDAPadmin将在其Web界面中抛出一些恼人的警告消息,关于对功能没有影响的模板文件。 我们可以通过搜索隐藏这些 hide_template_warning参数,取消注释包含它的路线,将其设置为“真”:
$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 (eg 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 demo_user
现在,我们准备修改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 /superldap /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@server_domain_or_IP
    DocumentRoot /var/www/html
    ServerName server_domain_or_IP
    Redirect permanent /superldap https://server_domain_or_IP/superldap
    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
这个文件比最后一个文件有点多,所以我们将只讨论我们要做的更改。下面的所有更改都应该在文件中的Virtual Host块中。 首先,设置 ServerName再次价值,你的服务器的域名或IP地址,并更改 ServerAdmin指令,以及:
ServerAdmin webmaster@server_domain_or_IP
ServerName server_domain_or_IP
接下来,我们需要将SSL证书指令设置为指向我们创建的密钥和证书。指令应该已经存在于您的文件中,所以只需修改它们指向的文件:
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
我们需要做的最后一件事是设置位置块,将实现整个phpLDAPadmin安装的密码保护。 我们通过引用我们为phpLDAPadmin服务的位置并使用我们生成的文件设置身份验证。我们将要求任何尝试访问此内容的用户作为有效用户进行身份验证:
<Location /superldap>
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile /etc/apache2/htpasswd
    Require valid-user
</Location>
保存并在完成后关闭文件。 重新启动Apache以实现我们所做的所有更改:
sudo service apache2 restart
我们现在可以转到实际的界面。

登录到phpLDAPadmin Web Interface

我们已经对phpLDAPadmin软件做了我们需要的配置更改。我们现在可以开始使用它。 我们可以访问我们的服务器的域名或公共IP地址,然后访问我们配置的别名访问Web界面。在我们的例子,这是 /superldap
http://server_domain_name_or_IP/superldap
首次访问时,您可能会看到有关网站的SSL证书的警告: phpLDAPadmin SSL警告 警告只是在这里,让您知道,浏览器不能识别签署您的证书的证书颁发机构。既然我们签署我们 自己的证书,这是预期,而不是一个问题。 点击“仍然继续”按钮或浏览器给您的类似选项。 接下来,您将看到为Apache配置的密码提示: phpLDAPadmin密码提示 填写您所创建的帐户凭据 htpasswd命令。您将看到主phpLDAPadmin目标网页: phpLDAPadmin目标网页 点击页面左侧可以看到的“登录”链接。 phpLDAPadmin登录页面 您将进入登录提示。登录“DN”就像您将使用的用户名。它包含“cn”下的帐户名称和您为服务器选择的域名,分为“dc”部分,如上所述。 如果您正确配置了phpLDAPadmin,那么应该使用正确的admin帐户值进行填充。在我们的例子中,这看起来像这样:
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服务器进行系统身份验证。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏