1. 程式人生 > >Linux伺服器部署系列之七—OpenLDAP篇

Linux伺服器部署系列之七—OpenLDAP篇

LDAP(輕量級目錄訪問服務),通過配置這個服務,我們也可以在linux下面使用目錄的形式管理使用者,就像windows下面的AD一樣,方便我們管理。下面我們就一起來配置openldap服務。本文執行環境:CentOS 5。 軟體需求: openldap-stable-20090411.tgz (http://www.openldap.org/software/download/) phpldapadmin-0.9.8.5.tar.gz(http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page) 另外,執行phpldapadmin需要apache和php的支援,有關apache和php的安裝,大家可以參考我的另一篇文章:Linux伺服器部署系列之一—Apache篇(http://guoxuemin.blog.51cto.com/379574/1685341. 安裝openldap 1)安裝BerkeleyDB
# tar  zxvf  db-4.7.25.tar.gz # cd  db-4.7.25/build_unix # ../dist/configure # make # make  install # vi  /etc/ld.so.conf 加入一下語句: /usr/local/BerkeleyDB.4.7/lib # /sbin/ldconfig 2)安裝openldap # tar  zxvf  openldap-stable-20090411.tgz # cd  openldap-2.4.16 # env  CPPFLAGS=”-I/usr/local/BerkeleyDB.4.7/include”  LDFLAGS=”-L/usr/local/BerkeleyDB.4.7/lib” ./configure  --prefix=/usr/local/openldap  --enable-ldbm # make depend # make # make install 3)檢查安裝結果
安裝好後,系統會自動生成一些.schema檔案,我們可以使用命令:# ll /usr/local/openldap/etc/openldap/schema/*.schema來檢視,如下圖: 2. 配置openldap openldap的配置檔案主要為slapd.conf和ldap.conf,手動安裝的話,存放在/usr/local/openldap/etc/openldap下面,如下圖: 1)配置slapd.conf檔案 主要需要修改的地方有兩個,一個是將所有./schema新增進來(預設只有include /usr/local/openldap/etc/openldap/schema/core.schema這條記錄),如下圖: 另一個地方是下圖所示,將suffix項改成自己的目錄字尾;設定rootdn,注意這裡設定的root管理員是管理openldap的,跟linux系統的root管理員不是一樣的。 2)啟動openldap
使用以下命令啟動openldap: # /usr/local/openldap/libexec/slapd 3)加密管理員密碼  使用命令slappasswd修改管理員密碼,預設的管理員密碼是明文形式的,使用slappasswd修改後將以加密的方式儲存。 4)修改客戶端配置文件 如下圖,修改紅色框處,設定目錄起點。 5)錄入資訊 一般資訊錄入的方式有三種:手工錄入,使用.ldif檔案格式錄入,使用指令碼錄入。這裡我們選用比較方便的那種——使用.ldif檔案格式錄入。 首先使用vi  init.ldif命令建立一個init.ldif檔案,內容如下: 然後用命令/usr/local/openldap/bin/ldapadd  -x  -W  -D  “cn=root,dc=guoxuemin,dc=cn”  -f  init.ldif將內容匯入,如下圖: 3. 配置openldapadmin 1)安裝openldapadmin # tar  zxvf  phpldapadmin-0.9.8.5.tar.gz # mv  phpldapadmin-0.9.8.5  /usr/local/phpldapadmin openldapadmin的安裝很簡單,只需要解壓,然後移動到相應的目錄就可以了。 2)配置http.conf檔案 # vi  /usr/local/apache/conf/httpd.conf 增加上圖所示的內容,上述內容的作用是建立虛擬目錄並設定使用者認證。 設定使用者admin的密碼,如下圖: 3)配置phpldapadmin 預設情況下phpldapadmin自帶了一個示例配置檔案config.php.example,我們可以對改檔案稍做修改,就可以使用了。 # cd  /usr/local/phpldapadmin/config # cp  config.php.example  config.php # vi  config.php 將274行的/*移動到283行,然後修改276-282行的引數,具體如下: 然後遮蔽以下行的內容,如下圖: 另外,還有兩項需要修改的,如下圖: 注意,要使用phpldapadmin,需要有gettext包的支援,在php編譯時還需要將ldap也編譯進去,否則,會出現下圖所示錯誤資訊: 如果出現類似資訊,那麼只需要安裝gettext包,並對php重新編譯安裝就可以了, gettext包的安裝: # tar  zxvf  gettext-0.16.1.tar.gz # cd  gettext-0.16.1 # ./configure  --prefix=/usr/local/gettext # make # make  install 對php的編譯如下圖:
4)phpldapadmin應用 點選左面板的login,我們可以通過openldap管理員root登入,如下圖: 登入進去後,可以看到openldap的操作介面,左面板上跟windows的AD一樣有ou,有使用者資訊。 如果我們要建立使用者資訊,可以點選左面板上的“Create new entry here”,然後根據需要在右面板上選擇帳戶型別,根據嚮導一步步建立。圖形化的操作介面大家都很熟悉了,這裡我就不再一一介紹。 當然我們也還可以通過ldif的方式匯入,點選左面板上的import可以匯入ldif檔案。點選左面板上的export可以將現有資料匯出為ldif檔案。 4. 配置ldap日誌 修改ldap配置檔案slapd.conf,增加一項loglevel 1,如下圖: # vi  /usr/local/openldap/etc/openldap/slapd.conf 然後修改系統日誌配置檔案: # vi  /etc/syslog.conf 增加以下行: local4.*  /usr/local/openldap/var/log/ldap.log 使用命令service syslog restart重啟syslog,系統就會自動生成日誌檔案ldap.log了。 OK,現在已經設定好了,我們可以通過目錄的形式管理帳戶資訊了,不過,這個服務是免費的,所以功能上相對於windows的AD還是要弱一些。