≡菜单

如何使用详细步骤在Linux上安装LDAP 389目录服务器

389目录服务器389目录服务器是一个开源企业LDAP Server。

这可以处理非常大的数据量。 389 LDAP服务器的巨大好处之一是它可以快速点亮并处理,每秒可处理数千个操作。

它具有几个高级功能,包括用于水平缩放的异步多主复制,从而提供了100%的容错能力和极高的吞吐量。

另外,请记住,它支持TLS,SASL进行身份验证和传输。 389目录服务器完全符合LDAPv3。

本教程说明了如何在Linux环境中安装和配置389目录服务器。

设置EPEL存储库

如果你不这样做’没有EPEL资料库的设置,请确保您已进行设置,因为我们’将安装EPEL的389个相关软件包。

首先,从Fedora网站下载epel rpm,如下所示。

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm

接下来,在服务器上安装epel存储库。

# rpm -ivh epel-release-7-9.noarch.rpm 
warning: epel-release-7-9.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing...             ################################# [100%]
Updating / installing...
   1:epel-release-7-9    ################################# [100%]

如果你 are interested in OpenLDAP instead of 389 directory server, refer to this: 如何在Linux上安装和配置OpenLDAP

正确设置/ etc / host文件

确保主机文件设置正确。

在此示例中,以下是当前的/ etc / host文件设置。

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.101.10  deploy.thegeekstuff.comdeploy

在上面:

  • 192.168.101.10–是服务器的IP地址
  • deploy.thegeekstuff.com–这是要安装389目录服务器的服务器的FQDN
  • 部署–这是服务器的主机名

设置适当的系统参数

将以下行添加到您的/etc/sysctl.conf文件中:

# cat /etc/sysctl.conf 
net.ipv4.tcp_keepalive_time = 300
net.ipv4.ip_local_port_range = 1024 65000
fs.file-max = 64000

根据您系统上有多少资源,您可能希望增加上述文件最大数量。

执行“sysctl -p”命令,如下所示,以确保对系统进行了上述更改。

# sysctl -p
net.ipv4.tcp_keepalive_time = 300
net.ipv4.ip_local_port_range = 1024 65000
fs.file-max = 64000

验证所做的更改:

# sysctl fs.file-max net.ipv4.tcp_keepalive_time net.ipv4.ip_local_port_range
fs.file-max = 64000
net.ipv4.tcp_keepalive_time = 300
net.ipv4.ip_local_port_range = 1024     65000

设置适当的Ulimit值

如下所示在/ etc / profile文件中将ulimit值设置为8192。

# echo "ulimit -n 8192" >> /etc/profile

验证此条目已添加到/ etc / profile文件中。

# tail /etc/profile
..
..
unset i
unset -f pathmunge
ulimit -n 8192

修改pam.d登录文件

修改/etc/pam.d/login文件,并添加以下行以包含pam_limits.so文件,如下所示。

# vi /etc/pam.d/login 
session    required     /usr/lib64/security/pam_limits.so

确保系统上存在pam_limits.so文件。

# ls -l /usr/lib64/security/pam_limits.so 
-rwxr-xr-x. 1 root root 19584 Aug 18  2015 /usr/lib64/security/pam_limits.so

注意:在32位上,请使用以下命令,因为此文件的位置不同。

# vi /etc/pam.d/login 
session    required     /lib/security/pam_limits.so

创建LDAP管理员用户

创建一个名为ldapadmin的用户并分配一个密码,如下所示:

useradd ldapadmin

passwd ldapadmin

一旦您’正确设置LDAP服务器,这将有助于: 如何添加LDAP用户和组

安装389 Directory Server Base和OpenLDAP Client

接下来是安装389目录服务器基本软件包和OpenLDAP客户端实用程序软件包。我们需要安装以下两个软件包:

  • 389-ds-base.x86_64
  • Openldap-clients.x86_64

使用yum命令安装以上两个软件包:

# yum install 389-ds-base.x86_64 Openldap-clients.x86_64

除了根据您的系统安装389-ds-base和openldap-client软件包之外,这还将安装以下相关软件包:

  • 389-ds-base-libs
  • GeoIP
  • 绑定库
  • 绑定工具
  • 赛勒斯·萨斯·格萨皮
  • 赛勒斯-萨斯尔-md5
  • 利比库
  • Perl-Archive-Tar
  • perl-DB_File
  • perl-IO-Zlib
  • perl-Mozilla-LDAP
  • perl-NetAddr-IP
  • perl-Package-Constants
  • svrcore

在此特定系统上,安装了以上两个软件包后,还升级了以下软件包:

  • 绑定库
  • 绑定许可证
  • Openldap

如果你 are using EPEL repository for the first time 上 your system, this may ask you to accept the key as shown below. 说“y” here.

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
 Userid     : "Fedora EPEL (7) <[email protected]>"
 Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 Package    : epel-release-7-9.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]: y

安装389 Directory Server Admin软件包

接下来,安装与389 LDAP服务器管理相关的以下软件包:

  • 389-ds.noarch这是389目录,管理和控制台套件
  • 389-admin.x86_64这是389管理服务器的管理员
  • 389-adminutil.x86_64它包含389管理所需的实用程序和库
  • 389-ds-控制台-doc.noarch这是用于389目录服务器管理控制台的基于Web的文档

使用yum命令并安装以下与389目录服务器admin相关的软件包,如下所示:

# yum install 389-admin.x86_64 \
       389-adminutil.x86_64 389-ds.noarch \
       389-ds-base.x86_64 389-ds-控制台-doc.noarch

除了安装这4个软件包以外,这取决于您的系统,还安装了以下相关的pcakges:

  • 389-管理员控制台
  • 389-管理员控制台文档
  • 389-控制台
  • 389-ds-控制台
  • 第389章
  • 复制jdk-configs
  • idm-console-framework
  • java-1.8.0-openjdk-headless
  • javapackages-tools
  • jss
  • ldapjdk
  • libxslt
  • lksctp工具
  • mod_nss
  • perl-CGI
  • perl-FCGI
  • python-javapackages
  • python-lxml
  • tzdata-java

在此特定系统上,安装上述软件包时还升级了以下软件包:

  • chkconfig
  • nspr
  • nss
  • nss-softokn
  • nss-softokn-freebl
  • nss系统初始化
  • nss工具
  • nss-util

设置389目录服务器– 执行setup-ds-admin.pl

安装所需的389 LDAP服务器软件包之后,然后执行setup-ds-admin.pl脚本,该脚本将在系统上配置389 Directory Server安装程序。

# setup-ds-admin.pl 

上面的程序将要求您输入几个值。他们大多数人都是直觉和直截了当的。

但是我’ve在下面显示了要求用户输入的任何地方的部分输出。

设置389目录服务器–初始警告消息

在上面的setup-ds-admin.pl脚本的前几个提示中,根据您的系统设置,这可能会给您以下警告消息。你可以说‘yes’ to continue here:

389目录服务器 system tuning analysis version 14-JULY-2016.

NOTICE : System is x86_64-unknown-linux3.10.0-327.10.1.el7.x86_64 (2 processors).

WARNING: There are 上 ly 1024 file descriptors (soft limit) available, which
limit the number of simultaneous connections.  

WARNING  : The warning messages above should be reviewed before proceeding.

Would you like to continue? [no]: 是

设置389目录服务器–选择典型安装类型

在以下屏幕中,如果您是389目录服务器的新手,请选择典型设置,它将为您设置所有常用配置选项。

1. Express
       Allows you to quickly set up the servers using the most
       common options and pre-defined defaults. Useful for quick
       evaluation of the products.

   2. Typical
       Allows you to specify common defaults and options.

   3. Custom
       Allows you to specify more advanced options. This is 
       recommended for experienced server administrators 上 ly.

To accept the default shown in brackets, press the Enter key.

Choose a setup type [2]: 2

设置389目录服务器– Enter FQDN

如果你’按照前面的设置之一中的说明正确设置/ etc / hosts文件,它应该在此处正确地选择您的计算机名称,如下所示。

您 just have to press-enter here and move 上 .

Computer name [deploy.thegeekstuff.com]: 

如果您的服务器没有’没有正确的FQDN设置,那么您’在执行setup-ds-admin.pl脚本期间,将看到此错误消息。按Ctrl-C并退出,解决FQDN问题,然后再次重新运行setup-ds-admin.pl。

WARNING: There are problems with the hostname.
The hostname 'deploy' does not look like a
fully qualified host and domain name.

Please check the spelling of the hostname and/or your network configuration.
If you proceed with this hostname, you may encounter problems.

Do you want to proceed with hostname 'deploy'? [no]: no  
Computer name [deploy]: ^C

您 can also pass the FQDN as a parameter to the setup-ds-admin.pl script as shown below:

# setup-ds-admin.pl General.FullMachineName=deploy.thegeekstuff.com
..
Computer name [deploy.thegeekstuff.com]: 
..

设置389目录服务器–输入LDAP管理员用户

默认情况下,这将使用dirsrv作为用户名和组。由于我们在之前的步骤之一中创建了一个名为ldapadmin的用户,因此请在此处指定该用户。

System User [dirsrv]: ldapadmin
System Group [dirsrv]: ldapadmin

设置389目录服务器–配置目录服务器

由于这是我们要做的第一个设置,因此我们不’还没有配置目录服务器。因此,请在此处按Enter接受默认选项,即‘no’.

但是,当您进行多次安装时,您可能已经安装了配置目录服务器,在这种情况下,您应该说‘yes’并在那里指定这些信息。

Do you want to register this software with an existing
configuration directory server? [no]: 

设置389目录服务器–指定管理员用户名和密码

在此阶段,您必须为将要设置的新目录服务器指定管理员用户名和密码。

您’将使用该uid和密码登录控制台。

Configuration directory server
administrator ID [admin]: 
Password: 
Password (confirm): 

设置389目录服务器–输入其他参数

以下是setup-ds-admin.pl脚本将提示的一些其他参数。该域名是从我们提供的FQDN中提取的’在/ etc / hosts文件中定义:

Administration Domain [thegeekstuff.com]: 

您可以从名称中想象得到的默认端口号是389。只需按Enter键即可将其保留不变。

Directory server network port [389]: 

输入目录服务器的唯一标识符。

Directory server identifier [deploy]: 

设置389目录服务器–设置LDAP树结构

首先,相应地设置目录树。在此示例中,这是我们目录树的根,该目录树以thegeekstuff.com(按dc分解)开头,如下所示。

Suffix [dc=thegeekstuff, dc=com]: 

接下来,分隔目录管理器,它是一个DN,您可以在其中’将具有执行某些目录服务器操作的管理用户。

按Enter接受默认名称。在此处输入目录管理员用户的密码。

Directory Manager DN [cn=Directory Manager]: 
Password: 
Password (confirm): 

指定管理端口。请注意,这与您的应用程序服务器或Web服务器端口不同。只需在此处接受默认值即可。

Administration port [9830]: 

设置389目录服务器–设置的最后阶段

说‘yes’到以下最终确认消息,以根据您的值启动目录服务器配置’ve entered so far.

Are you ready to set up your servers? [yes]: 是

您’将会看到以下输出,指示该脚本正在根据您的配置值设置目录服务器。

Creating directory server . . .
Your new DS instance 'deploy' was successfully created.
Creating the configuration directory server . . .
Beginning Admin Server creation . . .
Creating Admin Server files and directories . . .
Updating adm.conf . . .
Updating admpw . . .
Registering admin server with the configuration directory server
Updating adm.conf with information from configuration directory server
Updating the configuration for the httpd engine . . .
..
..
Starting admin server . . .
The admin server was successfully started.
Admin server was successfully created, configured, and started.
Exiting . . .
Log file is '/tmp/setupqxoZug.log'

如果你不这样做’没有SELinux的设置和正确配置,您’会得到以下错误信息。在这种情况下,您可能要暂时禁用SELinux并运行安装脚本。

ERROR: policydb version 30 does not match my version range 15-29
ERROR: Unable to open policy //etc/selinux/targeted/policy/policy.30.
Traceback (most recent call last):
File "/usr/sbin/semanage", line 32, in 
  import seobject
File "/usr/lib/python2.7/site-packages/seobject/__init__.py", line 27, in 
  import sepolicy
File "/usr/lib64/python2.7/site-packages/sepolicy/__init__.py", line 798, in 
  raise e
ValueError: Failed to read //etc/selinux/targeted/policy/policy.30 policy file

验证安装程序日志文件

安装脚本的最后一行将显示日志文件的名称。

打开日志文件以确保没有错误消息。它看起来应该如下所示:

# vi /tmp/setupqxoZug.log
[21:50:57] - [Setup] Info This program will set up the 389 Directory and Administration Servers.
[21:50:57] - [Setup] Info Would you like to continue with set up?
[21:50:58] - [Setup] Info 是
..
..
[21:55:50] - [Setup] Info Updating admpw . . .
[21:55:50] - [Setup] Info Registering admin server with the configuration directory server . . .
[21:55:50] - [Setup] Info Updating adm.conf with information from configuration directory server . . .
[21:55:50] - [Setup] Info Updating the configuration for the httpd engine . . .
[21:55:52] - [Setup] Info Starting admin server . . .
[21:55:53] - [Setup] Info The admin server was successfully started.
[21:55:53] - [Setup] Info Admin server was successfully created, configured, and started.
[21:55:53] - [Setup] Success Exiting . . .

使用Systemctl启动389 Directory Server

dirsrv是启动程序名称。

如下所示,使用systemctl启动389 Directory Server。

在开始之前:

# systemctl status dirsrv.target
? dirsrv.target - 389目录服务器
   Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled)
   Active: inactive (dead)

为389目录服务器加星标:

# systemctl start dirsrv.target

启动后:

# systemctl status dirsrv.target
? dirsrv.target - 389目录服务器
   Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled)
   Active: active since Fri 2017-07-07 21:58:26 UTC; 2s ago

21:58:26 部署systemd[1]: Reached target 389目录服务器.
21:58:26 部署systemd[1]: Starting 389目录服务器.
..

使用start-dirsrv启动389 Directory Server

除了使用systemctl之外,还可以使用如下所示的start-dirsrv命令来启动目录服务器:

# start-dirsrv
Starting instance "deploy"

使用stop-dirsrv停止它:

# stop-dirsrv
Stopping instance "deploy"

下面将显示目录服务器的状态

# status-dirsrv
? dirsrv.target - 389目录服务器
   Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled)
   Active: active since Fri 2017-07-07 21:58:26 UTC; 1min 39s ago

21:58:26 部署systemd[1]: Reached target 389目录服务器.
21:58:26 部署systemd[1]: Starting 389目录服务器.
Status of instance "deploy"
? [email protected] - 389目录服务器 deploy.
   Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2017-07-07 22:00:01 UTC; 4s ago
  Process: 4754 ExecStartPre=/usr/sbin/ds_systemd_ask_password_acl /etc/dirsrv/slapd-%i/dse.ldif (code=exited, status=0/SUCCESS)
 Main PID: 4761 (ns-slapd)
   Status: "slapd started: Ready to process requests"
   CGroup: /system.slice/system-dirsrv.slice/[email protected]
           +-4761 /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-deploy -i /var/run/dirsrv/slapd-deploy.pid

使用Systemctl启动389 Directory Server Admin

要控制389目录的管理服务器,请使用systemctl,如下所示。

如下所示,该管理程序称为dirsrv-admin。

# systemctl start dirsrv-admin

# systemctl stop dirsrv-admin

# systemctl status dirsrv-admin
? dirsrv-admin.service - 389 Administration Server.
   Loaded: loaded (/usr/lib/systemd/system/dirsrv-admin.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
..

您 can also use stop-ds-admin command to stop the 389 Administration Server

使用LDAPSearch命令验证安装程序

最后,使用ldapsearch命令来验证设置是否正确完成。

以下是ldapsearch命令的部分输出:

# ldapsearch -x -b "dc=thegeekstuff,dc=com"
..
..
dn: dc=thegeekstuff,dc=com
objectClass: top
objectClass: domain
dc: thegeekstuff

# Directory Administrators, thegeekstuff.com
dn: cn=Directory Administrators,dc=thegeekstuff,dc=com
objectClass: top
objectClass: groupofuniquenames
cn: Directory Administrators
uniqueMember: cn=Directory Manager
..
..
search: 2
result: 0 Success

# numResponses: 10
# numEntries: 9

如果你 enjoyed this article, you might also like..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 2 评论… 加一 }

  • 久保 2017年7月27日,上午3:07

    我认为使用FreeIPA更好

  • 多米金 2017年7月27日,上午3:12

    你好,
    谢谢您的辛勤工作。即使您的所有文章我都不担心,它们也总是很有趣。出现错误“正确设置/ etc / host文件”,我认为是/ etc / hosts。
    很好的延续Ramesh。
    大卫来自巴黎。

发表评论