如何在Ubuntu 16.04上安装和配置OpenLDAP服务器

在本教程中,我们将研究在Ubuntu 16.04 LTS上安装和配置OpenLDAP服务器。 我们还将安装 phpLDAP管理员 基于Web的管理工具。

什么是OpenLDAP

OpenLDAP 是一个开源的快速目录服务器,为网络客户端提供目录服务。 客户端应用程序使用以下命令连接到OpenLDAP服务器: 轻型目录访问协议(LDAP) 访问存储在该服务器上的组织信息。 有了适当的访问权限,客户端就可以搜索目录,修改和处理目录中的记录。 OpenLDAP可以有效地读取和修改目录中的数据。

OpenLDAP服务器最常用于提供用户帐户的集中管理。 例如,您可以在OpenLDAP中创建一个帐户,并且如果该帐户与邮件服务器,FTP服务器,Samba服务器或任何其他服务器连接,则可以使用该帐户登录这些服务器,而无需为每个服务器创建新帐户。

如何在Ubuntu 16.04上安装OpenLDAP Server

运行以下命令从Ubuntu 16.04软件包存储库安装OpenLDAP服务器和客户端命令行实用程序。 slapd 代表 独立LDAP守护程序

sudo apt install slapd ldap-utils

系统将要求您为LDAP目录中的admin条目设置密码。

完成后,将自动启动slapd。 您可以通过以下方式查看其状态:

systemctl status slapd

默认情况下,它作为 openldap 用户定义为 /etc/default/slapd 文件。

基本的安装后配置

安装过程将在没有任何配置的情况下安装软件包。 为了使我们的OpenLDAP服务器正常运行,我们需要进行一些基本的安装后配置。 运行以下命令以启动配置向导。

sudo dpkg-reconfigure slapd

您将需要回答一系列问题。 回答以下问题:

省略LDAP服务器配置: 没有

openldap ubuntu

DNS域名:输入您的域名,例如 linuxbabe.com。 您将需要为您的域名设置正确的A记录。 您也可以使用类似 directory.linuxbabe.com。 此信息用于创建 基本DN(专有名称) LDAP目录。

安装openldap ubuntu

组织名称:输入您的组织名称,例如LinuxBabe。

逐步在ubuntu 16.04中配置ldap服务器

管理员密码:输入在安装过程中设置的相同密码。

openldap服务器Ubuntu 16.04

数据库后端: MDB

银行 (伯克利数据库)缓慢且麻烦。 不建议使用,将来的OpenLDAP版本中将不再提供支持。 政府组屋 (分层数据库)是BDB后端的一种变体,也将不推荐使用。

MDB 读取速度比BDB快5-20倍。 写速度快2-5倍。 而且它消耗的内存是BDB的1/4。 因此,我们选择MDB作为数据库后端。

Openldap的MDB

您是否希望在清除slapd后删除数据库? 没有

在Ubuntu 16.04 LTS上安装openldap服务器

移动旧数据库?

openldap服务器配置

允许LDAPv2协议? 没有。 LDAP的最新版本是1997年开发的LDAPv.3。LDAPv2已过时。

安装ldap ubuntu

现在,该过程将根据您的答案重新配置OpenLDAP服务。 您的OpenLDAP服务器现在可以使用了。

openldap ubuntu 16.04配置

配置LDAP客户端

/etc/ldap/ldap.conf 是所有OpenLDAP客户端的配置文件。 打开这个文件。

sudo nano /etc/ldap/ldap.conf

我们需要指定两个参数: 基本DNURI 我们的OpenLDAP服务器。 将以下文本复制并粘贴到文件末尾。 更换 your-domaincom 作为适当的。

BASE     dc=your-domain,dc=com
URI      ldap://localhost

第一行定义基本DN。 它告诉客户端程序在目录中从哪里开始搜索。 如果在配置OpenLDAP服务器时使用了子域,则需要在此处添加子域,如下所示

BASE      dc=subdomain,dc=your-domain,dc=com

第二行定义我们的OpenLDAP服务器的URI。 由于LDAP服务器和客户端位于同一台计算机上,因此我们应将URI设置为 ldap://localhost

测试OpenLDAP服务器

现在,OpenLDAP服务器正在运行,并且客户端配置已完成,运行以下命令以建立与服务器的测试连接。

ldapsearch -x

输出:

# extended LDIF
#
# LDAPv3
# base <dc=linuxbabe,dc=com> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# linuxbabe.com
dn: dc=linuxbabe,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: LinuxBabe

# admin, linuxbabe.com
dn: cn=admin,dc=linuxbabe,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

结果:0成功 表示OpenLDAP服务器正在运行。 如果您得到以下行,则它不起作用。

result: 32 No such object

安装phpLDAPadmin

phpLDAPadmin是用于管理OpenLDAP服务器的基于Web的程序。 命令行实用程序可用于管理我们的OpenLDAP服务器,但是对于那些想要易于使用的界面的人,可以安装phpLDAPadmin。

运行以下命令从Ubuntu软件包存储库安装phpLDAPadmin。

sudo apt install phpldapadmin

如果您的Ubuntu服务器没有运行Web服务器,则上述命令将安装Apache Web服务器作为依赖项。 如果已经有Nginx之类的Web服务器,则将不会安装Apache。

如果您使用Apache

安装将放置一个配置文件 phpldapadmin.conf/etc/apache2/conf-enabled/ 目录。 安装完成后,您可以在以下位置访问phpLDAPadmin Web界面:

your-server-ip/phpldapadmin

要么

your-domain.com/phpldapadmin

要启用HTTPS,您可以获取并安装由Let’s Encrypt发行的免费TLS证书。

如果您使用Nginx

Nginx用户将需要为phpLDAPadmin手动创建服务器阻止文件。

sudo nano /etc/nginx/conf.d/phpldapadmin.conf

复制以下文本并将其粘贴到文件中。 将ldap.your-domain.com替换为您的首选域名。

server {
        listen 80;
        server_name ldap.your-domain.com;

        root /usr/share/phpldapadmin/htdocs;
        index index.php index.html index.htm;

        error_log /var/log/nginx/phpldapadmin.error;
        access_log /var/log/nginx/phpldapadmin.access;

        location ~ .php$ {
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
            include fastcgi_params;
        }
}

保存并关闭文件。 然后输入Nginx配置文本。

sudo nginx -t

如果测试成功,请重新加载Nginx以使更改生效。

sudo systemctl reload nginx

现在,您可以访问phpLDAPadmin Web界面,网址为 ldap.your-domain.com。 要启用HTTPS,您可以获取并安装由Let’s Encrypt发行的免费TLS证书。

配置phpLDAPadmin

我们需要像使用命令行客户端一样进行一些配置。 phpLDAPadmin配置文件位于 /etc/phpldapadmin/config.php

sudo nano /etc/phpldapadmin/config.php

由于OpenLDAP和phpLDAPadmin在同一台计算机上运行,​​因此我们将phpLDAPadmin配置为在没有SSL / TLS加密的情况下在默认LDAP端口389上连接到localhost。

第293行指定phpLDAPadmin将连接到本地主机。

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

默认情况下,第296行被注释掉,这意味着将使用标准端口389。

// $servers->setValue('server','port',389);

默认情况下,第335行被注释掉,这意味着未启用TLS加密。

// $servers->setValue('server','tls',false);

然后转到第300行。

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

更改为:

$servers->setValue('server','base',array());

这将使phpLDAPadmin自动检测您的OpenLDAP服务器的基本DN。 接下来,您可以禁用匿名登录。 转到第453行。

// $servers->setValue('login','anon_bind',true);

默认情况下,启用匿名登录。 要禁用它,您需要删除注释字符(两个斜杠)并将true更改为false。

$servers->setValue('login','anon_bind',false);

您可能要禁用模板警告,因为这些警告很烦人并且不重要。 转到第161行。

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

删除注释字符并将false更改为true。

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

保存并关闭文件。

访问phpLDAPadmin Web界面

现在,我们可以使用我们的网络浏览器测试phpLDAPadmin工具。 首次加载phpLDAPadmin时,它看起来像这样。

phpldapadmin

要登录我们的OpenLDAP服务器,请单击登录链接。 您将看到登录对话框。 默认登录DN为 cn=admin,dc=example,dc=com。 您可能需要更改 dc=example。 就我而言,我需要将登录DN更改为 cn=admin,dc=linuxbabe,dc=com

openldap Web界面

密码是您在配置OpenLDAP服务器时设置的管理员密码。 登录phpLDAPadmin后,即可管理此目录服务器。

phpldapadmin配置

而已! 我希望本教程可以帮助您安装和配置两者 OpenLDAP服务器phpLDAP管理员 在Ubuntu 16.04上。 在下一个教程中,我们将看到如何配置Ubuntu以使用OpenLDAP验证用户登录。

Sidebar