安装并配置Open LDAP CentOS Linux设置Perl 创建SSL证书 称为 轻量级目录访问协议的 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一起使用的主要组件是 - openldap LDAP 支持库 openldap-server LDAP服务器 openldap-clients LDAP客户端实用程序 openldap-devel OpenLDAP的开发库 compay-openldap OpenLDAP共享库 slapd OpenLDAP的目录服务器守护进程 slurpd 用于跨企业域的LDAP复制 注 - 为企业命名时,最好使用 .local TLD。 在分离在线和内部域基础架构时,使用 .net 或 .com 可能会造成困难。想象一下,公司内部使用 acme.com 进行外部和内部操作的额外工作。因此,将Internet资源称为 acme.com 或 acme.net 可能是明智的做法。然后,本地网络企业资源被描述为 acme.local 。这将需要配置DNS记录,但将以简单,口才和安全性付费。 在CentOS上安装Open LDAP 从 YUM 安装openldap,openldap-servers,openldap-clients和migrationstools 。 [root@localhost]# yum -y install openldap openldap-servers openldap-clients migration tools Loaded plugins: fastestmirror, langpacks updates | 3.4 kB 00:00:00 updates/7/x86_64/primary_db | 2.2 MB 00:00:05 Determining fastest mirrors (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 Package openldap-2.4.40-13.el7.x86_64 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed ---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed --> Finished Dependency Resolution base/7/x86_64/group_gz | 155 kB 00:00:00 Dependencies Resolved =============================================================================== =============================================================================== Package Arch Version Repository Size =============================================================================== =============================================================================== Installing: openldap-clients x86_64 2.4.40-13.el7 base 188 k openldap-servers x86_64 2.4.40-13.el7 base 2.1 M Transaction Summary =============================================================================== =============================================================================== Install 2 Packages Total download size: 2.3 M Installed size: 5.3 M Downloading packages: Installed: openldap-clients.x86_64 0:2.4.40-13.el7 openldap-servers.x86_64 0:2.4.40-13.el7 Complete! [root@localhost]# linux 现在,让我们开始启用 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 New password: Re-enter new password: {SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10 [root@localhost]# 我们需要保存slappasswd的输出。 配置Open 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: modify replace: olcRootDN olcRootDN: cn=ldapadm,dc=vmnet,dc=local dn: olcDatabase = {2}hdb,cn=config changetype: modify replace: olcRootPW olcRootPW: <output from slap 使用ldapmodify命令对/etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif进行更改。 [root@localhost]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.ldif SASL/EXTERNAL authentication started SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase = {2}hdb,cn=config" modifying entry "olcDatabase = {2}hdb,cn=config" modifying entry "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 # AUTO-GENERATED FILE - DO NOT EDIT!! Use 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 创建一个自签名的ssl证书。转到下一章, 使用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 Enterprise用户。 打开 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 输入LDAP密码: 添加新条目“uid = entacct,ou = People,dc = vmnet,dc = local” [根@的centos]# 在用户可以访问LDAP Enterprise之前,我们需要分配一个密码,如下所示 - ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct ,ou=People,dc=vmnet,dc=local" -s 指定用户的密码 -x 是应用更新密码的用户名 -D 是*可分辨名称“,以对LDAP模式进行身份验证。 最后,在登录到企业帐户之前,让我们来检查我们的 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 clients和nss_ldap。 为客户端系统配置LDAP身份验证比较容易一些。 第1步 - 安装依赖包 - # 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 CentOS Linux设置Perl 创建SSL证书