明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

ldap+qmail+postaci 安裝, 用戶管理

[摘要]ldap+qmail+postaci安裝, 用戶管理參考文獻(xiàn):1. 建一個大容量的webmail系統(tǒng)(作者:謝順華)目前唯一能找到的中文qmail+ldap資料http://www.linuxfor...
ldap+qmail+postaci安裝, 用戶管理

參考文獻(xiàn):
1. 建一個大容量的webmail系統(tǒng)(作者:謝順華)
目前唯一能找到的中文qmail+ldap資料
http://www.linuxforum.net/doc/webmail.html
2. Postaci Webmail
基于php的webmail系統(tǒng), 支持pop3, imap, 使用數(shù)據(jù)庫做緩存.
相對于imp和sqwebmail來說, 配置相當(dāng)容易, 而且界面很好.
(http://www.trlinux.com/)
3. Simple ldap user admin tool
For Qmail的php版用戶管理, 可以設(shè)置用戶資料, 別名, maillist, 公司組織...
http://sourceforge.net/projects/alldap/
4. Softerra LDAP Browser
win32的ldap查看修改工具
http://www.ldapbrowser.com
5. Life With qmail-ldap
http://www.lifewithqmail.org/ldap/
6. Life With qmail
http://www.lifewithqmail.org/


說明:
考慮到qmail使用系統(tǒng)用戶在管理上不大方便. 而使用mysql作為用戶又會和mysql用戶沖突, 而且mysql的局限性很大, 沒有l(wèi)dap的open和自由擴(kuò)展特性. 使用ldap后, 利用php的ldap函數(shù)就可以實(shí)現(xiàn)用戶管理, 用戶可方便的自行編程解決用戶管理.
因?yàn)椴皇翘摂M主機(jī), 所以選用了配置簡單, 好用的Postaci和Simple ldap user admin tool. 適合單一團(tuán)體/公司使用.



安裝:

1. openldap請參考文獻(xiàn)1的步驟1.在/etc/openldap目錄下是openldap的設(shè)置, 除了要按參考1中增加qmail的qmailUser類型外, 還要注意修改slapd.conf文件, 關(guān)鍵內(nèi)容如下:

#你的公司名, 最好用站點(diǎn)名
suffix"dc=test, dc=com"
#管理員名稱, 類似于系統(tǒng)管理員. 很長, 但是很重要.
rootdn"cn=Manager, dc=test, dc=com"
#管理員密碼(這里用的是明文密碼)
rootpwsecret
加入基本數(shù)據(jù):
ldapadd -D "cn=Manager,dc=test, dc=com" -W

dn: dc=test, dc=com
objectclass: dcObject
objectclass: organization
o: test Company
dc: test


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


2. qmail需要加for ldap的補(bǔ)丁, 并且配置pop3, imap, sendmail.請參考文獻(xiàn)1中的步驟2. 其中注意以下事項(xiàng):

ldap要求qmail使用Maildir格式, 所以, 要修改/var/qmail/rc如下:

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start "`cat /var/qmail/control/defaultdelivery`" splogger qmail

在/var/qmail/control/defaultdelivery中內(nèi)容如下:

./Maildir/

/var/qmail/control/ldapuid和ldapgid是ldap用戶資料中的qmailUid/qmailGid的缺省值, 設(shè)置后ldap中可不必設(shè)置. 注意此處uid和gid必是存放mail目錄的uid/gid, 一般是/mail, 屬性是750, 不可對其它人可寫, 否則出錯. 考慮到要在php中執(zhí)行管理用戶的操作, 所以這個uid/gid和apache的相同, 可以在apache/conf/httpd.conf中修改. 注意虛擬主機(jī)時可能會有安全問題.

用tail -n 30 /var/log/maillog可以查看發(fā)送mail的過程記錄, 錯誤會被記錄在內(nèi), qmail出錯時會自動回信給發(fā)件人, 不加-n 30只會看到自動回信的正確信息!

RedHat7中使用xinetd, 不同于老版的inetd, 配置文件放在/etc/xinetd.d/下, 修改如下:

pop3文件:

#default: off
# description: The POP3 service allows remote users to access their mail \
#using an POP3 client such as Netscape Communicator, mutt, \
#or fetchmail.
service pop3
{
socket_type = stream
protocol= tcp
wait= no
user= root
server= /var/qmail/bin/qmail-popup
server_args = test.com /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir
only_from = 0.0.0.0
log_type= FILE /var/log/maillog
disable = no

log_type= FILE /var/log/xinetd.log
log_on_success= HOST
log_on_failure= HOST RECORD
}

smtp文件:
# default: off
# description: The POP3 service allows remote users to access their mail \
#using an POP3 client such as Netscape Communicator, mutt, \
#or fetchmail.
service smtp
{
socket_type = stream
protocol= tcp
wait= no
user= qmaild
server= /var/qmail/bin/tcp-env
server_args = -R /var/qmail/bin/qmail-smtpd
log_type= FILE /var/log/maillog
env = NODNSCHECK=""
log_on_success= HOST
log_on_failure= HOST RECORD
only_from = 0.0.0.0
disable = no
}
如果有其它pop3, smtp的服務(wù)應(yīng)該設(shè)定其disable項(xiàng)為yes, 以免沖突.

/var/qmail/control/下的控制文件可以參考文獻(xiàn)1的步驟5,一般需要以下文件:
ldapbasedn,ldaplogin,ldappassword,ldapuid,ldapgid,ldapserver

3. 安裝php版ldap用戶管理工具.(參考文獻(xiàn)3)
主要配置都在common.inc文件里面, 如果你的php系統(tǒng)沒有對.inc文件處理, 會暴露出系統(tǒng)配置, 建議修改成
common.inc.php, 然后分別修改index.php和format.php的第二行. common.inc.php主要修改如下: 也可以參考postaci的安裝文件:

//剛開始的時候可能問題很多, 建議設(shè)置成1, 以便觀察錯誤在哪里.
$debug = 0;
//這里有些地方可能適合虛擬主機(jī)情況, 這里沒用到, 待研究

$root_dn = "dc=test, dc=com";
$exchanges_dn = "".$root_dn;
$people_dn = "".$root_dn;
$lists_dn = "".$root_dn;

//這里要注意和步驟1中設(shè)置一致
$ldap_host = "localhost";
$bind_dn = "cn=Manager, dc=test, dc=com";
$pw = "secret";
$mainTitle = "LDAP user admin";

//這里要和步驟2中設(shè)置一致
$qmailuid = 501;
$qmailgid = 501;
$messageStoreDir = "/mail";

$mailQuota = "10000000000S,100000C";
$generalUser = "steeven";

/* not sure on the relevance of this... */
$mailHost = "test.com";

//你的公司部門, 可增減, 自己漢化吧 :)
$org_units = array( "Routed", "Switched", "Colocation", "Networks", "Metro", "Recruitment", "Commercial", "Finance", "IT", "Marketing" );

$acc_status = array( "active", "nopop", "disabled" );
$default_email = "test.com";
$logoImg = "../poweredby.png";
$ver = "0.03";

這個老外寫的管理工具很好用, 可以設(shè)置轉(zhuǎn)發(fā)mail, 無限mail別名; 按地域劃分公司組織, 下面又分部門, 每個部門又可以指定郵件, 發(fā)給部門的郵件可以指定哪些人來接受. 也可以自定義一些maillist, 管理參加人員. 充分體現(xiàn)了ldap的靈活性. 難怪notes, windows都向ldap靠攏 :)

如果qmail沒有設(shè)置成自動創(chuàng)建用戶目錄, 可以在add.php第188行增加如下代碼:
if (!is_dir($messageStoreDir."/".$uid[0])){
mkdir($messageStoreDir."/".$uid[0],0770);
}
if (!is_dir($messageStoreDir."/".$uid[0]."/".$uid)){
mkdir($messageStoreDir."/".$uid[0]."/".$uid,0770);
}

在add.php中增加用戶時的LoginId似乎也有點(diǎn)問題, 可直接采用firstName:
function create_username() {
var first_str = document.user_details.elements[2].value;
document.user_details.elements[11].value = first_str.toLowerCase();
}

利用參考文獻(xiàn)4中的LdapBrowser可以看到對LDAP的相關(guān)修改, 或者手動修改.

4. 安裝Postaci, webmail(參考文獻(xiàn)2).
這是一個基于php的webmail, 具有比較完善的功能, 而且支持imap, pop3. 需要mysql支持. 用戶可以自行漢化, 文件在lang目錄下.
解壓后修改includes目錄下global.inc文件(有安全顧慮, 參考步驟3), 里面有配置說明.
Following doc/INSTALL to install

安裝完成后添加適當(dāng)用戶, 然后就可以通過becky, outlook, foxmail....等收發(fā)郵件. 用瀏覽器打開postaci的安裝目錄就可以通過web收發(fā)mail了.