开发手册 欢迎您!
软件开发者资料库

安装和配置Open LDAP

Linux管理员安装和配置开放式LDAP - 从基本到高级概念的简单简单步骤学习Linux管理员,包括CentOS概述,基本CentOS Linux命令,文件/文件夹管理,用户管理,配额管理,系统服务启动和停止,使用systemctl的资源管理,带有crgoups的资源管理,进程管理,防火墙设置,在CentOS Linux中配置PHP,使用CentOS Linux设置Python,在CentOS Linux上配置Ruby,为CentOS Linux设置Perl,安装和配置开放式LDAP,创建SSL证书,安装Apache Web服务器CentOS 7,在CentOS 7上安装MySQL,设置Postfix MTA和IMAP / POP3,安装匿名FTP,远程管理,CentOS中的流量监控,日志管理,备份和恢复,系统更新,Shell脚本,包管理,卷管理。

称为轻量级目录访问协议的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.ldifSASL/EXTERNAL authentication startedSASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying 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=localdc: vmnetobjectClass: topobjectClass: domaindn: cn=ldapadm ,dc=vmnet,dc=localobjectClass: organizationalRolecn: ldapadmdescription: LDAP Managerdn: ou = People,dc=vmnet,dc=localobjectClass: organizationalUnitou: Peopledn: 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: topobjectClass: 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  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