OpenLDAP建置心得

ilmare| April 26, 2007 4:46 pm

OpenLDAP是目前我一直在接觸的東西,
server目前已經有一套可以運作的,但是在少許的軟體的搭配上
一直有些小問題,例如與Samba的搭配,
因此透過撰寫這篇文章的過程,徹底的解決一些之前匆促上線,
而發生的不明原因的狀況。

本次的Linux選定為Fedora Core 6,
OepnLDAP的版本為2.3.27-4
若系統上並沒有安裝OpenLDAP server的檔案,請下
yum install openldap-servers

  • 編輯/etc/openldap/slapd.conf
  • 此檔案是啟動ldap server最根本的檔案,
    請根基於套件安裝後的初始檔案進行更改。

    schema(綱要)定義了LDAP中objectClass與必要的attribute,
    因此啟動server時,必須引入這些schema。預設引入的有以下這四種。

    include /etc/openldap/schema/core.schema
    include /etc/openldap/schema/cosine.schema
    include /etc/openldap/schema/inetorgperson.schema
    include /etc/openldap/schema/nis.schema

    接下來我們進入資料庫設定的部分,通常我們使用bdb。
    至於suffix代表這個資料庫所負責的root suffix,
    root dn類似unix系統中的root帳號,可以做任何的事而不受限制。

    database bdb
    suffix "dc=mytest,dc=com"
    rootdn "cn=Manager,dc=mytest,dc=com"

    定義root dn的密碼也是很重要的,
    首先用slappasswd指令來產生密碼
    slappasswd -h {SSHA} -s secret
    編碼的方式我們採用SSHA,這是目前建議的編碼方式,
    secret請換成你所要設定的密碼。
    指令執行完之後會出現 {SSHA}jFEq2uiz1S6z3843uMO2p7/Kl/0HW0k4
    所以我們必須在設定檔中加入
    rootpw {SSHA}jFEq2uiz1S6z3843uMO2p7/Kl/0HW0k4
    到此我們便可以完成slapd.conf的編輯,並且儲存它。

  • 啟動LDAP server
  • 在Fedora的系統,只要使用下列的指令即可啟動LDAP server
    service ldap start

  • 加入初始的目錄項目
  • 使用熟悉的編輯軟體來開啟一個檔案,例如init.ldif

    dn: dc=mytest,dc=com
    objectclass: dcObject
    objectclass: organization
    o: mytest
    dc: mytest

    dn: cn=Manager,dc=mytest,dc=com
    objectclass: organizationalRole
    cn: Manager

    使用ldapadd來加入init.ldif到server中

    ldapadd -x -D "cn=Manager,dc=mytest,dc=com" -W -f ./init.ldif

    若加入成功將會出現下列的訊息

    Enter LDAP Password:
    adding new entry "dc=mytest,dc=com"

    adding new entry "cn=Manager,dc=mytest,dc=com"

  • 檢查是否運作正常
  • 使用ldapsearch 來看server的內容

    ldapsearch -x -b 'dc=mytest,dc=com' '(objectclass=*)'

    若運作成功,就會在執行結果中出現之前加入的內容:

    # extended LDIF
    #
    # LDAPv3
    # base with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #

    # mytest.com
    dn: dc=mytest,dc=com
    objectClass: dcObject
    objectClass: organization
    o: mytest
    dc: mytest

    # Manager, mytest.com
    dn: cn=Manager,dc=mytest,dc=com
    objectClass: organizationalRole
    cn: Manager

    # search result
    search: 2
    result: 0 Success

    # numResponses: 3
    # numEntries: 2

    這樣就完成LDAP server的建置初步拉。

    One Response to “OpenLDAP建置心得”

    ilmare wrote a comment on October 29, 2007

    這個指令在tcsh中會出現問題 slappasswd -h {SSHA} -s secret
    必須改用 slappasswd -h \{SSHA\} -s secret

    Care to comment?

    *
    To prove you're a person (not a spam script), type the security text shown in the picture. Click here to regenerate some new text.
    Click to hear an audio file of the anti-spam word