天天看點

搭建QMAIL郵件系統

qmailrocks 安裝指南 -(網上最全并有後期更新維護的qmail應用打包解決方案)

本文檔參考

[url]http://www.qmailrocks.com/introduction.htm[/url]

網上最全的帶後期更新維護的qmail應用打包解決方案,本文結合實際經驗寫出以下文檔。

删除隊列 find /var/qmail/queue/$i -type f -exec rm {} \;   

Qmailrocks.org Pre-Installation Checklist

需要預先安裝的軟體

  Apache,PHP,Perl,GCC,MySQL-Client,MySQL-Server,MySQL-Devel,OpenSSL,OpenSSL-devel,libssl-dev,wget,patch & patchutils

不需要的軟體

  Postfix,任何POP服務,任何SMTP服務

Perl需要安裝哪些子產品

  Digest::SHA1

  Digest::HMAC

  Net::DNS

  Time::HiRes

  HTML::Tagset

  HTML::Parser

需要打開的端口:

     流出端口: 25SMTP,110POP,143IMAP,783SPAMASSASSIN,993IMAPS

     流入端口:25SMTP,80HTTP,110POP,143IMAP,443HTTPS,783SPAMASSASSIN,993IMAPS

###########################################################

下載下傳需要的軟體

mkdir /downloads

cd /downloads

wget [url]http://www.qmailrocks.org/downloads/qmailrocks.tar.gz[/url]

tar zxvf qmailrocks.tar.gz

環境初始化腳本:

/downloads/qmailrocks/scripts/install/qmr_install_linux-s1.script

如果這個腳本正常運作,表示帳戶,組,權限,目錄等安裝環境已經具備,否則需要手工建立

qmail的更新檔,qmailrocks已經把qmail的相關更新檔集合為1個整體大更新檔。

/downloads/qmailrocks/scripts/util/qmail_big_patches.script

正常運作後表示qmail更新檔全部打齊全了 。

安裝SMTP認證更新檔

下載下傳軟體并且解開http://qmail.org/qmail-auth-20010105.tar.gz

2:cp README.auth base64.c base64.h ../qmail-1.03

patch -d ../qmail-1.03 < auth.patch

下面開始安裝qmail

cd /usr/src/qmail/qmail-1.03

make man && make setup check

./config-fast your_fqdn_hostname (ex: ./config-fast mail.mydomain.com)

make cert

Country Name (2 letter code) [GB]:US

State or Province Name (full name) [Berkshire]:Georgia

Locality Name (eg, city) [Newbury]:Atlanta

Organization Name (eg, company) [My Company Ltd]:qmailrocks.org

Organizational Unit Name (eg, section) []:mail

Common Name (eg, your name or your server's hostname) []:mail.qmailrocks.org

Email Address []:[email protected]

證書的位置:/var/qmail/control/servercert.pem

證書的快捷方式:/var/qmail/control/clientcert.pem

設定證書的權限:chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem

安裝  ucspi-tcp...

cd /usr/src/qmail/ucspi-tcp-0.88/

RH 9/RHEL/Fedora/Slackware 使用者需要安裝更新檔

patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch

make && make setup check

安裝daemontools....

cd /package/admin/daemontools-0.76/src

patch < /downloads/qmailrocks/patches/daemontools-0.76.errno.patch

cd /package/admin/daemontools-0.76

package/install

ps -aux 可以看到svs程序啟動了

安裝EZmlm

cd /downloads/qmailrocks/

tar zxvf ezmlm-0.53-idx-0.41.tar.gz

cd ezmlm-0.53-idx-0.41

make && make setup

安裝自動回複

cd /downloads/qmailrocks

tar zxvf autorespond-2.0.5.tar.gz

cd autorespond-2.0.5

make && make install

安裝Vpopmail    

Vpopmail with MySQL

mkdir ~vpopmail/etc

chown vpopmail:vchkpw ~vpopmail/etc

echo "localhost|0|vpopmailuser|password|vpopmail" > ~vpopmail/etc/vpopmail.mysql

chmod 640 ~vpopmail/etc/vpopmail.mysql

mysql -u root -p

CREATE DATABASE vpopmail;

GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpopmailuser@localhost IDENTIFIED BY '123';

quit

mysql -u vpopmailuser -p 測試登入一下

tar zxvf vpopmail-5.4.13.tar.gz

cd vpopmail-5.4.13

./configure --enable-logging=p --enable-auth-module=mysql --disable-many-domains --enable-sql-logging --enable-valias

make && make install-strip

注意: 如果你用的是gcc3.x 可能出錯:

In file included from vconvert.c:35:

vmysql.h:53:22: missing terminating " character

vmysql.h:60:35: missing terminating " character

make[2]: *** [vconvert.o] Error 1

如果出錯,打更新檔 patch < /downloads/qmailrocks/patches/vmysql.patch

再make;make install

安裝Vqadmin

tar zxvf vqadmin-2.3.6.tar.gz

cd vqadmin-2.3.6

./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html

修改httpd.conf

<Directory "/var/www/cgi-bin/vqadmin">

deny from all

Options ExecCGI

AllowOverride AuthConfig

Order deny,allow

</Directory>

cd /var/www/cgi-bin/vqadmin

vi .htaccess

AuthType Basic

AuthUserFile /var/www/cgi-bin/vqadmin/.htpasswd

AuthName vQadmin

require valid-user

satisfy any

chown apache .htaccess

htpasswd -bc /var/www/cgi-bin/vqadmin/.htpasswd admin 123

chmod 644 /var/www/cgi-bin/vqadmin/.htpasswd

apachectl stop

apachectl start

如果以上配置都正确的話,可以用[url]http://www.yourdomain.com/cgi-bin/vqadmin/vqadmin.cgi[/url]

來管理了。

安裝 Maildrop

tar zxvf maildrop-1.6.3.tar.gz

cd maildrop-1.6.3

./configure --prefix=/usr/local --exec-prefix=/usr/local --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota

make && make install-strip && make install-man

安裝Qmailadmin

tar zxvf qmailadmin-1.2.9.tar.gz

cd qmailadmin-1.2.9

完成後可以通過網頁添加删除使用者

安裝完成後預設是英文的需要該一下東西

結束安裝

這個腳本做了一些結束安裝的步驟

/downloads/qmailrocks/scripts/finalize/linux/finalize_linux.script

然後

vi /var/qmail/supervise/qmail-pop3d/run

将"mail.example.com" 修改成自己的域名

vi /var/qmail/supervise/qmail-smtpd/run

qmailctl stop

echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp

qmailctl cdb

echo [email protected] > /var/qmail/alias/.qmail-root

echo [email protected]> /var/qmail/alias/.qmail-postmaster

[email protected]> /var/qmail/alias/.qmail-mailer-daemon

ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous

chmod 644 /var/qmail/alias/.qmail*

解除安裝Sendmail,postfix郵件程式

sendmail:

rpm -qa | grep sendmail

sendmail-x.x.x.x

sendmail-doc-x.x.x.x

sendmail-devel-x.x.x.x

sendmail-cf-x.x.x.x

/etc/rc.d/init.d/sendmail stop

rpm -e --nodeps sendmail-x.x.x.x

rpm -e --nodeps sendmail-doc-x.x.x.x

rpm -e --nodeps sendmail-devel-x.x.x.x

rpm -e --nodeps sendmail-cf-x.x.x.x

或者這樣處理:

/etc/rc.d/init.d/sendmail stop (to stop Sendmail)

mv /usr/lib/sendmail /usr/lib/sendmail.old

mv /usr/sbin/sendmail /usr/sbin/sendmail.old

chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old

postfix

rpm -qa | grep postfix

postfix-x.x-x

/etc/rc.d/init.d/postfix stop

rpm -e --nodeps postfix-x.x-x

建立假的連接配接

ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

配置檔案存在及權限檢查

/downloads/qmailrocks/scripts/util/qmr_inst_check

安裝spamassassin反垃圾郵件

安裝和配置 SpamAssassin

      從 http://spamassassin.apache.org 網 站上下載下傳最新安裝源代碼       :

      # tar xzf Mail-SpamAssassin-2.64.tar.gz

# cd Mail-SpamAssassin-2.64

# perl Makefile.PL

# make

# make install

3.4 安裝 Chinese_rules.cf

      下載下傳 Chinese_rules.cf(http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf),把該規則放在

SpamAssassin 存 放 規 則 的 目 錄 ( 一 般 在 /usr/share/spamassassin 或 者

/usr/local/share/spamassassin)。

3.5 qmail 與 SpamAssassin 結合

      在 SpamAssassin 3.x 的 spamc 目錄下編譯 qmail-spamc

      # cc -O -o qmail-spamc qmail-spamc.c

      # install -m 755 qmail-spamc /var/qmail/bin

      確定 qmail-queue,spamc 和 spamd 在預設路徑中

      # ln -s /var/qmail/bin/qmail-queue /usr/bin/qmail-queue

                                                  11

啟動 spamd

/usr/bin/spamd --daemonize --pidfile /var/run/spamd.pid

每次更新 Chinese_rules.cf 需要重起 spamd 方法如下

# kill -HUP `cat /var/run/spamd.pid`

增加 qmail-smtpd 運作需要的記憶體空間

編輯/var/qmail/supervise/qmail-smtpd/run 中 softlimit 的-m 參數,一般 10M 就可以。

編輯 /etc/tcp.smtp 如下

127.:allow,RELAYCLIENT=""

:allow,QMAILQUEUE="/var/qmail/bin/qmail-spamc"

編輯[root@mail e]# vi /etc/mail/spamassassin/local.cf

添加required_score          5.0  這個設定太低會誤删正常郵件,設7就差不多了

rewrite_header Subject ********SPAM********

report_safe            1

use_bayes              1

skip_rbl_checks         0

ok_languages            zh en

ok_locales              en ko

~                              

使所有的郵件都經過 SpamAssassin 處理

# qmailctl cdb

這樣,所有的郵件都經過 SpamAssassin 處理,在郵件信頭會加上一些擴充信頭 X-Spam

測試反垃圾效果

标記為SPAM的就是垃圾郵件

這個郵件垃圾級别是12。3 高于設定的5是以他是垃圾郵件

 另一個方法就是在/var/qmail/control/目錄下建立badmailfrom檔案,在該檔案中添加要拒  絕 的郵件位址,不用重新開機就可以實作拒絕發件人,可以将一些經常發送垃圾郵件的郵件位址加進來,實作垃圾郵件過濾的功能。

啟動qmail

qmailctl start

/service/qmail-send: up (pid 29956) 2 seconds

/service/qmail-send/log: up (pid 29960) 2 seconds

/service/qmail-smtpd: up (pid 29963) 2 seconds

/service/qmail-smtpd/log: up (pid 29968) 2 seconds

/service/qmail-pop3d: up (pid 29971) 2 seconds

/service/qmail-pop3d/log: up (pid 29972) 2 seconds

messages in queue: 0

messages in queue but not yet preprocessed: 0

測試登入

發件測試

telnet localhost 25

如果你遇到問題,檢查:

f you happen to get an error that states "454 TLS not available: missing RSA private key (#4.3.0)" after you issue the "starttls" command, you will want to check 2 things:

1) Verify that the cert actually exists at /var/qmail/control/servercert.pem. If it's not there, go back to step 2 and repeat the cert creation step.

2) Verify that the cert is owned by vpopmail:qmail. If it's not, then make it so like this:

chown vpopmail:qmail /var/qmail/control/servercert.pem

繼續閱讀