歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

安裝qmail全套功略

作者:wind521
  
  前言
  sendmail的功能是足夠強大的,然而它的配置和管理也是十分復雜的。有另一個也很常用的郵件服務程序稱為qmail。
  需要注意的是,許多人認為qmail要比sendmail簡單一些。就筆者個人的感覺,不能同意這種說法。但是,qmail在配置一些稀奇古怪的功能方面確實比sendmail要稍微容易一 些。另外qmail與sendmail不同之處在於,缺省的時候qmail將在用戶的宿主目錄中存儲郵件,而不是像sendmail那樣不分青紅皂白地放在/var/spool/mail下面,並且qmail不 需要使用文件鎖定,所以可以把用戶郵件放在NFS服務器上,這樣,可以使用多台服務器 來提供服務。對於大型郵件系統這是很重要的。(在sendmail也可以這樣做,但必須非 常小心以免造成郵件丟失)。但是這個功能雖然不錯,卻又產生了一些十分討厭的後果 。對於大型的ISP,qmail也很重要,它可以簡化虛擬域的設置。我們將試圖介紹如何用 qmail構造一個郵件服務器。當然,這裡的介紹不可能像介紹sendmail那樣細致,如果要 使用一些比較高級的功能,你也許必須研究qmail的文檔。
  
  軟件包:
  
  qmail-1.03 qmail基本系統。在http://em.ca/~bruceg/qmail+patches/上有一個好的補丁包,裡面有若干針對Qmail的POP3d及其他問題的補丁,筆者建議您把它下載過來。
  ucspi-tcp-0.88 tcpsever服務程序
  daemontools-0.70 監視工具
  checkpassword-0.81 pop3驗證用戶的程序
  ezmlm-0.53 郵件轉發
  vpopmail-4.9.6-1 虛擬域用戶pop3支持
  qmailadmin-0.35 虛擬域web管理
  autorespond-1.0.0 自動回復程序
  sqwebmail-1.2.0 webmail
  vqsignup-0.4 web方式用戶注冊
  
  
  軟件來源:
  http://www.qmail.org
  http://www.inter7.com/qmail
  每個包安裝前務必先仔細閱讀INSTALL和FAQ,很多問題在FAQ都有解決方法。
  
  安裝步驟:
  
  1. #mkdir /var/qmail
  
  2.設定組、用戶權限
   # 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
  
  3.
   #tar xzvf qmail-1.03.tar.gz
  
   進入qmail目錄後,仔細閱讀一下README和INSTALL文件.然後開始編譯qmail
  
   #make setup check
  
  4. #cd qmail-1.03
   #./config
  
  5.建立系統別名
   # (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)
   # chmod 644 ~alias/.qmail*
  
  6.
   # cp /var/qmail/boot/home /var/qmail/rc
   # chmod 755 /var/qmail/rc
   編輯 /var/qmail/rc
   修改其中 ./Mailbox 成為 ./Maildir ,如下:
  
   # !/bin/sh
   # Using splogger to send the log through syslog.
   # Using qmail-local to deliver messages to ~/Maildir by default.
   exec env - PATH="/var/qmail/bin:$PATH"
   qmail-start ./Maildir splogger q
  
   其中 splogger qmail 指令是用來將紀錄文件紀錄於 / 中。
  
  建立樣板
  
   $ /var/qmail/bin/maildirmake /etc/skel/Maildir
   $ echo ./Maildir/ > ~/.qmail
  
   注意 Maildir 必須為該使用者所有,可以 chown 變更,並以 chmod 700 Maildir 設定權限。
  
  7.安裝 ucspi-tcp-0.88
   # tar zxvf ucspi-tcp-0.88.tar.gz
   # cd ucspi-tcp-0.88
   # make
   # make setup check
   執行檔將被安裝於 /usr/local/bin 中。
  
  8.安裝 checkpassword
   # tar zxvf checkpassword-0.81.tar.gz
   # cd checkpassword-0.81
   # make
   # make setup check
   # chmod og-rx /bin/checkpassword
  
   執行檔 checkpassword 將被安裝於 /bin 中如果不對/etc/passwd中的用戶開放mail,不需要裝checkpassword,只要裝vpopmail
  
  9.安裝 daemontools
  
   # tar zxvf daemontools-0.70.tar.gz
   # cd daemontools-0.70
   # make
   # make setup check
   執行檔將安裝於 /usr/local/bin 中。安裝本工具後可以用
  
   # mkdir /var/run/qmail
   # supervise /var/run/qmail /var/qmail/rc
  
   來啟動qmail,可以用svc來關閉活重起qmail,用svstat監視qmail運行情況,(qmail FAQ)
  
  10.安裝 vpopmail
  
   # groupadd vchkpw
   # useradd -g vchkpw vpopmail
   # mkdir ~vpopmail/etc
   # echo ":allow" > ~vpopmail/etc/tcp.smtp
   # tar zvfz vpopmail-4.9.6-1.tar.gz
   # cd vpopmail-4.9.6-1
   # ./configure --enable-roaming-users=y --enable-default-domain=mydomain.com --enable-passwd=n
   # make
   # make install-strip
  
   # crontab -e
   40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
  
   # cd /home/vpopmail/bin
   # ./vadddomain mydomain.com mydomain
   append mydomain.com to /var/qmail/control/rcpthosts
  
  
  11.從Sendmail向Qmail遷移
  
    如果你的系統以前安裝使用著Sendmail,就需要進行下面的步驟:
  
    11.1.首先找到Sendmail的啟動程序,一般是在/etc/rc.d目錄中,看上去像這樣的命令:“sendmail -bd -q15m”,將其注釋掉。
  
    11.2. 殺掉Sendmail進程。如果Sendmail有子進程,可以反復用-STOP和-CONT信號殺,直到沒有子進程後用-TERM後加-CONT殺就可以了。
  
    11.3. 檢查E-mail隊列中是否還有信,如果認為有必要將它們發送出去,可以在以後一段時間不定期地運行“sendmail.bak -q”,直到隊列清空。
  
    11.4. 去掉Sendmail等文件的setuid bit:
  
    # chmod 0 /usr/lib/sendmail
    # chmod 0 /usr/sbin/sendmail
    # chmod 0 /usr/lib/sendmail.mx
    # mv /usr/lib/sendmail /usr/lib
    /sendmail.bak
    # mv /usr/sbin/sendmail /usr
    /sbin/sendmail.bak
  
    11.5. 將csh -cf ′/var/qmail/rc &&′添加到啟動文件中去。
  
    11.6. 安裝Qmail的Sendmail外殼:
  
    # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
    # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
  
    11.7. 虛擬域與虛擬用戶。
  
    將虛擬域名加入/var/qmail/
  
    control/local和/var/qmail/control/rcpthosts 。然後在/var/
  
    qmail/control/virtualdomains中加入your.virtual.domains:youracct。
  
    這樣,所有發往[email protected]的郵件都將以[email protected]的形式發給youracct。VmailMgr是一個Qmail的增強工具,它擴展了Qmail的口令驗證功能,使用戶可以通過POP3 及IMAP訪問自己的虛擬郵箱,我們將在以後的內容中重點介紹VmailMgr。
  
  12.激活qmail SMTP , POP3 daemon 系統服務
  
   建立 SMTP 轉信規則
    建立 /etc/tcp.smtp 內容為
    :allow
   此為接受任何Client端所發出之轉送信件
   若要拒絕某些IP所發出之Relay則改為 /etc/tcp.smtp如下
    1.2.3.4:allow,RELAYCLIENT=""
   127.:allow, RELAYCLIENT=""
   如此,除1.2.3.4及127.*之外的所有地址,都將被拒絕轉送信件。
     
   接下來,轉換 tcp.smtp 成為 cdb 格式。
   # /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
  
   注意:若對 tcp.smtp 有任何變更,都必須經過 tcprules 轉換成為 cdb 才會生效。另外,tcp.smtp 若為空白,則表示拒絕所有的轉送,因為預設的規則為 deny。至此,轉送規則已建立,稍後將依此規則激活 qmail-smtpd。
  
    設定 SMTP 及 POP3 daemon 之激活
    請移除 inetd.conf 中有關 smtp 及 pop3 的設定 (加上 # 號)
    編輯 /etc/services,改為以下設定:
  
    smtp 25/tcp mail
   # pop-3 110/tcp #pop version 3
    # pop-3 110/udp
   pop3 110/tcp
    pop3 110/udp
  
    激活 SMTP:
    /usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb
    -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
    | /var/qmail/bin/splogger smtpd 3 &
  
    其中UID和GID為前述新增 qmail 系統帳號之 qmaild 之 User ID,以及 nofiles 之 group ID。
    /var/qmail/bin/splogger那一行會將log檔寫在 /var/log/maillog。
  
   激活 POP3:
    編輯激活檔加入以下設定:
   tcpserver -H -R 0 pop3
   /var/qma

Copyright © Linux教程網 All Rights Reserved