[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 應用技術 > Qmail > 正文
LDAP應用概述與qmail+LDAP安裝配置
本文出自:http://www.linuxforum.net 作者: 一笑 (2001-09-03 15:00:00)
      1 概述 
      計算機網絡經過長期的發展,不同的操作系統和應用程序以不同的格式在網絡上存儲了大
      量的信息,一個網絡管理員無法在一個集中的信息庫中,以方便的方法管理網絡信息和資
      源。用戶必須使用不同的應用程序獲取不同的信息和資源,這大大增加了用戶的負擔,也
      使許多信息難共享,從而在一定程度上制約了網絡的發展,因而需要一種新的技術,能
      夠以通用的格式和方式實現信息的存儲和共享,實現網絡的共享。 

      目錄服務技術就是用實現上述需求的。目錄服務可以命名、描述和指定一個企業范圍內
      的用戶和資源,從而簡化通信與管理;它可以使用戶通過簡單的搜索查找資源及其他用
      戶;它可以幫助管理人員收集和控制散布與該機構的信息,並可以使他們通觀地審視這些
      信息。 目前基目錄服務的各種網上應用越來越多。特別是隨著Intranet的崛起以及輕
      型目錄服務LDAP(Lightweight Directory Access Protocol)的開發,人們對其價值
      的認識日趨明朗。 

      本文檔詳細描述了Unix中常用的郵件服務器qmail的安裝和配置過程,以及qmail和LDAP
      的整合,重點在qmail的基本應用及其通過LDAP Server來進行Pop3認証的配置過程,
      對其它諸如郵件網關、郵件虛擬域、郵件列表、SMTP認証等不做敘述。本文檔假定你對
      qmail郵件服務器和OpenLDAP的LDAP Server有基本的了解,在各種軟件包安裝之前,請
      認真閱讀軟件包附帶的相關安裝說明文檔。 

      郵件服務器基LDAP的應用擴展,是目前基LDAP管理Internet信息的應用之一,此外
      基LDAP的WWW網關也是使用LDAP的一個方向,下圖給出了這兩種應用的總體結構: 




      2 安裝前的準備 
      操作系統 
      RedHat Linux 6.2 

      所需軟件包 
      1. qmail-1.03.tar.gz (http://www.qmail.org) 
      2. ucspi-tcp-0_88_tar.gz (http://cr.yp.to/ucspi-tcp.html) 
      3. checkpassword-0_90_tar.gz (http://cr.yp.to/checkpwd.html) 
      4. qmail-ldap-1_03-20010301_patch.gz (http://www.nrg4u.com/) 
      5. openldap-2_0_7.tgz (http://www.openldap.org) 

      主機IP地址和域名配置,在本例中為: 
      IP:192.168.0.117 
      DomainName :gloomy.openet.com.cn 
      (LDAP Server的RootDN為:dc=gloomy dc=openet dc=com dc=cn) 
      3 安裝與配置 
      1. 卸載SendMail郵件系統 
      由大多數Linux發行版本中都預裝了SendMail郵件系統,所以在安裝qmail 郵件服務器
      前最好卸載SendMail郵件服務器,使用如下命令: 
      #netsysv (取消系統boot時啟動SendMail) 
      #mv /usr/lib/sendmail /usr/lib/sendmail.bak 
      #mv /usr/sbin/sendmail /usr/sbin/sendmail.bak 
      #mv /usr/bin/newaliases /usr/bin/newaliases.bak 
      #mv /usr/bin/mailq /usr/bin/mailq.bak 

      2. 安裝qmail軟件包 
      a) 首先確定qmail的安裝路徑,若選默認安裝的話,使用如下命令,否則需要修改qmail
      軟件包中相應的conf*文件: 
      #mkdir /var/qmail 
      b) 增加qmail所需要的組和用戶,使用如下命令: 
      #groupadd nofiles 
      #useradd -g nofiles -d /var/qmail/alias alias 

      #useradd -g nofiles -d /var/qmail qmaild 
      #useradd -g nofiles -d /var/qmail qmaill 
      #useradd -g nofiles -d /var/qmail qmailp 
      #groupadd qmail 
      #useradd -g qmail -d /var/qmail qmailq 
      #useradd -g qmail -d /var/qmail qmailr 
      #useradd -g qmail -d /var/qmail qmails 
      c) 編譯qmail源代碼並安裝,使用如下命令: 
      #tar zxvf qmail-1.03.tar.gz 
      #cd qmail-1.03 
      #make setup check 
      d) 建立相應的配置文件,使用如下命令: 
      #config-fast gloomy.openet.com.cn 

      #cd /var/qmail/alias 
      #touch .qmail-postmaster .qmail-mailer-daemon .qmail-root 
      #chmod 644 qmail* 
      e) 選擇郵件的存儲方式: 
      在qmail中,支持三種郵件存儲方式,分別是典型的/var/spool/mail方式、傳統的Unix
      user/Mailbox方式和新的 user/Maildir方式,其中前兩種方式為大多數的郵件客戶端
      所支持,但是它們均存在安全上的隱患,所以在這裡使用了第三種方式,下面分別敘述三
      種方式的建立方法: 
      /var/spool/mail 方式 
      #cp /var/qmail/boot/proc /var/qmail/rc 
      user/Mailbox 方式 
      #cp /var/qmail/boot/home /var/qmail/rc 
      user/Maildir 方式 
      1)#cp /var/qmail/boot/home /var/qmail/rc 
      2)建立相應的郵件用戶,例如:#useradd test 
      #passwd test 
      3)使用qmail提供的工具建立Maildir,命令如下: 
      $ /var/qmail/bin/maildirmake Maildir 
      $ echo ./Maildir/ .qmail 
      (注意這裡必須以用戶權限建立郵箱) 
      4)修改 /var/qmail/rc 文件,把其中的/Mailbox 改為/Maildir/ 
      5) 為了使root用戶也能收發郵件,使用如下命令: 
      # su alias 
      $ cd 
      $ /var/qmail/bin/maildirmake Maildir 
      $ echo ./Maildir/ .qmail 
      f) 建立啟動qmail的shell文件run_mail,其內容為: 
      #cat run_mail 
      csh -cf ‘/var/qmail/rc’ & 

      3. 測試qmail基本郵件系統 
      首先啟動qmail郵件服務器,然測試郵件的收發,使用如下命令: 
      #run_mail 
      #echo to : ReceiverName | /var/qmail/bin/qmail-inject 
      (其中 ReceiverName 為郵件接受者的ID,例如test) 
      在郵件發送,可以查找是否收到郵件,分三種方式,依賴郵件的存儲方式: 
      /var/spool/mail 方式 
      $cd /var/spool 
      $vi ReceiverName 
      或者用 
      $mail 

      user/Mailbox 方式 
      打開用戶根目錄下的Mailbox文件,看是否收到郵件 
      user/Maildir 方式 
      $cd Maildir 
      $ls new 
      (注意在以上測試時,如果發生錯誤,可以查看/var/log/maillog文件獲得出錯原因) 

      4. 添加Pop3和SMTP服務 
      可以使用inetd超級服務器或TcpServer來建立相應的Pop3和SMTP服務,為了支持大容量
      的郵件用戶,建議使用TcpServer來監聽服務端口啟動相應的服務,建立命令如下: 
      #tar zxvf ucspi-tcp-0_88_tar.gz 
      #cd ucspi-tcp-0.88 
      #make setup check 
      #tar zxvf checkpassword-0_90_tar.gz 
      #cd checkpassword-0.90 
      #make setup check 
      修改上面建立的run_mail文件,修改的內容如下: 
      #cat run_mail 
      csh -cf '/var/qmail/rc' & 
      tcpserver u 502 g 501 -c 100 0 smtp /var/qmail/bin/qmail-smtpd & 
      tcpserver -c100 0 pop3 /var/qmail/bin/qmail-popup gloomy.openet.com.cn
      /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir & 
      修改/var/qmail/control/rcpthosts文件,來增加SMTP接收郵件的域 
      例如:#cat /var/qmail/control/rcpthosts 
      gloomy.openet.com.cn 
      ldap,openet.com.cn 
      tbs.openet.com.cn 
      openet.com.cn 

      5. 測試Pop3和SMTP服務 
      首先啟動qmail郵件服務器,然測試,使用如下命令: 
      1) 本地測試 
      #run_mail 
      #netstat na | grep 25 
      #netstat na | grep 110 
      #telnet localhost 110 
      user test 
      pass test 
      list 
      retr 1 
      2) 遠程測試 
      利用Windows下的圖形郵件客戶端(如 outlook、foxmail等)來測試郵件的收發,客戶
      端郵件帳號的建立請參考附帶的幫助文檔。 

      6. 為qmail增加LDAP支持 
      qmail可以通過LDAP來代替傳統的/etc/passwd方式的Pop3認証,以便提高認証效率和有
      效的支持大容量的郵件客戶,為了使qmail獲得LDAP支持,需要在qmail的基礎上增加具
      備LDAP認証的Patch包,具體操作使用如下命令: 
      #gunzip qmail-ldap-1_03-20010301_patch.gz 
      #cd qmail-1.03 
      #patch -p1 < /path to qmail-ldap patch/qmail-ldap patch name 
      在patch包打好之,需要修改qmail的Makefile文件來配置相應的LDAP信息,具體如下
      (這裡只說明必須修改的,其余的可選項請參考QLDAPINSTALL.TXT文檔): 
      1) -LDAPFLAGS = -DCLEARTEXTPASSWORD 
      配置是否在LDAP目錄中使用明文密碼 
      2) -LDAPLIBS = 
      配置使用的LDAP接口庫,在本例中為: 
      -LDAPLIBS = -L/root/LdapServer/lib -lldap llber lldap_r lpthread
      -lresolv 
      3) -LDAPINCLUDES = 
      配置使用的LDAP頭文件,在本例中為: 
      -LDAPINCLUDES = -I/root/LdapServer/include 

      4)-SHADOWLIBS = -lcrypt lshadow 
      -SHADOWOPTS = -DPW_SHADOW 
      配置使用的密碼認証方式 
      在Makefile設置修改完畢,重新編譯qmail源文件,然覆蓋安裝qmail,使用如下命
      令: 
      #make setup check 

      7. 安裝OpenLDAP 
      本例中採用了OpenLDAP的開放源代碼LDAP Server,詳細的管理請參考
      (http://www.openldap.org)站點的文檔以及《LDAP配置手冊》,下面概述其安裝配置
      過程: 
      #tar zxvf openldap-2_0_7.tgz 
      #cd openldap-2.0.7 
      #./configure 
      #make depend 
      #make 
      #make test 
      #make install 
      修改OpenLDAP Server的配置文件,啟動slapd服務器,具體如下: 
      #cd path to LDAP Server/ 
      #vi etc/openldap/slapd.conf 
      主要修改slapd.conf文件中的如下部分,在本例中為: 
      ############################################# 
      # ldbm database definitions 
      ############################################# 
      database ldbm 
      suffix "dc=gloomy , dc=openet , dc=com , dc=cn" 
      rootdn "dc=gloomy , dc=openet , dc=com , dc=cn" 
      rootpw secret 
      index objectclass,mail,uid 
      index qmailUser 

      8. 配置qmail+LDAP 
      在LDAP Server安裝測試完畢,修改並建立相應的qmail配置文件,增加對LDAP
      LookUp的支持,分為如下幾步: 
      1) 在/var/qmail/control/下建立相應的LDAP支持文件: 
      #cat ldapserver 
      192.168.0.117 
      #cat ldapbasedn 
      dc=gloomy , dc=openet , dc=com , dc=cn 
      #cat ldapobjectclass 
      qmailUser 
      2) 為LDAP添加相應的支持qmail郵件用戶的schema: 
      #cd qmail-1.03 
      #cp qmail.schema /root/LdapServer/etc/openldap/schema 
      修改slapd.conf文件,加入下面一行: 
      include /root/LdapServer/etc/openldap/schema/qmai.schema 
      3) 修改前面建立的run_mail啟動腳本,修改的內容如下: 
      #cat run_mail 
      csh -cf '/var/qmail/rc' & 
      tcpserver u 502 g 501 -c 100 0 smtp /var/qmail/bin/qmail-smtpd & 
      tcpserver -c100 0 pop3 /var/qmail/bin/qmail-popup gloomy.openet.com.cn
      /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir & 

      9. 在LDAP DIT中增加qmail郵件用戶目錄 
      首先啟動LDAP服務器,然創建相應的*.ldif文件(有關LDIF文件的格式,請參考
      RFC2849的描述),插入LDAP數據庫中,具體的命令如下: 
      #/root/LdapServer/libexec/slapd 
      在本例中建立的的交換文件為mailer.ldif,其具體內容如下: 
      #cat mailer.ldif 
      dn: cn=testUser , dc=gloomy , dc=openet , dc=com , dc=cn 
      cn: testUser 
      sn: testUser 
      objectClass: top 
      objectClass: person 
      objectClass: inetOrgPerson 
      objectClass: qmailUser 
      mail: test@gloomy.openet.com.cn 
      mailHost: gloomy.openet.com.cn 
      mailMessageStore: /home/test/Maildir/ 
      mailQuota: 1000000S,100C 
      uid: test 
      userPassword: test 
      插入qmail用戶目錄到LDAP的目錄信息樹中,使用如下命令: 
      #/root/LdapServer/bin/ldapadd x D”dc=gloomy,dc=openet,dc=com,dc=cn”
      W f mailer.ldif 


      10. 測試基LDAP的Pop3認証 
      在上述步驟完成,從新測試qmail郵件系統的運行狀況,主要從以下三個方面測試,具
      體命令如下: 
      1) 本地測試 
      具體請參考上面小節3的方法 
      2) Pop3+SMTP測試 
      具體請參考上面小節5的方法 
      3) 測試工具 
      #/var/qmail/bin/qmail-ldaplookup u test 
      #/var/qmail/bin/qmail-ladplookup m test@gloomy.openet.com.cn 
      4 參考資料 
      1) Life with qmail (http://www.lifewithqmail.org/lwq.html) 
      2) Life with qmail-LDAP (http://www.lifewithqmail.org/ldap/) 
      3) QLDAPINSTALL (http://www.nrg4u.com/) 
      4) Open LDAP 2.0 Administrator’s Guide
      (http://www.openldap.org/doc/admin/) 
      5) 《LDAP配置手冊》 
      5 總結 
      LDAP使得過去雜亂無序的網絡資源和信息管理呈現出一種樹狀的有序體系,不但使
      Internet資源的管理和控制變得易進行,而且同時在另外一方面也提高了各種信息和資
      源的使用效率,LDAP用10%的代價實現了X.500 DAP 90%的功能,是目前Internet上越來
      越廣泛的應用之一,本文通過對qmail郵件服務器和LDAP整合應用的安裝和配置的描述,
      希望能夠對掌握LDAP這個下一代因特網服務與應用的基礎提供一定的幫助。 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
如何設置一個基本的OpenLDAP Server (2001-09-04 15:00:01)
LDAP應用概述與qmail+LDAP安裝配置 (2001-09-03 15:00:00)
LDAP簡介:什是目錄 (2001-08-12 09:05:01)
什是LDAP? (2001-06-26 12:10:00)
OpenLDAP快速指南 (2001-06-21 13:04:00)
Solaris 8 新增功能一覽--(1)IPv6,LDAP,Java增強 (2001-06-13 10:08:01)
PHP4手冊:函數庫及函數(二十四) LDAP 目錄協定函式庫 (2001-04-18 14:41:15)
 

★  樊強制作 歡迎分享  ★