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