2016年11月16日 星期三

記錄在Ubuntu上安裝OpenLDAP過程文章

(1) 先安裝好Ubuntu Server (參考如何安裝Ubuntu Server)

(2) 安裝OpenLDAP & phpLDAPadmin & Apache2
         介紹 :
             OpenLDAP 是輕型目錄協議類似微軟 Active DirectoryLightweight Directory Access ProtocolLDAP
             phpLDAPadmin 是通過網頁管理LDAP工具
             Apache2 是網頁伺服器軟件
          安裝 :
             sudo apt-get install slapd ldap-utils apache2 phpldapadmin

(3) 設定OpenLDAP
         新增預設資料庫 -》sudo dpkg-reconfigure slapd
         第一個畫面 -》No
         輸入區名
         輸入機構名稱
         輸入OpenLDAP管理員密碼
         確認一次密碼
         選擇HDB資料庫類型
         回答是否清楚舊資料庫 -》選 No
         是否把舊的資料庫先移走才新增新資料庫 -》選 Yes
         是否使用第二代版本 - 》選 No
                 

         增加資料庫檔
             # 新增資料庫檔
             sudo touch /etc/ldap/slapd.conf
             # 備份舊的資料庫檔案
             sudo mv /etc/ldap/slapd.d /etc/ldap/slap.d.bak -f
             # 設定資料庫檔案 
             sudo vim /etc/ldap/slapd.conf
             #複製以下內容到資料庫檔                                              
               ##########
               # Basics #
               ##########
               include /etc/ldap/schema/core.schema
               include /etc/ldap/schema/cosine.schema
               include /etc/ldap/schema/inetorgperson.schema
               include /etc/ldap/schema/nis.schema
               pidfile /var/run/slapd/slapd.pid
               argsfile /var/run/slapd/slapd.args
               loglevel none
               modulepath /usr/lib/ldap
               # modulepath /usr/local/libexec/openldap
               moduleload back_hdb
               ##########################
               # Database Configuration #
               ##########################
               database hdb
               # 改紅色字爲自己要的區名
               suffix "dc=example,dc=com"
               rootdn "cn=admin,dc=example,dc=com"
               # 設定密碼
               rootpw 密碼
               directory /var/lib/ldap
               # directory /usr/local/var/openldap-data
               index objectClass,cn eq
               ########
               # ACLs #
               ########
               access to attrs=userPassword
                      by anonymous auth
                      by self write
                      by * none
               access to *
                      by self write
                      by * none

(4) 設定phpLDAPadmin設定檔
         sudo vim /etc/phpldapadmin/config.php
         找到以下內容修改
              # 改紅色字爲自己要的
              $servers->setValue('server','base',array('dc=example,dc=com')); #line 300
              $servers->setValue('login','bind_id','cn=admin,dc=example,dc=com'); #line 326

(5) 除錯不能新增帳號
      sudo sed -i -e 's/password_hash/password_hash_custom/g' /usr/share/phpldapadmin/lib/TemplateRender.php
      sudo sh -c 'echo "RedirectMatch ^/$ /phpldapadmin/" >> /etc/apache2/apache2.conf'
      sudo service apache2 restart

(6) 建立根目錄
         # 增加 root-utils.ldif檔案
         sudo vim root-utils.ldif
         # 改紅色字爲自己要的
         #Company User
         dn: ou=Company,dc=example,dc=com
         ou: Company
         objectClass: organizationalUnit

         #Group
         dn: cn=Group,ou=Company,dc=example,dc=com
         objectClass: posixGroup
         objectClass: top
         cn: Group
         gidNumber: 1000

(7) 建立使用者
         # 增加 users.ldif檔案
         sudo vim users.ldif
         # 改紅色字爲自己要的
         #User 1
         dn: cn=User1,ou=Company,dc=example,dc=com
         objectClass: top
         objectClass: inetorgperson
         uid: user1
         cn: User 1
         sn: User 1
         # 使用sldappasswd工具生行密碼
         userPassword: {MD5}**********

(8) ldif檔案倒入資料庫
         sudo ldapadd -x -D cn=admin,dc=example,dc=com-W -f root-utils.ldif -h ldap伺服器IP



5 則留言:

  1. 您好,我在執行最後一個階段的設定遇到下方顯示的問題,不知道您是否能夠指導下,謝謝.
    user@user-virtual-machine:~$ sudo ldapadd -x -D “cn=admin,dc=example,dc=com”-W -f root-utils.ldif -h ldap 172.16.14.200
    Add or modify entries from an LDAP server

    usage: ldapadd [options]
    The list of desired operations are read from stdin or from the file
    specified by "-f file".
    Add or modify options:

    回覆刪除
    回覆
    1. sudo ldapadd -x -D “cn=admin,dc=example,dc=com”-W -f root-utils.ldif -h ldap 172.16.14.200
      在 172.16.14.200 前面多了 ldap 這個字

      刪除
  2. 你好大大,我想請問一下,我按照你的方式做完,卻得到ldap_add: No such object (32)等其他問題,但我看你的影片,也出現相關的信息在影片最後的時候下這一段sudo ldapadd -x -D “cn=admin,dc=example,dc=com”-W -f root-utils.ldif -h

    請大大幫忙我,謝謝

    回覆刪除
    回覆
    1. root-utils.ldif 這個檔案內容有貼對嗎?

      刪除
  3. 跟王大有一樣的問題>_<
    root@test-VirtualBox:~# cat root-utils.ldif
    #Company User
    dn: ou=Company,dc=abctest,dc=com
    ou: Company
    objectClass: organizationalUnit

    #Group
    dn: cn=Group,ou=Company,dc=abctest,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: Group
    gidNumber: 1000

    root@test-VirtualBox:~# ldapadd -x -D cn=admin,dc=abctest,dc=com -W -f root-utils.ldif -h 172.20.1.32
    Enter LDAP Password:
    adding new entry "ou=Company,dc=abctest,dc=com"
    ldap_add: No such object (32)

    回覆刪除