作者 主題: Openwebmail與OpenLDAP整合  (閱讀 7380 次)

0 會員 與 1 訪客 正在閱讀本文。

zoob

  • 鑽研的研究生
  • *****
  • 文章數: 776
    • 檢視個人資料
    • http://www.myunix.idv.tw
Openwebmail與OpenLDAP整合
« 於: 2003-04-17 00:31 »
Openwebmail與OpenLDAP整合

作者: zoob (vincent@myunix.adsldns.org)

版權聲明:可以任意轉載,轉載時請務必標明原始出處和作者資訊

前言:
Openwebmail是個相當不錯的Webmail工具,本篇文章主要在探討如何將Openwebmail的驗證工作交由OpenLDAP來驗證
Openwebmail主要有兩種auth modules,第一為auth_ldap.pl,此種auth module彈性較為小,不易設定,故此篇文章介紹第二種auth module:auth_pam.pl

安裝環境:

RedHat 8.0
openldap 2.1.15
pam 0.75-40
pam 0.75-40-devel
PAM-LDAP 161
OpenWebmail 1.81

準備工作:
(請依順序安裝)

(1)安裝OpenLDAP(記得要在compile時加上 --enable-crypt選項)
(2)安裝nss_ldap
(3)安裝PAM-devel-xx.xx.rpm
(4)安裝Authen-PAM (可由 http://www.cs.kuleuven.ac.be/~pelov/pam/http://www.cpan.org 下載)
(5)PAM-LDAP 161 (可由 http://www.padl.com/ 下載)
(6)安裝OpenWebmail

安裝:

(1)先使用migration tools將passwd和shadow轉換至ldap server

(2)編輯/var/www/cgi-bin/openwebmail/etc/openwebmail.conf
auth_module auth_unix.pl變更為 auth_module auth_pam.pl
增加一行create_homedir yes 此選項會幫沒有家目錄的使用者建立家目錄

註:create_homedir在2.00後已改成create_syshomedir了

(3)打開/var/www/cgi-bin/openwebmail/auth_pam.pl
請注意下列二行

代碼: [選擇]

my $pam_servicename="openwebmail"; <===注意此處需與稍後在/etc/pam.d裡的pam檔案名稱相同
my $pam_passwdfile_plaintext="/etc/passwd"; <===需明確指出你的passwd檔案所在



(4)編輯 /etc/nsswitch.conf,請注意passwd、shadow、group三行,是否與下面敘述相同:

代碼: [選擇]
passwd:    ldap files nisplus
shadow:     ldap files nisplus ldap
group:      ldap files nisplus ldap


(5)在/etc/pam.d目錄下新增一openwebmail檔案,檔案內容如下:

代碼: [選擇]
auth       sufficient   /lib/security/pam_ldap.so
auth       required     /lib/security/pam_unix_auth.so use_first_pass
account    sufficient   /lib/security/pam_ldap.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_cracklib.so retry=3
password   sufficient   /lib/security/pam_ldap.so
password   required     /lib/security/pam_pwdb.so try_first_pass


(6)編輯 /etc/ldap.conf

請依下列敘述修改

#定義LDAP server ip address
host 127.0.0.1
#定義LDAP server的distinguished name
base dc=myunix,dc=adsldns,dc=org
#定義要使用何種ldap版本
ldap_version 3
#定義查詢時所使用的使用者名稱(預設是匿名)
binddn cn=Manager,dc=myunix,dc=adsldns,dc=org
#定義查詢時所使用的使用者名稱密碼(預設沒有密碼)
bindpw secret
#定義LDAP server port
port 389
#定義LDAP search的範圍(sub、one、base)
scope sub
pam_crypt local

(7)登入openwebmail
請利用openwebmail的登入首頁來嘗試是否可以登入成功。

註:我有遇到由migration tools所轉出來的passwd和shadow有問題。你可以利用slappasswd來重新產生密碼,並將新密碼匯入ldap server再行試看看。範例如下:

代碼: [選擇]
slappawwd -h {CRYPT} -s 1234

以上的1234是你的密碼

代碼: [選擇]
{CRYPT}0BkUALRb6n5b2

再將上面的亂碼匯入ldap server即可