免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2430 | 回复: 0
打印 上一主题 下一主题

[ldap] EMOS无法验证openldap用户 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-20 09:29 |只看该作者 |倒序浏览
前面我发了一个OPENLDAP+EMOS的帖子,在EMOS服务器里安装好了openldap客户端,并ldapsearch 了OPENLDAP服务的目录结构可以查看到,说明是和OPENLDAP服务器是可以连接上的,ID OPENLDAP的用户也可以查看到UID号等信息如下面所示:
  1. [root@webmail ~]# ldapsearch -x -b "dc=promise,dc=com"
  2. # extended LDIF
  3. #
  4. # LDAPv3
  5. # base <dc=promise,dc=com> with scope subtree
  6. # filter: (objectclass=*)
  7. # requesting: ALL
  8. #

  9. # promise.com
  10. dn: dc=promise,dc=com
  11. dc: promise
  12. objectClass: dcObject
  13. objectClass: organizationalUnit
  14. ou: promise Dot com

  15. # Manager, promise.com
  16. dn: cn=Manager,dc=promise,dc=com
  17. objectClass: top
  18. objectClass: organizationalRole
  19. cn: Manager

  20. # extmailAccount, promise.com
  21. dn: ou=extmailAccount,dc=promise,dc=com
  22. objectClass: organizationalUnit
  23. ou: extmailAccount

  24. # extmailAlias, promise.com
  25. dn: ou=extmailAlias,dc=promise,dc=com
  26. objectClass: organizationalUnit
  27. ou: extmailAlias

  28. # extmailManager, promise.com
  29. dn: ou=extmailManager,dc=promise,dc=com
  30. objectClass: organizationalUnit
  31. ou: extmailManager

  32. # promise.com, extmailAccount, promise.com
  33. dn: virtualDomain=promise.com,ou=extmailAccount,dc=promise,dc=com
  34. virtualDomain: promise.com
  35. description: A virtualDomain for promise.com
  36. hashDirPath: A0/B0
  37. Transport: virtual:
  38. domainMaxQuota: 1073741824
  39. domainMaxUsers: 50
  40. domainMaxAlias: 50
  41. domainMaxNetStore: 1073741824
  42. defaultQuota: 5242880
  43. defaultNetStore: 5242880
  44. defaultExpire: 1y
  45. disablesmtpd: 0
  46. disablesmtp: 0
  47. disablewebmail: 0
  48. disablenetdisk: 0
  49. disableimap: 1
  50. disablepop3: 0
  51. active: 1
  52. expireDate: 2015-10-01
  53. createDate: 2007-02-14 13:47:56
  54. objectClass: top
  55. objectClass: extmailDomain

  56. # postmaster@promise.com, promise.com, extmailAccount, promise.com
  57. dn: mail=postmaster@promise.com,virtualDomain=promise.com,ou=extmailAccount,dc
  58. =promise,dc=com
  59. cn: Test user
  60. uid: test
  61. mail: postmaster@promise.com
  62. virtualDomain: promise.com
  63. mailMessageStore: promise.com/postmaster/Maildir/
  64. homeDirectory: promise.com/postmaster
  65. userName: postmaster@promise.com
  66. mailQuota: 104857600S
  67. netdiskQuota: 52428800S
  68. uidNumber: 1000
  69. gidNumber: 1000
  70. active: 1
  71. disablesmtpd: 0
  72. disablesmtp: 0
  73. disablewebmail: 0
  74. disablenetdisk: 0
  75. disableimap: 0
  76. disablepop3: 0
  77. expireDate: 2015-10-01
  78. createDate: 2007-02-14 17:56:33
  79. objectClass: top
  80. objectClass: uidObject
  81. objectClass: extmailUser

  82. # support@promise.com, extmailAlias, promise.com
  83. dn: mailLocalAddress=support@promise.com,ou=extmailAlias,dc=promise,dc=com
  84. mailLocalAddress: support@promise.com
  85. virtualDomain: promise.com
  86. mail: postmaster@promise.com
  87. active: 1
  88. objectClass: extmailAlias

  89. # root@promise.com, extmailManager, promise.com
  90. dn: mail=root@promise.com,ou=extmailManager,dc=promise,dc=com
  91. cn: root
  92. uid: root
  93. mail: root@promise.com
  94. managerType: admin
  95. active: 1
  96. question: who are you?
  97. answer: postmaster
  98. disablePasswdChange: 0
  99. createDate: 2007-02-14 18:32:14
  100. expireDate: 2015-08-01
  101. objectClass: top
  102. objectClass: extmailManager

  103. # user, promise.com
  104. dn: ou=user,dc=promise,dc=com
  105. ou: user
  106. objectClass: organizationalUnit

  107. # sam, user, promise.com
  108. dn: uid=sam,ou=user,dc=promise,dc=com
  109. uid: sam
  110. cn: sam
  111. objectClass: account
  112. objectClass: posixAccount
  113. objectClass: top
  114. objectClass: shadowAccount
  115. shadowLastChange: 14323
  116. shadowMax: 99999
  117. shadowWarning: 7
  118. loginShell: /bin/bash
  119. uidNumber: 1005
  120. gidNumber: 1005
  121. homeDirectory: /home/sam

  122. # sz, user, promise.com
  123. dn: uid=sz,ou=user,dc=promise,dc=com
  124. uid: sz
  125. cn: sz
  126. objectClass: account
  127. objectClass: posixAccount
  128. objectClass: top
  129. objectClass: shadowAccount
  130. shadowLastChange: 14323
  131. shadowMax: 99999
  132. shadowWarning: 7
  133. loginShell: /bin/bash
  134. uidNumber: 1005
  135. gidNumber: 1005
  136. homeDirectory: /home/sz

  137. # htc, user, promise.com
  138. dn: cn=htc,ou=user,dc=promise,dc=com
  139. cn: htc
  140. sn: htc
  141. objectClass: person
  142. objectClass: inetOrgPerson
  143. givenName: htc
  144. mail: szy8706@yeah.net
  145. telephoneNumber: 13302903040
  146. title: Employee

  147. # promise, user, promise.com
  148. dn: uid=promise,ou=user,dc=promise,dc=com
  149. uid: promise
  150. cn: promise
  151. objectClass: account
  152. objectClass: posixAccount
  153. objectClass: top
  154. objectClass: shadowAccount
  155. shadowLastChange: 14323
  156. shadowMax: 99999
  157. shadowWarning: 7
  158. loginShell: /bin/bash
  159. uidNumber: 1005
  160. gidNumber: 1005
  161. homeDirectory: /home/promise

  162. # leaf jack, promise.com, extmailAccount, promise.com
  163. dn: cn=leaf jack,virtualDomain=promise.com,ou=extmailAccount,dc=promise,dc=com
  164. cn: leaf jack
  165. mail: jack@promise.com
  166. givenName: leaf
  167. sn: jack
  168. objectClass: inetOrgPerson
  169. objectClass: top
  170. uid: jack

  171. # search result
  172. search: 2
  173. result: 0 Success

  174. # numResponses: 16
  175. # numEntries: 15
  176. [root@webmail ~]#
复制代码
ID 查看OPENLDAP服务器里面的用户信息
  1. [root@webmail ~]# id sam
  2. uid=1005(sam) gid=1005 groups=1005

  3. [root@webmail ~]# id jack
  4. id: jack: No such user
复制代码
这里查Jack用户信息不到,应该是没有给UidNumber和GidNumber号

上面这些信息都是EMOS服务器上查看OPENLDAP服务器上的信息

下面帖出EMOS的INIT.LDIF的信息(有修改,并成功导入)
  1. [root@localhost data]# cat init.ldif
  2. dn: dc=promise,dc=com
  3. dc: promise
  4. objectClass: dcObject
  5. objectClass: organizationalUnit
  6. ou: promise Dot com

  7. dn: cn=Manager,dc=promise,dc=com
  8. objectClass: top
  9. objectClass: organizationalRole
  10. cn: Manager

  11. dn: ou=extmailAccount,dc=promise,dc=com
  12. objectClass: organizationalUnit
  13. ou: extmailAccount

  14. dn: ou=extmailAlias,dc=promise,dc=com
  15. objectClass: organizationalUnit
  16. ou: extmailAlias

  17. dn: ou=extmailManager,dc=promise,dc=com
  18. objectClass: organizationalUnit
  19. ou: extmailManager

  20. dn: virtualDomain=promise.com, ou=extmailAccount, dc=promise, dc=com
  21. virtualDomain: promise.com
  22. description: A virtualDomain for promise.com
  23. hashDirPath: A0/B0
  24. Transport: virtual:
  25. domainMaxQuota: 1073741824
  26. domainMaxUsers: 50
  27. domainMaxAlias: 50
  28. domainMaxNetStore: 1073741824
  29. defaultQuota: 5242880
  30. defaultNetStore: 5242880
  31. defaultExpire: 1y
  32. disablesmtpd: 0
  33. disablesmtp: 0
  34. disablewebmail: 0
  35. disablenetdisk: 0
  36. disableimap: 1
  37. disablepop3: 0
  38. active: 1
  39. expireDate: 2015-10-01
  40. createDate: 2007-02-14 13:47:56
  41. objectclass: top
  42. objectclass: extmailDomain

  43. dn: mail=postmaster@promise.com, virtualDomain=promise.com, ou=extmailAccount, dc=promise, dc=com
  44. cn: Test user
  45. uid: test
  46. mail: postmaster@promise.com
  47. virtualDomain: promise.com
  48. mailMessageStore: promise.com/postmaster/Maildir/
  49. homeDirectory: promise.com/postmaster
  50. userName: postmaster@promise.com
  51. mailQuota: 104857600S
  52. netdiskQuota: 52428800S
  53. uidNumber: 1000
  54. gidNumber: 1000
  55. userPassword: {CRYPT}$1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0
  56. active: 1
  57. disablesmtpd: 0
  58. disablesmtp: 0
  59. disablewebmail: 0
  60. disablenetdisk: 0
  61. disableimap: 0
  62. disablepop3: 0
  63. expireDate: 2015-10-01
  64. createDate: 2007-02-14 17:56:33
  65. objectClass: top
  66. objectClass: uidObject
  67. objectClass: extmailUser

  68. dn: mailLocalAddress=support@promise.com, ou=extmailAlias, dc=promise, dc=com
  69. mailLocalAddress: support@promise.com
  70. virtualDomain: promise.com
  71. mail: postmaster@promise.com
  72. active: 1
  73. objectclass: extmailAlias

  74. dn: mail=root@promise.com, ou=extmailManager, dc=promise, dc=com
  75. cn: root
  76. uid: root
  77. mail: root@promise.com
  78. userPassword: {CRYPT}$1$BrT9qxfB$Ha81Mb5YVV6rNKNN5jmtj1
  79. managerType: admin
  80. active: 1
  81. question: who are you?
  82. answer: postmaster
  83. disablePasswdChange: 0
  84. createDate: 2007-02-14 18:32:14
  85. expireDate: 2015-08-01
  86. objectclass: top
  87. objectclass: extmailManager
  88. [root@localhost data]#
复制代码
下面贴出OPENLDAP的SLAPD.CONF
  1. [root@localhost openldap]# cat slapd.conf
  2. #
  3. # See slapd.conf(5) for details on configuration options.
  4. # This file should NOT be world readable.
  5. #

  6. include         /etc/openldap/schema/corba.schema
  7. include         /etc/openldap/schema/core.schema
  8. include         /etc/openldap/schema/cosine.schema
  9. include         /etc/openldap/schema/duaconf.schema
  10. include         /etc/openldap/schema/dyngroup.schema
  11. include         /etc/openldap/schema/inetorgperson.schema
  12. include         /etc/openldap/schema/java.schema
  13. include         /etc/openldap/schema/misc.schema
  14. include         /etc/openldap/schema/nis.schema
  15. include         /etc/openldap/schema/openldap.schema
  16. include         /etc/openldap/schema/ppolicy.schema
  17. include         /etc/openldap/schema/collective.schema
  18. include         /etc/openldap/schema/samba.schema
  19. include         /etc/openldap/schema/extmail.schema

  20. # Allow LDAPv2 client connections.  This is NOT the default.
  21. allow bind_v2

  22. # Do not enable referrals until AFTER you have a working directory
  23. # service AND an understanding of referrals.
  24. #referral       ldap://root.openldap.org

  25. pidfile         /var/run/openldap/slapd.pid
  26. argsfile        /var/run/openldap/slapd.args

  27. # Load dynamic backend modules
  28. # - modulepath is architecture dependent value (32/64-bit system)
  29. # - back_sql.la overlay requires openldap-server-sql package
  30. # - dyngroup.la and dynlist.la cannot be used at the same time

  31. # modulepath /usr/lib/openldap
  32. # modulepath /usr/lib64/openldap

  33. # moduleload accesslog.la
  34. # moduleload auditlog.la
  35. # moduleload back_sql.la
  36. # moduleload chain.la
  37. # moduleload collect.la
  38. # moduleload constraint.la
  39. # moduleload dds.la
  40. # moduleload deref.la
  41. # moduleload dyngroup.la
  42. # moduleload dynlist.la
  43. # moduleload memberof.la
  44. # moduleload pbind.la
  45. # moduleload pcache.la
  46. # moduleload ppolicy.la
  47. # moduleload refint.la
  48. # moduleload retcode.la
  49. # moduleload rwm.la
  50. # moduleload seqmod.la
  51. # moduleload smbk5pwd.la
  52. # moduleload sssvlv.la
  53. # moduleload syncprov.la
  54. # moduleload translucent.la
  55. # moduleload unique.la
  56. # moduleload valsort.la

  57. # The next three lines allow use of TLS for encrypting connections using a
  58. # dummy test certificate which you can generate by changing to
  59. # /etc/pki/tls/certs, running "make slapd.pem", and fixing permissions on
  60. # slapd.pem so that the ldap user or group can read it.  Your client software
  61. # may balk at self-signed certificates, however.
  62. TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
  63. TLSCertificateFile /etc/pki/tls/certs/slapd.pem
  64. TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem

  65. # Sample security restrictions
  66. #       Require integrity protection (prevent hijacking)
  67. #       Require 112-bit (3DES or better) encryption for updates
  68. #       Require 63-bit encryption for simple bind
  69. # security ssf=1 update_ssf=112 simple_bind=64

  70. # Sample access control policy:
  71. #       Root DSE: allow anyone to read it
  72. #       Subschema (sub)entry DSE: allow anyone to read it
  73. #       Other DSEs:
  74. #               Allow self write access
  75. #               Allow authenticated users read access
  76. #               Allow anonymous users to authenticate
  77. #       Directives needed to implement policy:
  78. access to dn.base="" by * read
  79. access to dn.base="cn=Subschema" by * read
  80. access to *
  81.         by self write
  82.         by users read
  83.         by anonymous auth
  84.         by anonymous read
  85.         by * none
  86. #
  87. # if no access controls are present, the default policy
  88. # allows anyone and everyone to read anything but restricts
  89. # updates to rootdn.  (e.g., "access to * by * read")
  90. #
  91. # rootdn can always read and write EVERYTHING!
  92. ###acces control policy
  93. #access to dn.subtree="dc=promise,dc=com" attrs=uid,userPassword
  94. #    by self write
  95. #    by dn="uid=promise,ou=user,dc=promise,dc=com" write
  96. #    by anonymous auth
  97. #    by * none
  98. #
  99. #access to dn.children="ou=user,dc=promise,dc=com" attrs=cn,givenName,sn,displayName,mail,mobile,homePhone,homePostalAddress,telephoneNumber
  100. #    by self write
  101. #    by dn="uid=promise,ou=user,dc=promise,dc=com" write
  102. #    by * read
  103. #
  104. #access to dn.subtree="ou=user,dc=promise,dc=com"
  105. #    by dn="uid=promise,ou=user,dc=promise,dc=com" write
  106. #    by * read
  107. #
  108. #access to * by * read

  109. access to attrs=userPassword
  110.        by self write
  111.        by anonymous auth
  112.        by dn.base="cn=manager,dc=promise,dc=com" write
  113.        by  * none

  114. access to *
  115.        by self write
  116.        by users read
  117.        by anonymous peername.IP=192.168.41.151 read
  118.        by anonymous peername.IP=192.168.41.0%255.255.255.0 read
  119.        by dn.base="cn=manager,dc=promise,dc=com" write
  120.        by * none

  121. # enable on-the-fly configuration (cn=config)
  122. database config
  123. access to *
  124.         by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
  125.         by * none

  126. # enable server status monitoring (cn=monitor)
  127. database monitor
  128. access to *
  129.         by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
  130.         by dn.exact="cn=Manager,dc=promise,dc=com" read
  131.         by * none

  132. #######################################################################
  133. # database definitions
  134. #######################################################################
  135. #database ldap
  136. #suffix "cn=users,dc=promise,dc=com"
  137. #subordinate
  138. #rebind-as-user
  139. #uri "ldap://192.168.41.152"
  140. #chase-referrals yes

  141. database        bdb
  142. suffix          "dc=promise,dc=com"
  143. checkpoint      1024 15
  144. rootdn          "cn=Manager,dc=promise,dc=com"
  145. # Cleartext passwords, especially for the rootdn, should
  146. # be avoided.  See slappasswd(8) and slapd.conf(5) for details.
  147. # Use of strong authentication encouraged.
  148. # rootpw                secret
  149. # rootpw                {crypt}ijFYNcSNctBYg
  150. rootpw {SSHA}dD++dnOtPyETTpz9+Xh5EtetL87IIM/F

  151. # The database directory MUST exist prior to running slapd AND
  152. # should only be accessible by the slapd and slap tools.
  153. # Mode 700 recommended.
  154. directory       /var/lib/ldap

  155. # Indices to maintain for this database
  156. #index objectClass                       eq,pres
  157. #index ou,cn,mail,surname,givenname      eq,pres,sub
  158. #index uidNumber,gidNumber,loginShell    eq,pres
  159. #index uid,memberUid                     eq,pres,sub
  160. #index nisMapName,nisMapEntry            eq,pres,sub
  161. Index cn,sn,uid,displayName pres,sub,eq
  162. Index uidNumber,gidNumber eq
  163. Index sambaSID eq
  164. Index sambaPrimaryGroupSID eq
  165. Index sambaDomainName eq
  166. Index objectClass pres,eq
  167. Index default sub



  168. # Replicas of this database
  169. #replogfile /var/lib/ldap/openldap-master-replog
  170. #replica host=ldap-1.example.com:389 starttls=critical
  171. #     bindmethod=sasl saslmech=GSSAPI
  172. #     authcId=host/ldap-master.example.com@EXAMPLE.COM
  173. [root@localhost openldap]#
复制代码
贴出EMOS的LDAP.CONF信息
  1. [root@webmail ~]# cat /etc/openldap/ldap.conf
  2. #
  3. # LDAP Defaults
  4. #

  5. # See ldap.conf(5) for details
  6. # This file should be world readable but not world writable.

  7. #BASE   dc=example, dc=com
  8. #URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

  9. #SIZELIMIT      12
  10. #TIMELIMIT      15
  11. #DEREF          never
  12. URI ldap://192.168.41.151
  13. BASE dc=promise,dc=com
  14. TLS_CACERTDIR /etc/openldap/cacerts
  15. ssl start_tls
  16. tls_checkpeer yes
  17. tls_cacertfile /etc/openldap/cacerts/cacert.pem
  18. pam_password md5
  19. [root@webmail ~]#
复制代码
现在就是OPENLDAP的用户无法在EMOS里面验证登录,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP