歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> ldap+qmail+postaci安裝和用戶管理

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

日期:2017/2/27 14:14:22   编辑:更多Linux
  ldap+qmail+postaci安裝,用戶管理 參考文獻: 1. 建一個大容量的webmail系統 (作者:謝順華)。目前唯一能找到的中文qmail+ldap資料 2. Postaci Webmail 基於PHP的webmail系統, 支持pop3, imap, 使用數據庫做緩存. 相對於imp和sqwebmail來說, 配置相當容易, 而且界面很好. 3. Simple ldap user admin tool For Qmail的php版用戶管理, 可以設置用戶資料, 別名, maillist, 公司組織... 4. Softerra LDAP Browser win32的ldap查看修改工具 5. Life With qmail-ldap 6. Life With qmail 說明: 考慮到qmail使用系統用戶在管理上不大方便. 而使用mysql作為用戶又會和mysql用戶沖突, 而且mysql的局限性很大, 沒有ldap的open和自由擴展特性. 使用ldap後, 利用php的ldap函數就可以實現用戶管理, 用戶可方便的自行編程解決用戶管理. 因為不是虛擬主機, 所以選用了配置簡單, 好用的Postaci和Simple ldap user admin tool. 適合單一團體/公司使用. 安裝: 1. openldap請參考文獻1的步驟1. 在/etc/openldap目錄下是openldap的設置, 除了要按參考1中增加qmail的qmailUser類型外, 還要注意修改slapd.conf文件, 關鍵內容如下: #你的公司名, 最好用站點名 suffix "dc=test, dc=com" #管理員名稱, 類似於系統管理員. 很長, 但是很重要. rootdn "cn=Manager, dc=test, dc=com" #管理員密碼(這裡用的是明文密碼) rootpw secret #加入基本數據: 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的補丁, 並且配置pop3, imap, sendmail.請參考文獻1中的步驟2. 其中注意以下事項: 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中內容如下: ./Maildir/ /var/qmail/control/ldapuid和ldapgid是ldap用戶資料中的qmailUid/qmailGid的缺省值, 設置後ldap中可不必設置. 注意此處uid和gid必是存放mail目錄的uid/gid, 一般是/mail, 屬性是750, 不可對其它人可寫, 否則出錯. 考慮到要在php中執行管理用戶的操作, 所以這個uid/gid和apache的相同, 可以在apache/conf/httpd.conf中修改. 注意虛擬主機時可能會有安全問題. 用tail -n 30 /var/log/maillog可以查看發送mail的過程記錄, 錯誤會被記錄在內, qmail出錯時會自動回信給發件人, 不加-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的服務應該設定其disable項為yes, 以免沖突. /var/qmail/control/下的控制文件可以參考文獻1的步驟5,一般需要以下文件: ldapbasedn,ldaplogin,ldappassWord,ldapuid,ldapgid,ldapserver 3. 安裝php版ldap用戶管理工具.(參考文獻3) 主要配置都在common.inc文件裡面, 如果你的php系統沒有對.inc文件處理, 會暴露出系統配置, 建議修改成common.inc.php, 然後分別修改index.php和format.php的第二行. common.inc.php主要修改如下: 也可以參考postaci的安裝文件: //剛開始的時候可能問題很多, 建議設置成1, 以便觀察錯誤在哪裡. $debug = 0; //這裡有些地方可能適合虛擬主機情況, 這裡沒用到, 待研究 $root_dn = "dc=test, dc=com"; $exchanges_dn = "".$root_dn; $people_dn = "".$root_dn; $lists_dn = "".$root_dn; //這裡要注意和步驟1中設置一致 $ldap_host = "localhost"; $bind_dn = "cn=Manager, dc=test, dc=com"; $pw = "secret"; $mainTitle = "LDAP user admin"; //這裡要和步驟2中設置一致 $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", "99v", "Marketing" ); $acc_status = array( "active", "nopop", "disabled" ); $default_email = "test.com"; $logoImg = "../poweredby.png"; $ver = "0.03"; 這個老外寫的管理工具很好用, 可以設置轉發mail, 無限mail別名; 按地域劃分公司組織, 下面又分部門, 每個部門又可以指定郵件, 發給部門的郵件可以指定哪些人來接受. 也可以自定義一些maillist, 管理參加人員. 充分體現了ldap的靈活性. 難怪notes, windows都向ldap靠攏 :) 如果qmail沒有設置成自動創建用戶目錄, 可以在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似乎也有點問題, 可直接采用firstName: function create_username() { var first_str = document.user_details.elements[2].value; document.user_details.elements[11].value = first_str.toLowerCase(); } 利用參考文獻4中的LdapBrowser可以看到對LDAP的相關修改, 或者手動修改. 4. 安裝Postaci, webmail(參考文獻2). 這是一個基於php的webmail, 具有比較完善的功能, 而且支持imap, pop3. 需要mysql支持. 用戶可以自行漢化, 文件在lang目錄下. 解壓後修改includes目錄下global.inc文件(有安全顧慮, 參考步驟3), 裡面有配置說明. Following doc/INSTALL to install 安裝完成後添加適當用戶, 然後就可以通過becky, Outlook, FoxMail....等收發郵件. 用浏覽器打開postaci的安裝目錄就可以通過web收發mail了.





Copyright © Linux教程網 All Rights Reserved