安装和配置Open LDAP

称为轻量级目录访问协议的LDAP是用于访问从目录中获知的企业内的X.500服务容器的协议.熟悉Windows Server Administration的人可以将LDAP视为与Active Directory非常相似.它甚至是将Windows工作站交织到OpenLDAP CentOS企业中的一种广泛使用的概念.另一方面,CentOS Linux工作站可以共享资源并参与Windows域中的基本功能.

在CentOS上部署LDAP作为目录服务器代理,目录系统代理或DSA (这些首字母缩略词都是同一个)类似于使用带有NDS的目录树结构的旧Novell Netware安装.

LDAP简史

LDAP基本上是作为使用企业资源访问X.500目录的有效方式创建的. X.500和LDAP共享相同的特性,并且非常相似,以至于LDAP客户端可以使用一些帮助程序访问X.500目录.虽然LDAP也有自己的名为 slapd 的目录服务器. LDAP DAP 之间的主要区别在于,轻量级版本旨在通过TCP进行操作.

DAP 使用完整的OSI模型.随着互联网的出现,TCP/IP和以太网在当今网络中的突出地位,很少使用特定传统计算模型之外的DAP和本机X.500企业目录来植入目录服务.

与CentOS Linux的openldap一起使用的主要组件是 :

openldapLDAP支持库
openldap-serverLDAP服务器
openldap-clientsLDAP客户端数量
openldap-develOpenLDAP的开发库
compay-openldapOpenLDAP共享库
slapdOpenLDAP的目录服务器守护程序
slurpd用于跨企业域的LDAP复制

注意 : 在命名您的企业时,最佳做法是使用 .local TLD.在隔离在线和内部域基础结构时,使用 .net .com 会导致困难.想象一下公司内部使用 acme.com 进行外部和内部操作的额外工作.因此,拥有名为 acme.com acme.net 的互联网资源是明智之举.然后,本地网络企业资源被描述为 acme.local .这需要配置DNS记录,但需要付出简单,雄辩和安全的费用.

在CentOS上安装Open LDAP

安装openldap,openldap-来自 YUM 的服务器,openldap-clients和migrationstools.

 
 [root @ localhost] #yum -y install openldap openldap -servers openldap-clients 
迁移工具
加载的插件:fastermirror,langpacks 
更新
 | 3.4 kB 00:00:00 
 updates/7/x86_64/primary_db 
 | 2.2 MB 00:00:05 
确定最快镜像
(1/2):extras/7/x86_64/primary_db 
 | 121 kB 00:00:01 
(2/2):base/7/x86_64/primary_db 
 | 5.6 MB 00:00:16 
软件包openldap-2.4.40-13.el7.x86_64已安装且最新版本
解析依赖关系
  - >正在运行交易支票
 --->包openldap-clients.x86_64 0:2.4.40-13.el7将安装
 --->包openldap-servers.x86_64 0:2.4.40-13.el7将安装
  - >完成的依赖性解决方案
 base/7/x86_64/group_gz 
 | 155 kB 00:00:00 
依赖关系解决
 ========================= ================================================== ==== 
 ========================================== ===================================== 
包Arch 
版本库大小
 ============================================== ================================= 
 ============= ================================================== ================ 
安装:
 openldap-clients x86_64 
 2.4.40-13.el7 base 188 k 
 openldap-服务器x86_64 
 2.4.40-13.el7基础2.1 M 
交易摘要
 ==================== ================================================== ========= 
 ===================================== ============================ ============== 
安装2个套餐
总下载大小:2.3 M 
安装大小:5.3 M 
下载套餐:
已安装:
 openldap-clients.x86_64 0:2.4.40-13.el7 
 openldap-servers.x86_64 0:2.4.40-13.el7 
完成! 
 [root @ localhost]#

现在,让我们启动并启用 slapd 服务 :

 
 [root @ centos] #systemctl start slapd 
 [root @ centos] #systemctl enable slapd

此时,让我们确保在/etc/openldap 中有 openldap 结构.

 
 root @ localhost] #ls/etc/openldap/
 certs check_password.conf ldap.conf schema slapd.d 
 [root @ localhost]#

然后确保我们的slapd服务正在运行.

 
 root @ centos] #netstat  - antup | grep slapd 
 tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1641/slapd 
 tcp6 0 0 ::: 389 ::: * LISTEN 1641/slapd 
 [root @ centos]#

接下来,让我们配置 Open LDAP 安装.

确保已创建我们的系统 ldap 用户.

 
 [root @ localhost] #id ldap 
 uid = 55(ldap)gid = 55(ldap)groups = 55(ldap)
 [root @ localhost]#

生成我们的LDAP凭证.

 
 [root @ localhost]#slappasswd 
新密码:
重新输入新密码:
 {SSHA} 20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10 
 [root @ localhost]#

我们需要保存slappasswd的输出.

配置开放式LDAP

步骤1 : 为域配置LDAP并添加管理用户.

首先,我们要设置openLDAP环境.以下是与 ldapmodify 命令一起使用的模板.

 
 dn:olcDatabase = {2} hdb,cn = config 
 changetype:modify 
 replace:olcSuffix 
 olcSuffix:dc = vmnet,dc = local 
 dn:olcDatabase = {2} hdb,cn = config 
 changetype:修改
替换:olcRootDN 
 olcRootDN:cn = ldapadm,dc = vmnet,dc = local 
 dn:olcDatabase = {2} hdb,cn = config 
 changetype:modify 
替换:olcRootPW 
 olcRootPW:<从slap输出

更改为:/etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif和ldapmodify命令.

 
 [root @ localhost] #ldapmodify -Y EXTERNAL -H ldapi:///-f/home/rdc/Documents/db.ldif 
 SASL/EXTERNAL身份验证启动
 SASL用户名:gidNumber = 0 + uidNumber = 0,cn = peercred,cn = external,cn = auth 
 SASL SSF:0 
修改条目"olcDatabase = {2} hdb,cn = config"
修改条目"olcDatabase = {2} hdb ,cn = config"
修改条目"olcDatabase = {2} hdb,cn = config"
 [root @ localhost cn = config]#

让我们检查修改后的LDAP配置.

 
 root @ linux1~] #vi/etc/openldap/slapd. d/cn = config/olcDatabase = {2} hdb.ldif 
 [root @ centos] #cat/etc/openldap/slapd.d/cn\=config/olcDatabase\=\ {2 \} hdb.ldif 
#自动生成的文件 - 请勿编辑!使用ldapmodify. 
#CRC32 a163f14c 
 dn:olcDatabase = {2} hdb 
 objectClass:olcDatabaseConfig 
 objectClass:olcHdbConfig 
 olcDatabase:{2} hdb 
 olcDbDirectory:/var/lib/ldap 
 olcDbIndex:objectClass eq,pres 
 olcDbIndex:ou,cn,mail,surname,givenname eq,pres,sub 
 structuralObjectClass:olcHdbConfig 
 entryUUID:1bd9aa2a- 8516-1036-934b-f7eac1189139 
 creatorsName:cn = config 
 createTimestamp:20170212022422Z 
 olcSuffix:dc = vmnet,dc = local 
 olcRootDN:cn = ldapadm,dc = vmnet, dc = local 
 olcRootPW :: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k = 
 entryCSN:20170215204423.726622Z#000000#000#000000 
 modifiersName:gidNumber = 0 + uidNumber = 0,cn = peercred,cn = external,cn = auth 
 modifyTimestamp:20170215204423Z 
 [root @ centos]#

如您所见,我们的LDAP企业修改是成功.

接下来,我们要为OpenLDAP创建一个自签名的ssl证书.这将保护企业服务器和客户端之间的通信.

第2步 : 为OpenLDAP创建自签名证书.

我们将使用 openssl 创建自签名证书.转到下一章,使用openssl创建LDAP SSL证书,以获取有关保护与OpenLDAP通信的说明.然后,当配置ssl证书时,我们将完成OpenLDAP企业配置.

步骤3 : 配置OpenLDAP以使用与证书的安全通信.

使用以下信息创建 vim 中的 certs.ldif 文件 :

 
 dn:cn = config 
 changetype:modify 
 replace:olcTLSCertificateFile 
 olcTLSCertificateFile:/etc/openldap/certs/yourGeneratedCertFile.pem 
 dn:cn = config 
 changetype:modify 
 replace:olcTLSCertificateKeyFile 
 olcTLSCertificateKeyFile:/etc/openldap/certs/youGeneratedKeyFile.pem

接下来,再次使用 ldapmodify 命令将更改合并到OpenLDAP配置中.

[root@centos rdc]# ldapmodify -Y EXTERNAL  -H ldapi:/// -f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

[root@centos]#

最后,让我们来测试一下我们的OpenLADP配置.

[root@centos]# slaptest -u 
config file testing succeeded 
[root@centos]#

第4步 : 设置slapd数据库.

cp/usr/share/openldap-servers/DB_CONFIG.example/var/lib/ldap/DB_CONFIG&& ; 
chown ldap:ldap/var/lib/ldap/*

更新OpenLDAP模式.

添加余弦和nis LDAP模式.

 ldapadd -Y EXTERNAL -H ldapi:///-f/etc/openldap/schema/cosine .ldif 
 ldapadd -Y EXTERNAL -H ldapi:///-f/etc/openldap/schema/nis.ldif 
 ldapadd -Y EXTERNAL -H ldapi:///-f/etc/openldap/schema/inetorgperson.ldif

最后,创建企业架构并将其添加到当前的OpenLDAP配置中.

以下是名为vmnet. local 的域名,其中包含名为 ldapadm 的LDAP管理员.

dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People

dn: ou = Group,dc=vmnet,dc=local 
objectClass: organizationalUnit 
ou: Group

最后,将其导入当前的OpenLDAP模式.

[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
 Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"

adding new entry "cn=ldapadm ,dc=vmnet,dc=local"

adding new entry "ou=People,dc=vmnet,dc=local"

adding new entry "ou=Group,dc=vmnet,dc=local"

[root@centos]#

第5步 : 设置OpenLDAP企业用户.

打开 vim 或您喜欢的文本编辑器并复制以下格式.这是为"vmnet.local"LDAP域中名为"entacct"的用户设置的.

dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword: {crypt}x 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

现在将保存的上述文件导入OpenLdap模式.

[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif 
 Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local" 

[root@centos]#

在用户可以访问LDAP Enterprise之前,我们需要分配一个passwo rd如下 :

ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct 
,ou=People,dc=vmnet,dc=local"

-s 指定密码对于用户

-x 是应用了更新密码的用户名

-D 是用于对LDAP模式进行身份验证的*专有名称.

最后,在登录Enterprise帐户之前,让我们检查一下 OpenLDAP 条目.

[root@centos rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
 # extended LDIF
 #
 # LDAPv3
 # base <dc=vmnet,dc=local> with scope subtree
 # filter: cn=entacct
 # requesting: ALL 
 # 
 # entacct, People, vmnet.local 
dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top 
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword:: e2NyeXB0fXg= 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

/etc/passwd /etc/groups 之类的内容转换为OpenLDAP身份验证需要使用迁移工具.这些包含在 migrationtools 包中.然后,安装到/usr/share/migrationtools .

[root@centos openldap-servers]# ls -l /usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root  2652 Jun  9  2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root  2950 Jun  9  2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root  2946 Jun  9  2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root  3011 Jun  9  2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root  3006 Jun  9  2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root  3164 Jun  9  2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root  3146 Jun  9  2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root  5267 Jun  9  2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root  7468 Jun  9  2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root  3278 Jun  9  2014 migrate_automount.pl
-rwxr-xr-x. 1 root root  2608 Jun  9  2014 migrate_base.pl

第6步 : 最后,我们需要允许访问slapd服务,以便它可以为请求提供服务.

 
 firewall-cmd --permanent --add-service = ldap 
 firewall-cmd --reload

配置LDAP客户端访问

配置LDAP客户端访问需要客户端上的以下包:openldap,open-ldap客户端和nss_ldap.

为客户端系统配置LDAP身份验证更容易.

第1步 : 安装相关的packeges :

 
 #yum install -y openldap-clients nss-pam-ldapd

第2步 : 使用 authconfig 配置LDAP身份验证.

 
 authconfig --enableldap --enableldapauth --ldapserver = 10.25.0.1  - 
 ldapbasedn ="dc = vmnet,dc = local"--enablemkhomedir --update

第3步 : 重新启动nslcd服务.

 
 systemctl restart nslcd