编辑: JZS133 | 2019-10-17 |
维护人员透过位址、使用者名称以及密码 t解设备应用环境设定资讯,此时透过机器清单、帐号和密码尝试登入系统, 发现大部分机器无法登入. 登入过程中发现大量以 root 进行登入,无论是测试环境还是工作环境,为了保 障系统、应用服务安全,都不建议以 root 身份登入系统进行操作. 透过伺服器清单发现大部分密码设定过於简单,极其容易被攻击者所破解.同 时使用者权限没有得到灵活控制,大部分使用者都有 root 权限,这在维护中增 加了系统潜在操作的风险. 当系统、应用出现异常时,透过伺服器清单提供的位址、帐号和密码无法登入 系统,只好透过离职人员取得帐号和密码进行故障处理,处理时效大大延迟, 且帐号安全无法得到保障. 从以上案例解读,读者不难发现帐号管理存在以下问题: y 系统帐号身份无法集中管理;
y 系统帐号权限无法集中控制;
y 系统帐号授权无法集中管理;
y 系统帐号稽核无法集中管理;
y 系统帐号密码策略无法集中控制. 1-2 OpenLDAP 介绍及工作原理详解 为了规避以上问题存在的风险点及维护管理带来的异常,一般可以透过商业化软体 以及开放原始码软体实现帐号集中管理.由於商业化软体价格昂贵,此时透过开源 集中帐号管理(OpenLDAP)软体是不错的选择,且它功能强大、灵活性强、架构 成熟,其中的权限控制、存取控制、主机权限策略、密码稽核、同步机制以及透过 协力厂商开源工具实现高负载高可用等,提供一整套安全的帐号统一管理机制. 使用者透过集中认证管理平台实现身份、权限的验证,获得伺服器授权之后登入系 统及应用管理平台,此时使用者可自我管理帐号、密码,且无须管理员干涉密码修 改,实现使用者帐号自身安全性.使用者透过验证伺服器取得主机登入策略,取得 OpenLDAP 伺服器的授权,从而实现使用者登入主机的灵活控制. 本书将透过三篇一步步带领读者t解 OpenLDAP 及其工作原理和实现方式、安装 设定、用户端部署、命令 GUI 管理、加密演算法、进阶功能模组实现以及企业应 用案例等模组.本章介绍什麽是 OpenLDAP、它的工作原理以及相关术语. 1.1 关於 OpenLDAP 1.1.1 OpenLDAP 是什麽 OpenLDAP 是一款羽量级目录存取协定(Lightweight Directory Access Protocol, LDAP) ,属於开源集中帐号管理架构的实现,且支援众多系统版本,被广大网际网 路公司所采用. LDAP 具有两个国家标准,分别是 X.500 和LDAP.OpenLDAP 是基於 X.500 标 准的,而且去除了 X.500 复杂的功能并且可以根晕倚枨罂椭贫钔饫┱构δ, 但与 X.500 也有不同之处,例如 OpenLDAP 支援 TCP/IP 协定等,目前 TCP/IP 是Internet 网路的存取协定. OpenLDAP 则直接运行在更简单和更通用的 TCP/IP 或其他可靠的传输协定层上, 避免了在 OSI 工作阶段层和展示层的消耗,使连接的建立和封包的处理更简单、 更快,对於网际网路和企业网应用更理想.LDAP 提供并实现目录服务的资讯服 务,目录服务是一种特殊的资料库系统,对於资料的读取、浏览、搜索有很好的效 果.目录服务一般用来包含基於属性的描述性资讯并支援精细复杂的过滤功能,但1-9 1.2.3 企业级命名组织架构 企业级命名组织架构的例如图 1-3 所示. 图1-3 LDAP 企业规划命名方式 1.2.4 OpenLDAP 的系统架构 OpenLDAP 目前是一款开源帐号集中管理软体,且属 於C/S 架构(见图 1-4) .透过设定伺服器和用户端, 实现帐号的管理,并透过与协力厂商应用相结合,实 现用户端所有帐号均可透过伺服端进行验证,例如 Samba、Apache、Zabbix、FTP、Post?x、EMC 储存以 及系统登入验证并授权. 图1-4 OpenLDAP 的C/S 架构 1.2.5 OpenLDAP 的工作模型 OpenLDAP 的工作模型如图 1-5 所示. 图1-5 OpenLDAP 的工作模型 其他 , 网路…… 1-11 以下原始码可用於取得当前系统 OpenLDAP 所使用的 schema 规,t解当前所使 用的 schema 档,这有助於新增目录树中的 entry 资讯,如物件类别以及包含哪些属 性及值,减少新增 entry 提示的各种语法错误. [root@mldap01 schema]# cat /etc/openldap/slapd.conf | grep '
^incl*'
include /etc/openldap/schema/corba.schema include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema #定义网路资讯服务 include /etc/openldap/schema/openldap.schema #OpenLDAP自身 include /etc/openldap/schema/ppolicy.schema #定义使用者密码规则,例如密码长度 及复杂度 include /etc/openldap/schema/collective.schema schema 在OpenLDAP 目录树中承接规、对entry 所包含的 objectClass 以及资料 位元组数、格式等来保证整个目录树的完整性. 1.3.2 取得 schema 的途径 预设安装 OpenLDAP 元件后,系统设定已定义一组常用的 schema 档,这组档 案一般存放在/etc/openldap/schema 目录内, 可透过include 引用. 当所定义的objectClass 不存在时,该如何取得 objectClass ?下面就介绍如何取得 schema 来包 含objectClass.
1 伺服器自身产生的 schema 档 透过伺服器自身套件的安装来产生 schema 档,本节以 sudo 为例,示其过程. X 查看套件产生的档案清单,原始码如下: # rpm -ql sudo-1.8.6p3 | grep -i schema /usr/share/doc/sudo-1.8.6p3/schema.ActiveDirectory /usr/share/doc/sudo-1.8.6p3/schema.OpenLDAP /usr/share/doc/sudo-1.8.6p3/schema.iPlanet 2-16 OpenLDAP 伺服器安装与设定 X 建立 OpenLDAP 索引. 透过建立索引(index) ,提高读写效率,这类似於关联式资料库中索引的概念. index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres 2.5 OpenLDAP 单节点设定案例 2.5.1 安装环境规划 安装环境的拓扑图如图 2-1 所示. 图2-1 安装环境拓扑图 安装环境要求如下: X 环境平台:VMware ESXi 5.0.0 X 系统版本:Red Hat Enterprise Linux Server release 6.5 (Santiago) X 软体版本:OpenLDAP-2.4.23-32 IP 位址及主机名称规划如表 2-1 所示. 使用者 2-26 OpenLDAP 伺服器安装与设定 2. 设定 OpenLDAP slapd 行程,系统启动时运行等级. [root@mldap01 ~]# chkconfig slapd on [root@mldap01 ~]# chkconfig --list slapd slapd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 3. 检查 OpenLDAP 服务启动所产生的 PID 档及参数档. [root@mldap01 ~]# ls -l /var/run/openldap/ total
8 -rw-r--r--.
1 ldap ldap
48 Nov
27 08:18 slapd.args -rw-r--r--.
2 ldap ldap
5 Nov
27 08:18 slapd.pid 4. 检查 OpenLDAP 服务是否正常启动. [root@mldap01 ~]# netstat -ntplu | grep slapd tcp
0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1890/slapd tcp
0 0 :::389 :::* LISTEN 1890/slapd 透过 netstat -ntplu 命令的运行结果可知,OpenLDAP 服务行程 slapd 在后端正常运 行,预设 slapd 行程使用 TCP 协定,预设使用的通讯埠为 389(透过 SSL 协定加密 后,slapd 行程使用
663 埠) . 2.6 OpenLDAP 目录树规划 2.6.1 规划 OpenLDAP 目录树组织架构 要规划 OpenLDAP 目录树组织架构,可按以下步骤操作: 1. 将规划的 DN 新增到 OpenLDAP 目录树中.也可以将如下内容新增至 ldif 档中,然后透过 ldapadd 进行导入即可. [root@mldap01 ~]# cat bdb_cache_release_all slaptest destroy: freeing system resources. 3.2.10 slapindex 命令 slapindex 用於建立 OpenLDAP 资料库 entry 索引,用於提高查询速度,减轻伺服器 回应压力,前提是 slapd 行程停止,否则会提示错误. 语法:slapindex [ 参数 ] /usr/sbin/slapindex [-b suffix] [-c] [-d debug-level] [-f slapd.conf] [-F confdir] [-g] [-n dbnum] [-o option[=value]] [-q] [-t] [-v] [attr[...]] 下面介绍 slapindex 常用参数. -f:指定 OpenLDAP 的设定档,并建立索引. -F:检测指定 OpenLDAP 资料库目录,并建立索引. 3.2.11 slapcat 命令 slapcat 命令用於将资料 entry 转换为 OpenLDAP 的LDIF 档,可用於 OpenLDAP Entry 的备份以及结合 slapdadd 指令用於恢复 entry,后面章节也会涉及该命令. 语法:slapcat [ 参数 ] /usr/sbin/slapcat [-a filter] [-b suffix] [-c] [-d debug-level] [-f slapd.conf] [-F confdir] [-g] [-HURI][-l ldif-file] [-n dbnum] [-o option[=value]] [-s subtree- dn] [-v] 4-3 图4-1 Lenovo RD640 管理画面与 LDAP 验证方式的设定 4.1.3 EMC Web 控制台整合 LDAP 资料是企业的命脉,为了保障资料的安全性,大部分企业采用开源储存软体保障资 料的安全,也有部分企业购买商业化的储存设备保障资料的安全. 对於储存设备的各项变更操作均须登入储存控制台进行操作,此时需要提供帐号和 密码进行登入.为了简化其操作,储存设备同样支援以 ........