会计考友 发表于 2012-8-4 12:16:06

如何应用Linux上的OpenLDAP集群

Linux服务器具有低成本、性能卓越、代码开放等特性。越来越多的企业正在准备或已经采用Linux担起了企业应用服务器的重任。本文要介绍的是笔者在实际工作中,采用Linux和其它开放套件共同部署高可靠性LDAP认证服务的实例。 系统所要用到的软件包括: Red Hat 7.2; OpenLDAP 2.1,www.openldap.org; Heartbeat 1.04,www.linux-ha.org。 合理的流程提供高可靠性 OpenLDAP在该系统的网络应用体系中用于对所有应用提供统一的身份认证服务,还包括如邮件路由、地址、联系人信息等其它信息的查询。LDAP作为一种特殊的数据库,通过对读取、查询操作进行特别的优化和处理,以保证在查询速度方面的优势,所以特别适合用来统一企业的各种认证服务,从而规范各种业务系统的同一登录身份和口令。当然,它的缺点和优点一样明显,比如不善于update、insert等操作,但是如果把它作为中央认证数据库,则正好可以利用它的长处而回避它的弱点。 由于系统采用了LDAP作为所有应用的中央认证数据库,一旦该LDAP服务器失效,则系统网络环境中所有依赖于该数据库的应用都会受到影响,甚至停止提供相应的服务。为了避免这种情况的发生,就要通过两台LDAP服务器建立一个高可靠性的认证数据库集群,同时对其它应用系统提供统一的数据库访问网络接口。系统网络结构图如图1。 图1 系统网络结构图从图1可以看到,整个系统分为三层:应用服务器、数据库中间引擎和OpenLDAP数据库集群。所有的应用服务器通过数据库中间引擎,以及通过rsh方式来执行其它远程应用服务器上的midd启动模式上的配置文件如下,这是一个简单的配置例子。配置文件名:slapd.conf文件内容:
  include/Opt/LDAP/etc/openldap/schema/core.schemainclude/Opt/LDAP/etc/openldap/schema/corba.schemainclude/Opt/LDAP/etc/openldap/schema/cosine.schemainclude/Opt/LDAP/etc/openldap/schema/inetorgperson.schemainclude/Opt/LDAP/etc/openldap/schema/java.schemainclude/Opt/LDAP/etc/openldap/schema/nis.schemainclude/Opt/LDAP/etc/openldap/schema/misc.schemainclude/Opt/LDAP/etc/openldap/schema/mail.schemainclude/Opt/LDAP/etc/openldap/schema/openldap.schemaaccess to *by self writeby dn.base="cn=Manager,dc=yourdomain,dc=com" writeby * readpidfile/Opt/LDAP/var/slapd.pidargsfile /Opt/LDAP/var/slapd.args# ldbm database definitions#database bdbdatabaseldbmsuffix"dc=yourdomain,dc=com"rootdn"cn=Manager,dc=yourdomain,dc=com"# Cleartext passwords, especially for the rootdn, should# be avoid. See slappasswd(8) and slapd.conf(5) for details.# Use of strong authentication encouraged.rootpwtest# The database directory MUST exist prior to running slapd AND# should only be accessible by the slapd/tools. Mode 700 recommended.replogfile /Opt/LDAP/var/slapd.replogdirectory/Opt/LDAP/var/ldbm# Indices to maintainaccess to attr=userPasswordby self writeby anonymous authby dn.base="cn=Manager,dc=yourdomain,dc=com" writeby * noneaccess to *by self writeby dn.base="cn=Manager,dc=yourdomain,dc=com" writeby * nodeindex objectClasseqreplica host=slave:389binddn="cn=Manager,dc=yourdomain,dc=com"bindmethod=simple credentials=test
  2.从LDAP服务器LifekeeperLifekeeper是一款著名的高可靠性软件,能支持32个节点的应用,支持Linux、x86 Solaris和Windows等操作系统。参见http://oss.missioncriticallinux.com/projects/kimberlite。 ha.cf
  logfile /var/log/ha-loglogfacility local0keepalive 2deadtime 30warntime 10initdead 120ucast eth0 192.168.1.101nice_failbackon//保证slave变为master后,即使master恢复启动服务也不转移,从而保证LDAP数据同步。node masternode slave
  (2)authkeysauth 33 md5 test (3)haresourcesmaster 192.168.1.200 myexec (4)进入/opt/ha/etc/ha.d/resource.d,创建执行脚本myexec。当Heartbeat软件监控到其它节点出现故障时,会执行该脚本并完成以下工作:如果本机是主LDAP服务器,则必须以某种方式(邮件或手机短信)来通知系统管理员,备用服务器出现故障;如果是从服务器监控到主服务器不可用状态,则必须以主LDAP模式启动LDAP服务,并通过rsh重新启动远程midd启动模式。
  主LDAP服务器上的myexec文件内容如下:
  MASNODE=‘master‘PIDFILE=/Opt/LDAP/var/slapd.pidAPP=/Opt/LDAP/libexec/slapdSLURP
页: [1]
查看完整版本: 如何应用Linux上的OpenLDAP集群