当前位置: 首页 > news >正文

网站更换服务器需要重新备案吗苏州网站优化公司

网站更换服务器需要重新备案吗,苏州网站优化公司,在线设计平台市场环境,app制作收费价目表关键字#xff1a; OpenLDAP ReiserFS SCTP nmon 正则表达式 使用轻量级目录访问协议#xff08;LDAP#xff09;构建集中的身份验证系统可以减少管理成本#xff0c;增强安全性#xff0c;避免数据复制的问题#xff0c;并提高数据的一致性。随着 Linuxreg; 的不断… 关键字 OpenLDAP ReiserFS SCTP nmon 正则表达式 使用轻量级目录访问协议LDAP构建集中的身份验证系统可以减少管理成本增强安全性避免数据复制的问题并提高数据的一致性。随着 Linuxreg; 的不断成熟已经出现了很多工具用来简化用户帐号信息到 LDAP 目录的迁移。还开发了一些工具用来在客户机和目录服务器之间启用加密通信配置并通过复制提供容错性。本文将向您展示如何配置服务器和客户机在 Red Hat Linux 上使用 OpenLDAP。 简介Linux 发行版中提供的 OpenLDAP 软件按照一个客户机/服务器模型实现了轻量级目录访问协议LDAP。LDAP 的设计目的是提供一种有效的方法来查找和管理信息。OpenLDAP 软件和包提供了创建目录信息树一个主要进行读操作的数据库的工具。本文向您展示如何存储用户的帐号信息并修改身份验证服务来使用 LDAP 获取所需要的信息。内部细节并不重要因为这些工具可以将数据库的内容以文本格式LDAP 数据交换格式LDIF呈现在您的面前。LDAP 信息被组织成属性和值的组合称为 条目entry。条目可能会具有必须的属性或可选属性。一个条目的属性必须要遵循 /etc/openldap/schema/ 模式文件中定义的规则。规则包含在条目的 objectclass 属性中。看一下下面的关系我们可以看出 posixAccount objectclass 中包含了密码文件条目的信息posixAccount userPassword 是文件条目的 base64 编码。图 1. LDAP 目录条目和 Linux 密码文件之间的关系文件 /etc/openldap/schema/nis.schema 为 posixAccount 对象类中的条目定义了所有的属性和 objectclass。例如下面是对 uidNumber 属性的描述attributetype ( 1.3.6.1.1.1.1.0 NAME uidNumber  DESC An integer uniquely identifying a user in an administrative domain  EQUALITY integerMatch  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )所有的属性类型都已经定义了它们被收集到 posixAccount objectclass 中。例如objectclass ( 1.3.6.1.1.1.2.0 NAME posixAccount SUP top AUXILIARY  DESC Abstraction of an account with POSIX attributes  MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )  MAY ( userPassword $ loginShell $ gecos $ description ) )ldapuser 条目具有一个识别名属性 dn它用作用户名并与 userPassword 一起用来在 LDAP 目录中记录信息或与 LDAP 目录绑定在一起使用。LDAP 为作为容器使用的特殊条目提供了将这些条目组织成树结构的功能。在这个例子中我们将使用一个容器 People 保存用户帐号信息使用另外一个容器 Groups 保存组帐号信息。所生成的目录信息树如图 2 所示。图 2. 用户帐号信息使用的目录信息树让 我们来看一下如何配置 OpenLDAP 服务器如何将信息从系统文件迁移到 LDAP 目录中如何配置 OpenLDAP 客户机通过 LDAP 对用户进行身份验证。在使用一个集中的身份验证数据库时应该通过使用复制技术采用第二个 LDAP 服务器提供高可用性这样在主服务器出现问题时就可以使用第二个 LDAP 服务器响应客户机的请求。由于诸如密码之类的身份验证数据会通过网络进行传输因此希望使用 TSL 协议建立加密通信连接。我们的 OpenLDAP 服务器和客户机都是虚拟机上面运行的是 Red Hat Enterprise Linux AS release 4Nahant Update 1。在我们的例子中使用了 表 1 所列出的系统。如果想模仿这些例子请使用适合您自己的设置。表 1. 系统网络信息角色主机名IP 地址OpenLDAP 主服务器dhcp64-233.ibm.com9.47.64.233OpenLDAP 从服务器dhcp64-253.ibm.com9.47.64.253OpenLDAP 客户机dhcp64-251.ibm.com9.47.64.251配置 LDAP 服务器我们使用 Red Hat Enterprise Linux release 4 Update 1 上的包来构建服务器openldap-2.2.13-2包含 OpenLDAP 配置文件、库和文档 openldap-servers-2.2.13-2包含 slapd 和 slurpd 服务器、迁移脚本和相关文件 openldap-clients-2.2.13-2包含客户机程序用来访问和修改 OpenLDAP 目录 OpenLDAP 包在服务器上安装了很多程序守护进程 slapd主 LDAP 服务器 slurpd负责与复制 LDAP 服务器保持同步的服务器 对网络上的目录进行操作的客户机程序。下面这两个程序是一对儿 ldapadd打开一个到 LDAP 服务器的连接绑定、修改或增加条目 ldapsearch打开一个到 LDAP 服务器的连接绑定并使用指定的参数进行搜索 对本地系统上的数据库进行操作的几个程序 slapadd将以 LDAP 目录交换格式LDIF指定的条目添加到 LDAP 数据库中 slapcat打开 LDAP 数据库并将对应的条目输出为 LDIF 格式 OpenLDAP 的主要服务器配置文件是 /etc/openldap/slapd.conf。本例所使用的完整 slapd.conf 文件如 清单 18 所示。slapd.conf 文件中包括一系列全局配置选项它们作为一个整体应用到 slapd 上面后面是包含数据库特有信息的数据库后端定义。如果一行内容是以空格开始的就认为它是上一行的延续。空行和以 “#” 字符开头的注释行都会被忽略。如果您正把本文当作练习来做那就可以按照下面指定的方式进行修改从而启动 LDAP 服务器。一旦确认服务器正常工作之后就可以添加复制功能然后再添加安全性支持。首先是全局配置信息段的设置。其中每个选项的值都是我们想要的。正如上面介绍的一样信息被组织成属性和值的组合称为条目。条目属性必须遵循的规则是使用 objectclass 专用属性进行组织的这可以在 /etc/openldap/schema/ 模式文件中找到。对于身份验证来说需要使用在 nis.schema 中定义的 posixAccount 和 shadowAccount objectclassesinclude /etc/openldap/schema/nis.schema loglevel 行设置的是日志选项。可以将其设置为这样的级别调试语句和操作统计信息都会被记录到 /var/log/slapd.log 中。日志级别是累加的296 256 日志连接/操作/结果 32 搜索过滤器处理 8 连接管理loglevel 296 日志信息会被记录到 syslogd LOG_LOCAL4 机制中。还需要将下面的内容添加到 /etc/syslog.conf 中并让 syslogd 重新读取自己的配置文件local4.debug /var/log/slapd.log access 行定义了谁可以访问目录中的内容。我们希望用户可以修改自己的密码并更新自己的 shadow 信息来反映密码的变化。希望身份验证程序能够检索用户的密码。还希望用户能够读取所有其他条目。注意密码条目是不可读的shadow 属性的惟一用处就是管理密码的过期问题。access to attrsshadowLastChange,userPassword   by self write   by * authaccess to *   by * read接下来在 database 部分要定义下面的内容。使用新的 bdb 后端数据库database bdb 指定后端数据库需要响应的查询的 DN 前缀。为了确保惟一性根前缀应该从自己的网络域名构建出来。在本例的情况中它是 .dcsvc,dcbeaverton,dcibm,dccom.但是在下面的例子中我们对其进行了简化suffix dcibm,dccom 指定管理 DN它不用于访问控制或限制数据库的操作。也不需要在目录中为这个 DN 指定一个条目。为具有 rootpw 密码的管理员使用 DN 可以跳过 ACL 规则中的所有访问控制rootdn cnManager,dcibm,dccomrootpw {MD5}ijFYNcSNctBYg 这就是我们现在想要设置的选项。稍后将返回 slapd.conf 文件来配置复制然后在配置安全性。现在我们希望将数据添加到目录中并确认可以访问这些信息。要实现这种功能需要配置服务器来使用 ldap 客户机工具例如 ldapadd 和 ldapsearch。ldap 客户机工具的配置文件是 /etc/openldap/ldap.conf。我们使用的这个文件的完整列表如本文末尾的 清单 19 所示。要在 ldap 服务器上运行这些工具只需要将该行修改成下面的内容BASE dcibm,dccom 设置启动脚本在级别 2、3 和 5 时启动 LDAP清单 1. 设置启动运行级别# chkconfig --levels 235 ldap on从命令行中启动服务清单 2. 启动服务# service ldap startStarting slapd:                [ OK ]OpenLDAP 守护进程 slapd 应该已经运行了清单 3. 检查服务正在运行# ps -ef | grep slapldap  13521 1 0 Oct24 ?   00:00:00 /usr/sbin/slapd -u ldap -h ldap:/// ldaps:///ldapsearch -x 命令应该可以成功完成但不会返回任何数据。迁移密码和 shadow 信息Red Hat 所提供的 openldap-servers 包包含 PADL Software Pty Ltd. 公司的 MigrationTools 工具。我们将使用这些工具将数据从 Linux 系统文件例如 /etc/group 和 /etc/password转换成 LDAP LDIF 格式这是数据库信息的一种文本格式的表示。这种格式是行界定、冒号分隔的属性-值对。有一组 Perl 脚本被安装到 /usr/share/openldap/migration/ 中执行迁移。这些 Perl 脚本的配置信息包含在 migrate_common.ph 文件的开头。对于我们的目的来说只需要修改命名前缀的变量来使用条目的识别名就足够了如下所示$DEFAULT_BASE dcibm,dccom 在进行这些修改之后请运行脚本 migrate_base.pl它会创建根项并为 Hosts、Networks、Group 和 People 等创建低一级的组织单元清单 4. 运行 migrate_base.pl# migrate_base.pl base.ldif编辑 base.ldif删除除下面之外的所有条目清单 5. base.ldif 条目# cat base.ldifdn: dcibm,dccomdc: ibmobjectClass: topobjectClass: domaindn: ouPeople,dcibm,dccomou: PeopleobjectClass: topobjectClass: organizationalUnitdn: ouGroup,dcibm,dccomou: GroupobjectClass: topobjectClass: organizationalUnit在 LDAP 服务器上使用 OpenLDAP 客户机工具 ldapadd 将以下条目插入到数据库中。简单身份验证必须要使用 -x 选项指定。在 slapd.conf 中定义的 rootdn 身份验证识别名是 “cnManager,dcibm,dccom”。对于简单身份验证来说必须使用密码。选项 -W 强制提示输入密码。这个密码就是在 slapd.conf 文件中指定的 rootpw 参数的值。包含这些条目的 LDIF 文件是使用 -f 选项指定的清单 6. 使用 ldapadd 插入条目# ldapadd -x -D cnManager,dcibm,dccom -W -f base.ldif接下来从 /etc/group 中迁移 ldapuser 组清单 7. 迁移 ldapuser 组# grep ldapuser /etc/group group.in# ./migrate_group.pl group.in group.ldif# cat group.ldifdn: cnldapuser,ouGroup,dcibm,dccomobjectClass: posixGroupobjectClass: topcn: ldapuseruserPassword: {crypt}xgidNumber: 500# ldapadd -x -D cnManager,dcibm,dccom -W -f group.ldif最后从 /etc/passwd 和 /etc/shadow 中迁移 ldapuser 的信息清单 8. 迁移 ldapuser 信息# grep ldapuser /etc/passwd passwd.in# ./migrate_passwd.pl passwd.in passwd.ldif# cat passwd.ldifdn: uidldapuser,ouPeople,dcibm,dccomuid: ldapusercn: ldapuserobjectClass: accountobjectClass: posixAccountobjectClass: topobjectClass: shadowAccountuserPassword: {crypt$1$TeOlOcMc$cpQaa0WpLSFRC1HIHW5bt1shadowLastChange: 13048shadowMax: 99999shadowWarning: 7loginShell: /bin/bashuidNumber: 500gidNumber: 500homeDirectory: /home/ldapusergecos: ldapuser# ldapadd -x -D cnManager,dcibm,dccom -W -f passwd.ldif现在检查已经添加到数据库中的信息。清单 9 给出了全部输出结果清单 9. 以 LDIF 格式填充的 OpenLDAP 数据库# ldapsearch -x# extended LDIF## LDAPv3# base with scope sub# filter: (objectclass*)# requesting: ALL## ibm.comdn: dcibm,dccomdc: ibmobjectClass: topobjectClass: domain# People, ibm.comdn: ouPeople,dcibm,dccomou: PeopleobjectClass: topobjectClass: organizationalUnit# Group, ibm.comdn: ouGroup,dcibm,dccomou: GroupobjectClass: topobjectClass: organizationalUnit# ldapuser, Group, ibm.comdn: cnldapuser,ouGroup,dcibm,dccomobjectClass: posixGroupobjectClass: topcn: ldapusergidNumber: 500# ldapuser, People, ibm.comdn: uidldapuser,ouPeople,dcibm,dccomuid: ldapusercn: ldapuserobjectClass: accountobjectClass: posixAccountobjectClass: topobjectClass: shadowAccountshadowMax: 99999shadowWarning: 7loginShell: /bin/bashuidNumber: 500gidNumber: 500homeDirectory: /home/ldapusergecos: test2# search resultsearch: 2result: 0 Success# numResponses: 6# numEntries: 5配置 LDAP 客户机用来设置客户机的 Red Hat Enterprise Linux release 4 Update 1 包包括nss_ldap-226-6包括两个 LDAP 访问客户机nss_ldap 和 pam_ldap nss_ldap 是一组 C 库扩展它允许 LDAP 目录服务器用作一个用户和组信息的主源 pam_ldap 是一个 Linux-PAM 模块它支持身份验证功能 LDAP 身份验证要想正确地工作需要配置两个服务系统命名服务和身份验证服务。系统命名服务NSS需要配置为使用 LDAP 来解析诸如用户和组帐号之类的资源。例如在运行命令 ls -l 时如果某个文件 inode 给出文件的所有者是 “user 501”那么命名服务就需要将 “uid 501” 解析成用户名并在 ls 命令输出结果中输出。通常来说这是通过查找 /etc/passwd 文件中的所有用户帐号实现的。由于用户现在都存储在 LDAP 目录中因此系统需要配置成同时对 passwd 文件和 LDAP 目录中的帐号进行解析。这种功能是通过 /usr/lib/libnss_ldap.so 库提供的。身份验证服务是实际向 LDAP 验证用户身份的服务。可插入身份验证模块PAM提供了本地 Linux 身份验证服务。下面我们将配置 PAM 先对本地的 /etc/passwd 文件检查用户帐号然后再对 LDAP 服务器进行检查。PAM LDAP 模块可以用来将身份验证重定向到 LDAP 目录上。/lib/security/pam_ldap.so PAM 模块提供了 LDAP 身份验证功能。身份验证本身是由 PAM 程序执行的它从身份验证候选机制中获取用户名将其绑定到 OpenLDAP 服务器上检索与这个 uid 条目用户名条目相关的 DN从身份验证候选机制中获取密码然后使用这个 DN 和密码试图将其绑定到 OpenLDAP 服务器上。如果绑定成功PAM 会报告说这个用户已经成功通过了 pam_ldap.so 提供的身份验证测试。根据 PAM 的配置不同在用户看到命令行提示符之前可能会执行其他测试。我们可以采用两种方法来配置 LDAP 客户机。一种快速而简单的方法是运行 /usr/sbin/authconfig并在两个屏幕中输入信息。另外一种方法是通过编辑客户机 LDAP 配置文件 /etc/ldap.conf然后修改 /etc/nsswitch.conf、/etc/sysconfig/authconfig 和 /etc/pam.d/system-auth。首先让我们来看一下如何运行 authconfig。如图 3 所示进行选择然后点击 Next。图 3. 执行 authconfig 命令的第一个页面在如图 4 所示的第二个屏幕中输入对应的信息然后点击 OK。图 4. 执行 authconfig 命令的第二个页面要手工配置 OpenLDAP 客户机请遵循下面的步骤。用来跟踪特定身份验证机制是否已经启用的文件是 /etc/sysconfig/。我们可以希望以下条目的值都是 “yes”USELDAPyesUSELDAPAUTHyesUSEMD5yesUSESHADOWyesUSELOCAUTHORIZEyes PAM 和 NSS 模块使用的基本配置文件是 /etc/ldap.conf。host 选项指定 LDAP 服务器base 选项指定这个目录使用的 DN最初我们希望关闭加密功能host dhcp64-233.ibm.combase dcibm,dccomssl off 要让 NSS 服务使用 OpenLDAP 服务器需要将 “ldap” 添加到 /etc/nsswitch.conf 文件的 passwd、shadow 和 group 行中如下所示 passwd: files ldapshadow: files ldapgroup: files ldap 要让 PAM 身份验证服务使用 OpenLDAP 服务器请将 pam_ldap 行加入到 /etc/pam.d/system-auth 中位置在对应的标准 pam_unix.so 条目之后。尽管其他设置也可以实现相同的结果但是我使用下面的文件设置auth required /lib/security/$ISA/pam_env.soauth sufficient /lib/security/$ISA/pam_unix.so likeauth nullokauth sufficient /lib/security/$ISA/pam_ldap.so use_first_passauth required /lib/security/$ISA/pam_deny.soaccount required /lib/security/$ISA/pam_unix.so broken_shadowaccount sufficient /lib/security/$ISA/pam_localuser.soaccount sufficient /lib/security/$ISA/pam_succeed_if.so uid %lt; 100 quietaccount [defaultbad successok user_unknownignore] /lib/security/$ISA/pam_ldap.soaccount required /lib/security/$ISA/pam_permit.sopassword requisite /lib/security/$ISA/pam_cracklib.so retry3password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadowpassword sufficient /lib/security/$ISA/pam_ldap.so use_authtokpassword required /lib/security/$ISA/pam_deny.sosession required /lib/security/$ISA/pam_limits.sosession required /lib/security/$ISA/pam_unix.sosession optional /lib/security/$ISA/pam_ldap.so 现在用户帐号信息可以从客户机系统中删除并从 LDAP 目录中进行获取了。当用户试图登录客户机系统时PAM 身份验证服务就会从用户那里获取用户名在我们的例子中是 ldapuser。PAM 会从 LDAP 服务器中检索识别名DN条目 .dn: uidldapuser, ouPeople, dcibm, dccom.。PAM 然后会从用户那里获取密码。然后 PAM 试图使用这个 DN 和密码与 LDAP 服务器进行绑定。DN 和密码都以正文文本的格式发送给 LDAP 服务器。在对密码进行散列操作之后如果服务器可以让用户登录就会向 PAM 报告说已经成功进行了绑定。成功绑定可以完全满足 PAM 对 pam_ldap 模块汇报成功的标准如果所有其他 PAM 标准都已经满足了那么就允许用户登录到系统中。当 LDAP 服务器对身份验证进行处理时需要解决另外两个问题才能满足提供可靠安全的身份验证的目标。现在任何客户机系统不能成功地与 LDAP 服务器进行通信都会阻止用户登录客户机系统。在下一节中我们将看到如何消除这种单点故障这将显示客户机如何从备份服务器上访问 LDAP 目录。由于用户密码是在网络上以正文文本格式传输的因此这并不能满足安全身份验证的需求。配置 TLS 安全性 将解决这个问题。配置复制为了防止出现客户机由于 LDAP 服务器的问题而不能登录的情况我们需要采用复制技术来实现可靠性目标。复制是通过 OpenLDAP 复制进程 slurpd 提供的它会周期性地唤醒并检查主服务器上的日志文件从而确定是否有任何更新。这些更新然后会传播到从服务器上。读请求可以由任何一个服务器进行解 析而更新请求则只能由主服务器进行解析。客户机需要负责在推荐地址上重试更新操作。要配置复制需要停止 OpenLDAP 服务器的 slapd 守护进程清单 10. 停止服务# service ldap stop将以下内容添加到服务器的 /etc/openldap/slapd.conf 文件中从而启用对新从服务器的复制。replogfile 行的内容指定类 LDIF 变化应该写入的文件。replica 原语定义了变化应该传播到的主机#Replicas of this databasereplogfile /var/lib/ldap/replogreplica hostdhcp64-253.ibm.com:389    binddncnManager,dcibm,dccom    credentialssecret    bindmethodsimple在运行从 OpenLDAP 服务器的系统上请遵循 配置 LDAP 服务器 一节给出的步骤。然后通过将信息导出到一个 ldif 文件中并将其添加到从服务器数据库上从而将数据库从主服务器拷贝到复制服务器上。在主服务器上清单 11. 将数据导出到 LDIF 文件中# ldapsearch -x database.ldif在复制服务器上清单 12. 将数据添加到从服务器数据库中# ldapadd -x -D cnManager,dcibm,dccom -W -f database.ldif将以下内容添加到复制服务器的 /etc/openldap/slapd.conf 文件中。updatedn 指定了在更新从目录时主 slurpd 守护进程使用的 DN。updateref 指定的是主目录服务器。当一个 LDAP 客户机请求从服务器进行更新时从服务器就将客户机重定向到这个主服务器上。updatedn cnManager,dcibm,dccomupdateref ldap://dhcp64-233.ibm.com:389/ 启动复制 OpenLDAP 服务器当它运行之后再启动主 OpenLDAP 服务器。在主服务器上slapd 和 slurpd 都会启动。现在可以让 OpenLDAP 客户机除了主服务器之外还可以使用复制服务器这可以通过运行 authconfig 并将复制主机名添加到第二个屏幕中的 Server 行中实现也可以通过在 /etc/ldap.conf 中修改 host 实现host dhcp64-253.ibm.com dhcp64-233.ibm.com 为了确认复制可以正常工作需要研究一下在更新 gecos 属性时到底发生了什么。复制日志使用了与 LDIF 类似的格式。在读取 replogfile 之后slurpd 会将这个条目拷贝到自己的重做日志中。实际的变化都以 LDIF 格式保存在主 LDAP 服务器上 /var/lib/ldap/replica/ 中的 slurpd.replog 文件中。使用文件 user_mod 中的变化客户机程序 ldapmodify 应用这些变化清单 13. 应用 user_mod 的变化# cat user_moddn: uidldapuser,ouPeople,dcibm,dccomchangetype: modifyreplace: gecosgecos: test2# tail -f /var/lib/ldap/replog # ldapmodify -x -r -f /home/ldapuser/user_mod -DcnManager,dcibm,dccom -WEnter LDAP Password:modifying entry uidldapuser,ouPeople,dcibm,dccomreplica: dhcp64-253.ibm.com:389time: 1130111686dn: uidldapuser,ouPeople,dcibm,dccomchangetype: modifyreplace: gecosgecos: test2-replace: entryCSNentryCSN: 20051023235446Z#000001#00#000000-replace: modifiersNamemodifiersName: cnManager,dcibm,dccom-replace: modifyTimestampmodifyTimestamp: 20051023235446Z-配置 TLS 安全性LDAP 是以明文的格式通过网络来发送所有信息的包括密码。我们将采用 TLS 所提供的加密机制SSL 的后继者来解决这个问题。在传输层数据使用 TLS 协议进行加密和封装然后通过网络进行传输。用来配置加密的工具都是由 OpenSSL 包提供的。虽然加密是一个复杂的主题但是要使用 OpenSSL 包我们依然需要简要介绍一下 TLS 是如何工作的。数据块使用一个对称密钥算法进行加密它使用一个密钥来实现对数据的加密和解密。我们还有一个问题如何防止出现以正文文本格式将密钥从 LDAP 服务器发送到 LDAP 客户机上的情况。我们使用公钥算法来解决这个问题其中客户机可以使用一个自由获取的公钥对自己的密钥进行加密而只有服务器才可以对这个密钥进行解密。公钥是作为证书的一部分来创建和分发的其中包含了一些支持信息例如 ID、过期日期、提供这个证书的 LDAP 服务器的完整域名FQDN。在 LDAP 客户机使用证书进行加密之前它会验证自己正在与之进行交谈的服务器拥有这个证书这是通过加密一个挑战并验证服务器可以对其进行解密实现的。要验证发行这个证书的服务器是一个已经批准过的 LDAP 服务器客户机被配置为只接受本地证书机构CA所签署的证书。它使用 CA 所生成的证书中的公钥这个公钥保存到客户机中以验证这个 LDAP 所产生的证书是有效的。在这个例子中我们将自己的 LDAP 服务器设置为证书机构并创建一个自签署的证书供 LDAP 客户机和服务器在加密信息中使用。用来构建 TLS 服务器的 Red Hat Enterprise Linux release 4 Update 1 包是openssl-0.9.7a-43.1包括一个证书管理工具和提供各种加密算法和协议的共享库 要构建证书机构的工作环境并生成自己的自签署证书需要运行 /usr/share/ssl/misc/CA shell 脚本这是一个对 openssl 命令的封装程序。私密性增强邮件PEM是一种用来对数据进行加密和编码的格式清单 14. 运行 CA shell 脚本# cd /usr/share/ssl/misc# ./CA -newcaCA certificate filename (or enter to create)Making CA certificate ...Generating a 1024 bit RSA private key...............writing new private key to ./demoCA/private/./cakey.pemEnter PEM pass phrase:Verifying - Enter PEM pass phrase:Enter PEM pass phrase:Verifying - Enter PEM pass phrase:-----You are about to be asked to enter information that will be incorporated intoyour certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter ., the field will be left blank.-----Country Name (2 letter code) [GB]:USState or Province Name (full name) [Berkshire]:OregonLocality Name (eg, city) [Newbury]:BeavertonOrganization Name (eg, company) [My Company Ltd]:IBMOrganizational Unit Name (eg, section) []:itsCommon Name (eg, your name or your servers hostname) []:dhcp64-233.ibm.comEmail Address []:rootdhcp64-233.ibm.com接下来要生成由证书机构进行签署的服务器证书。其余的步骤只会对主 LDAP 服务器执行一次此时指定的是 CNdhcp64-233.ibm.com然后对从服务器执行一次此时指定的是 CNdhcp64-253.ibm.com。还要使用 nodes 选项这样就不用在每次启动 OpenLDAP 服务器守护进程 slapd 时都需要输入密码了。签署后的公钥被嵌入到证书请求 slapd-req.pem 中与之匹配的私钥嵌入在 slapd-key.pem 中清单 15. 生成服务器证书# openssl req -new -nodes -subj  /CNdhcp64-233.ibm.com/OIBM/CUS/STOregon/LBeaverton  -keyout slapd-key.pem -out slapd-req.pem -days 365Generating a 1024 bit RSA private key....................................................writing new private key to slapd-key.pem-----使用在第一个步骤中创建的 CA 证书对这个证书进行签署清单 16. 对证书进行签署# openssl ca -out slapd-cert.pem -infiles slapd-req.pemUsing configuration from /usr/share/ssl/openssl.cnfEnter pass phrase for ./demoCA/private/cakey.pem:Check that the request matches the signatureSignature okCertificate Details:    Serial Number: 1 (0x1)    Validity      Not Before: Oct 25 02:50:05 2005 GMT      Not After : Oct 25 02:50:05 2006 GMT    Subject:      countryName        US      stateOrProvinceName    Oregon      organizationName      IBM      commonName         dhcp64-233.ibm.com    X509v3 extensions:      X509v3 Basic Constraints:      CA:FALSE      Netscape Comment:      OpenSSL Generated Certificate      X509v3 Subject Key Identifier:      11:A2:FB:59:42:A4:B3:26:73:1D:6D:F5:4D:2F:80:F0:FA:10:38:F5      X509v3 Authority Key Identifier:      keyid:F7:6A:25:F5:76:BE:20:E7:8D:0F:51:EF:D8:86:7B:AF:2C:74:2F:80      DirName:/CUS/STOregon/LBeaverton/OIBM/OUits/CNdhcp64-233.ibm.com/emailAddressrootdhcp64-233.ibm.com      serial:00Certificate is to be certified until Oct 25 02:50:05 2006 GMT (365 days)Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]yWrite out database with 1 new entriesData Base Updated下一个步骤将所有需要的证书拷贝到 slapd 可以找到的地方。另外还要对每个文件强制采用正确的权限清单 17. 拷贝证书并强制设置权限# cp -p slapd-key.pem /etc/openldap/slapdkey.pem# cp -p slapd-cert.pem /etc/openldap/slapdcert.pem# chown ldap:ldap /etc/openldap/slapdcert.pem# chmod 644 /etc/openldap/slapdcert.pem# chown ldap:ldap /etc/openldap/slapdkey.pem# chmod 400 /etc/openldap/slapdkey.pem# mkdir /etc/openldap/cacerts/# cp /usr/share/ssl/misc/demoCA/cacert.pem /etc/openldap/cacerts/cacert.pem# chown ldap:ldap /etc/openldap/cacerts cacert.pem# chmod 644 /etc/openldap/cacerts cacert.pem在 OpenLDAP 服务器上将以下内容添加到 /etc/openldap/slapd.conf 文件的 global 段下面。TLSCertificateFile 和 TLSCertificateKeyFile 指定了证书文件和私钥文件的路径。TLSCipherSuite 指定了一个 OpenSSL 密码的列表slapd 在与 TLS 协商建立连接时可以从中按照降序顺序依次选择。HIGH 的意思是 “所有密钥的长度都大于 128 位”MEDIUM 表示 “所有密钥的长度都等于 128 位”SSLv2 表示 “不管密钥强度如何所有密码都是以 SSL 协议版本 2 的形式指定的”。TLSCipherSuite HIGH:MEDIUM:SSLv2TLSCACertificateFile /etc/openldap/cacerts/cacert.pemTLSCertificateFile /etc/openldap/slapdcert.pemTLSCertificateKeyFile /etc/openldap/slapdkey.pem 将以下内容添加到 LDAP 服务器的第二个配置文件 /etc/openldap/ldap.conf 中TLS_CACERTDIR /etc/openldap/cacertsTLS_REQCERT allow 为了允许从 OpenLDAP 客户机上使用安全连接需要将以下内容添加到 /etc/openldap/ldap.conf 文件中ssl start_tlstls_checkpeer yestls_cacertfile /etc/openldap/cacerts/cacert.pem 结束语按照本文给出的提示我们现在已经使用轻量级目录访问协议LDAP构建了一个集中的身份验证系统。我们最初是通过配置 LDAP 服务器来响应对 “dcibm,dccom” 的基本请求开始入手的。我们使用了一组 Perl 脚本来将用户帐号信息迁移到 LDAP 目录中。我们对 Linux 用户帐号服务、PAM 和 NSS 服务进行了修改从而可以从 LDAP 服务器中检索用户信息。还设置了一个 LDAP 服务器副本作为备用服务器来响应客户机的请求。然后使用 TLS 协议在 LDAP 客户机和服务器之间对通信进行安全加密。恭喜为了参考方便下面给出了本文中使用的配置文件的完整清单。清单 18. 本文例子中使用的服务器 /etc/openldap/slapd.conf 文件## See slapd.conf (5) for details on configuration options.#include     /etc/openldap/schema/core.schemainclude     /etc/openldap/schema/cosine.schemainclude     /etc/openldap/schema/inetorgperson.schemainclude     /etc/openldap/schema/nis.schemaloglevel    256pidfile     /var/run/slapd.pidargsfile    /var/run/slapd.args# The next three lines allow use of TLS for encrypting connections.TLSCipherSuite HIGH:MEDIUM:SSLv2TLSCACertificateFile  /etc/openldap/cacerts/cacert.pemTLSCertificateFile   /etc/openldap/slapdcert.pemTLSCertificateKeyFile  /etc/openldap/slapdkey.pem# access control policy:# Restrict password access to change by owner and authentication.# Allow read access by everyone to all other attributes.access to attrsshadowLastChange,userPassword  by self write  by * authaccess to *  by * read######################################################################## database definition#######################################################################database    bdbsuffix     dcibm,dccomrootdn     cnManager,dcibm,dccomrootpw     {MD5}ijFYNcSNctBYgdirectory    /var/lib/ldap# Indices to maintain for this databaseindex objectClass            eq,presindex ou,cn,mail,surname,givenname   eq,pres,subindex uidNumber,gidNumber,loginShell  eq,presindex uid,memberUid           eq,pres,subindex nisMapName,nisMapEntry      eq,pres,sub#Replicas of this databasereplica hostdhcp64-253.ibm.com:389    binddncnManager,dcibm,dccom    credentialssecret    bindmethodsimplereplogfile /var/lib/ldap/replog清单 19. 本文例子中使用的服务器 /etc/openldap/ldap.conf 文件## LDAP Defaults## See ldap.conf(5) for detailsHOST 127.0.0.1BASE dcibm,dccomTLS_CACERTDIR /etc/openldap/cacertsTLS_REQCERT allow清单 20. 本文例子中使用的客户机 /etc/ldap.conf 文件a# (#)$Id: ldap.conf,v 1.34 2004/09/16 23:32:02 lukeh Exp $## This is the configuration file for the LDAP nameservice# switch library and the LDAP PAM module.## PADL Software# [url]http://www.padl.com[/url]## Your LDAP server.# Multiple hosts may be specified, each separated by a# space.host dhcp64-233.ibm.com dhcp64-233.ibm.com# The distinguished name of the search base.base dcibm,dccom# OpenLDAP SSL mechanism, start_tls mechanism uses the normal LDAP port 389ssl start_tls#Require and verify server certificatetls_checkpeer yes# CA certificates for server certificate verificationtls_cacertfile /etc/openldap/cacerts/cacert.pempam_password md5本文转载于[url]http://tech.ddvip.com/2008-11/122654066191943.html[/url] 转载于:https://blog.51cto.com/lanlfeng/119401
http://www.pierceye.com/news/571532/

相关文章:

  • 做腰椎核磁证网站是 收 七设计网络品牌营销方案思路
  • 外贸网站建站系统基于php网站开发
  • 可以做代销的网站都有哪些神马网站快速排名案例
  • 个人能申请网站吗百度站长提交网址
  • 给素材网站做签约设计不想做了网络规划设计师教程第2版pdf
  • 新做的网站怎样推广html代码加密
  • 织梦淘宝客网站嘉兴网站开发公司
  • 宁波网站推广营销网上购物软件哪个好
  • 网站 风格做网站都可以做什么
  • 网站的建设公司简介现在建站好么
  • 简述电子商务网站建设流程wordpress极速优化
  • 移动网站怎么做万维设计
  • 建设网站我们重中之重-用户体验企业网站模板 首页大图
  • 怎么在本地做网站wordpress 建表
  • wordpress整站数据网站设计公司排名
  • 常州建设局网站海南网站建设报价方案
  • 做网站流量怎么解决广州热点新闻
  • 浙江省网站icp备案网页设计大赛海报
  • 做传奇开服一条龙网站哪个好学计算机网站建设
  • 商城网站素材wordpress影视解析插件
  • 昆明市住房和城乡建设局门户网站如何做自己官方网站
  • 微网站官网室内设计平面图素材
  • 国外做袜靴的网站wordpress在后台文章自定义表单
  • 网站商城建设实训心得优质校建设网站
  • 皖icp网站建设专业建设存在问题及改进建议
  • 建设网银登录网站wordpress怎么删除目录下
  • 网站建设帖子微信附近人推广引流
  • 苏州建网站要多少钱龙岩推广公司
  • 网站二次开发做外贸网站策划
  • 珠海建网站公司wordpress 关闭访问