部署和配置CentOS 7 LDAP服务器

时间:2020-01-09 10:38:08  来源:igfitidea点击:

说明

Lighweight Directory Access Protocol(轻量级目录访问协议),以其首字母缩写LDAP闻名,它为用户和其他对象提供目录服务。它主要用于在整个环境中提供从服务器到Web应用程序的单点登录身份验证。

本教程将指导我们在CentOS 7上部署和配置LDAP服务器。

本教程中使用的环境具有以下配置。

公司内部
dc=corp,dc=theitroad,dc=intra公司
服务器01. 公司内部

安装OpenLDAP

  • 使用具有管理权限的帐户登录服务器。
  • 使用Yum安装所需的软件包。
yum install openldap-servers openldap-clients nss-pam-ldapd

配置域

为管理帐户创建密码

Manager帐户是默认管理员,也称为OpenLDAP的Root帐户。该帐户拥有LDAP的全部权限,并且需要一个安全的密码。此步骤将指导我们完成为帐户生成加密密码的过程。

  • 使用slappasswd创建加密的密码。
slappasswd
  • 出现提示时,输入新密码。
  • 出现提示时,请重新输入新密码。
  • slappasswd不应输出输入密码的加密形式。
{SSHA}BvCGYqos1HWnzIzAnxNTgqu9xRErywaP

不要使用此输出并将其记录下来。我们将很快使用它。

配置数据库

  • 在文本编辑器中打开LDAP数据库文件。
vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
  • 找到以下几行。
olcSuffix: dc=example,dc=com
olcRootDN: cn=Manager,dc=example,dc=com

并对其进行修改,使其指向域的专有名称(DN)。在本教程中,我们是dc = corp,dc = theitroad,dc = intra。

olcSuffix: dc=corp,dc=theitroad,dc=intra
olcRootDN: cn=Manager,dc=corp,dc=theitroad,dc=intra
  • 使用先前生成的密码设置Manager帐户的密码。在olcRootDN行下面添加以下行。
olcRootPW: {SSHA}1gChY5Xzoozcd73sOma9v6qocpRBWpkP
  • 保存设置并退出文本编辑器。

配置监视权限

支持Monitor的用户可以查询LDAP数据库以获得信息。在某些环境中,这可以被视为安全风险。因此,我们可能想限制谁可以访问它。我们将授予对Manager帐户的访问权限,并拒绝其他任何人。

  • 在文本编辑器中打开OpenLDAP监视配置文件。
vi /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
  • 找到以下行。
olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read  by dn.base="cn=manager,dc=example,dc=com" read  by * none

并通过指向Manager帐户的DN对其进行修改。

olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read  by dn.base="cn=Manager,dc=theitroad,dc=intra" read  by * none
  • 保存更改并退出文本编辑器。

创建数据库配置文件

此文件用于调整OpenLDAP。 OpenLDAP服务器安装随附的示例文件非常适合入门,但是,对于当今的硬件,其设置可能太保守了。

  • 通过复制示例模板来创建数据库配置文件。
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
  • 为数据库配置文件分配适当的权限。
chown -Rf ldap:ldap /var/lib/ldap/

创建一个用户帐号

  • 创建一个名为Admin的用户。
dn: uid=admin,ou=Users,dc=your-domain,dc=com
uid: admin
cn: admin
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: password
shadowLastChange: 15140
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 999
gidNumber: 999
homeDirectory: /home/ldap