在 Debian/Ubuntu 中安装 OpenLDAP 服务器并使用 phpLDAPadmin 进行管理
LDAP 代表轻量级目录访问协议,可以以多种方式使用,例如身份验证、共享目录(用于邮件客户端)、地址簿等。 LDAP 协议可用于建立和存储任何类型的信息。 OpenLDAP 服务器使您可以访问存储在树结构中的信息。
在本文中,我们将向您展示如何安装和配置 OpenLDAP 服务器,以及如何在 Debian、Ubuntu 上使用 phpLDAPadmin 对其进行管理 和 Linux Mint 系统。
Linux中OpenLDAP服务器的安装
默认情况下,OpenLDAP 服务器位于“slapd”包下的存储库中。您可以借助名为 apt-get 的包管理器工具轻松安装它。但在安装OpenLDAP服务器之前,请确保您的系统最新。
在安装过程中,它会要求您输入 LDAP 目录中 admin 条目的密码。输入强密码并选择确定进行确认。
sudo apt-get update
sudo apt-get install slapd ldap-utils
配置 OpenLDAP 服务器
为了配置OpenLDAP服务器,您需要编辑ldap.conf文件,该文件存储在/etc目录下。要编辑 ldap.conf 文件,您需要一个文本编辑器,例如 vim、nano 等。运行以下命令打开 ldap 用于编辑的配置文件。
sudo nano /etc/ldap/ldap.conf
上述命令的输出如下部分所示。
#
LDAP Defaults
#
See ldap.conf(5) for details
This file should be world readable but not world writable.
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
取消注释 BASE 和 URI 行,以便您可以使用自己的域名和IP 地址编辑它们。由于这是测试安装和配置,我将使用 howtoing123.com 作为我的域名。
#
LDAP Defaults
#
See ldap.conf(5) for details
This file should be world readable but not world writable.
BASE dc=tecmint123,dc=com
URI ldap://ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
保存文件并运行以下命令以重新配置 LDAP 包。
sudo dpkg-reconfigure slapd
要构建 LDAP 目录的基本 DN,您需要一个 DNS 域名。
输入您的 DNS 域名,然后按Enter 进行确认。然后 ldap 将要求输入要在 LDAP 目录的基本 DN 中使用的组织名称。输入您的公司或组织名称,然后再次按Enter。
添加组织或公司名称后,程序包配置将要求输入 LDAP 中 admin 条目的密码
目录。您需要输入您在前面的步骤中创建的管理员的密码。
确认管理员密码后,您必须选择数据库。有两个数据库可供选择:BDB 和HDB 数据库。它们都支持相同的配置选项,使用相似的存储格式,但由于 HDB 数据库添加了对子树重命名的支持,因此推荐使用它。
您可以选择您认为更适合您的数据库。决定使用哪个数据库后,按 Enter 确认选择。然后系统会提示您另一个问题。选择是可在清除slapd时删除数据库。
再次选择是并按Enter。
选择否,LDAP 服务器将开始运行。
[sudo] password for ravisaive:
* Stopping OpenLDAP slapd [ OK ]
Moving old database directory to /var/backups:
- directory unknown... done.
Creating initial configuration... done.
Creating LDAP directory... done.
* Starting OpenLDAP slapd [ OK ]
Processing triggers for libc-bin ...
要测试 LDAP 服务器,请使用 ldapsearch -x 命令。
ldapsearch -x
它产生以下输出。
extended LDIF
#
LDAPv3
base <dc=tecmint123,dc=com> (default) with scope subtree
filter: (objectclass=*)
requesting: ALL
#
tecmint123.com
dn: dc=tecmint123,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: tecmint
dc: tecmint123
admin, tecmint123.com
dn: cn=admin,dc=tecmint123,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
search result
search: 2
result: 0 Success
numResponses: 3
numEntries: 2
使用 phpLDAPadmin 进行 LDAP 管理
phpLDAPadmin 是一个GUI管理工具,用于LDAP服务器管理。此 GUI 工具将帮助我们通过 Web 界面与您的 LDAP 服务器进行交互。它在默认存储库中可用,可以使用 apt-get 命令安装。
但在安装 phpLDAPadmin 之前,您必须安装并运行 Apache Web 服务器和 PHP。如果没有,请使用以下命令安装它。
sudo apt-get install apache2 php5 php5-mysql
接下来安装“phpldapadmin”软件包,如下所示。
sudo apt-get install phpldapadmin
与配置 ldap.conf 文件的方式相同,我们需要在使用 phpldapadmin Web 界面配置文件之前对其进行配置。运行以下命令打开 phpldapadmin config.php 文件。
sudo nano /etc/phpldapadmin/config.php
您所需要做的就是将域名替换为您自己的值。本例所需的配置部分位于“定义您的 LDAP 服务器”部分。
$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','Tecmint LDAP Server');
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','base',array('dc=tecmint123,dc=com'));
$servers->setValue('login','bind_id','cn=admin,dc=tecmint123,dc=com');
编辑完 config.php 配置文件后,在 Web 浏览器中打开一个选项卡并输入“http://ip_address_here/phpldapadmin”URL 。输入您的 LDAP 登录凭据并单击“登录”。
参考链接
- OpenLDAP 主页
- phpLDAPadmin 主页