称为轻量级目录访问协议的LDAP是用于访问从目录中获知的企业内的X.500服务容器的协议.熟悉Windows Server Administration的人可以将LDAP视为与Active Directory非常相似.它甚至是将Windows工作站交织到OpenLDAP CentOS企业中的一种广泛使用的概念.另一方面,CentOS Linux工作站可以共享资源并参与Windows域中的基本功能.
在CentOS上部署LDAP作为目录服务器代理,目录系统代理或DSA (这些首字母缩略词都是同一个)类似于使用带有NDS的目录树结构的旧Novell Netware安装.
LDAP基本上是作为使用企业资源访问X.500目录的有效方式创建的. X.500和LDAP共享相同的特性,并且非常相似,以至于LDAP客户端可以使用一些帮助程序访问X.500目录.虽然LDAP也有自己的名为 slapd 的目录服务器. LDAP 和 DAP 之间的主要区别在于,轻量级版本旨在通过TCP进行操作.
当 DAP 使用完整的OSI模型.随着互联网的出现,TCP/IP和以太网在当今网络中的突出地位,很少使用特定传统计算模型之外的DAP和本机X.500企业目录来植入目录服务.
与CentOS Linux的openldap一起使用的主要组件是 :
openldap | LDAP支持库 |
---|---|
openldap-server | LDAP服务器 |
openldap-clients | LDAP客户端数量 |
openldap-devel | OpenLDAP的开发库 |
compay-openldap | OpenLDAP共享库 |
slapd | OpenLDAP的目录服务器守护程序 |
slurpd | 用于跨企业域的LDAP复制 |
注意 : 在命名您的企业时,最佳做法是使用 .local TLD.在隔离在线和内部域基础结构时,使用 .net 或 .com 会导致困难.想象一下公司内部使用 acme.com 进行外部和内部操作的额外工作.因此,拥有名为 acme.com 或 acme.net 的互联网资源是明智之举.然后,本地网络企业资源被描述为 acme.local .这需要配置DNS记录,但需要付出简单,雄辩和安全的费用.
安装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的输出.
步骤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客户端访问需要客户端上的以下包: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