歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> FreeBSD下利用ACI/SSL安全使用OpenLDAP

FreeBSD下利用ACI/SSL安全使用OpenLDAP

日期:2017/2/28 10:24:10   编辑:Unix基礎知識
FreeBSDopenldapLDAP 一、使用訪問控制(Access Control),實現用戶認證
  
  關於它,在OpenLDAP 2.1 Administrator's Guide裡有詳細說明。這裡只管應用。
  
  修改OpenLDAP的配置文件,增加控制塊
  
  
QUOTE: # vi /usr/local/etc/openldap/slapd.conf
  access to attr=userPassword
  by anonymous auth
  by self write
  by * none
  
  access to *
  by self write
  by users read

  
  此控制塊用於禁止匿名查詢,而認證用戶可以修改自己的所有屬性,允許查詢它人的信息條目,但除了userPassword屬性。基本上上面的每一行都是必須的,經過反復刪除恢復,終於對訪問控制塊的認識有了質的飛躍。特別是對於“by anonymous auth”的理解,沒有了它,需要認證的用戶不能完成認證,因為它查詢不到密碼呀!所以“auth”在這裡的作用就是允許匿名用戶可以讀到密碼,但只能用於驗證,而不能用於其它的用途,這就保證了密碼屬性的安全。
  
  重啟ldap服務
  
  
QUOTE: # /usr/local/etc/rc.d/slapd.sh restart

  
  查詢測試
  
  1、如果還使用LDAP Browser 2.6的話,這次就可以使用其它的用戶bind了,如使用用戶:
  
  uid=abc,ou=people,dc=example,dc=com
  
  它的密碼是:abcabc(見前面的例子)
  
  2、在命令行完成
  
  # ldapsearch -x -b 'dc=example,dc=com' 'objectClass=*'
  
  匿名查詢結果:(顯然沒有任何條目)
  
  
QUOTE: # extended LDIF
  #
  # LDAPv3
  # base with scope sub
  # filter: objectClass=*
  # requesting: ALL
  #
  
  # search result
  search: 2
  result: 0 Success
  
  # numResponses: 1
  
  # ldapsearch -x -b 'dc=example,dc=com' -D 'uid=abc,ou=people,dc=example,dc=com' -w abcabc 'uid=a*'

  
  通過指定用戶查詢的結果:
  
  
QUOTE: # extended LDIF
  #
  # LDAPv3
  # base with scope sub
  # filter: uid=a*
  # requesting: ALL
  #
  
  # abc, people, example.com
  dn: uid=abc,ou=people,dc=example,dc=com
  objectClass: person
  objectClass: organizationalPerson
  objectClass: inetOrgPerson
  uid: abc
  sn: zhangs
  cn: zs
  userPassword:: YWJjYWJj
  
  # aaa, people, example.com
  dn: uid=aaa,ou=people,dc=example,dc=com
  objectClass: person
  objectClass: organizationalPerson
  objectClass: inetOrgPerson
  uid: aaa
  sn: aaaa
  cn:: YWFkQSA=
  
  # search result
  search: 2
  result: 0 Success
  
  # numResponses: 3
  # numEntries: 2

  
  如果過濾條件還是用'objectClass=*'的話,產生的條目數很多,所以這裡就必為了'uid=a*'。從結果中我們可以看到“uid=abc,ou=people,dc=example,dc=com”的userPassword屬性顯示了出來,而另一個用戶則沒有顯示。上面執行的命令中紅色部分分別是查詢時使用的用戶名和密碼,其中密碼就是條目“uid=abc,ou=people,dc=example,dc=com”中所存放的userPassword的值。
  
  二、使用SSL/TLS
  
  通過認證授權(Certificate Authority)中心發行的證書簽發證書或自簽發證書,這裡用的是自簽發證書。
Copyright © Linux教程網 All Rights Reserved