【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
Linux qmail安裝指南
許靖
版本:2.9
最後更新日期: 2005-04-20
郵箱:
網站: http://www.xuki.org/
問題討論:http://www.xuki.org/bbs/
本文檔全面介紹如何使用qmail在Linux上建造一個高性能的郵件伺服器,如何用Vpopmail實現虛擬的郵件域,如何使用qmailadmin 通過Web頁面方便的管理用戶,如何添加大容量的郵件列表支持,如何實現病毒郵件清除,如何實現中文垃圾郵件過濾,以及如何實現用戶的Web登陸。
我將在linux下安裝qmail分成若干步驟,您只要按照順序完成這些步驟,則可安裝一台基於Linux的qmail郵件伺服器;此套安裝方法已經在RedHat AS4和Cent OS4下測試通過;希望有時間又有興趣的朋友能夠加入其中,一起完善它,做一套最完善的中文qmail安裝指南,以幫助更多的正在學習qmail的朋友少走些彎路。
此文所實現的郵件系統功能列表:
· SMTP伺服器:SMTP-AUTH認證(Plain,Login,CRAM-MD5),TLS(SSL)支持
· POP3伺服器:CRAM-MD5,APOP,和SSL支持
· IMAP伺服器:TLS(SSL)支持
· 郵件病毒清除
· 郵件附件限制
· 中文垃圾郵件過濾(最高90%)
· 自動回復
· 郵件列表
· Web管理
· 用戶註冊
· 通過Web顯示統計信息
· WebMail
· MRTG
安裝前準備:
第一節:安裝引言
1.1 介紹
1.2 什麼是qmail?為什麼選擇qmail?
1.3 何處可得到最新版本
1.4 本指南發展歷史
1.5 參考文章
1.6 免責聲明
1.7 致謝
第二節:安裝qmail前軟體和環境確認
2.1 磁碟空間確認
2.2 檢查DNS設置
2.3 確認系統環境
2.4 設置防火牆
2.5 設置MySQL
2.6 卸載已有的郵件系統
安裝郵件系統:
第三節:下載所需要的軟體包
第四節:安裝qmail
第五節:安裝vpopmail
第六節:安裝iGenus(可選)
第七節:安裝iGenus_Admin(可選)
第八節:安裝courier-imap
第九節:安裝SquirrelMail(可選)
第十節:安裝SqwebMail(可選)
第十一節:安裝Wmail(可選)
第十二節:安裝Autorespond&Ezmlm
第十三節:安裝qmailadmin
第 十四節:安裝Vqregister(可選)
第十五節:安裝vQadmin
第十六節:安裝SpamAssassin
第十七節:安裝Clamav
第十八節:安裝MailDrop 和TNEF reader
第 十九節:安裝qmail-scanner&qms-analog
第二十節:安裝qmailAnalog & qlogtools
第二十一節:安裝isoqlog
第二十二節:安裝MRTG
測試及維護:
第二十三節:測試
第二十四節:系統維護
第二十五節:FAQ(網上收集)
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
第一節:安裝引言 TOP
1.1 介紹
本指南的目的是幫助你從頭開始建立一個大容量(1000用戶以上)、易管理、易擴充、分散式、用戶界面友好的郵件系統。如果僅僅是為了支持內部網路的很少用戶,你可以選擇sendmail,甚至是基於NT平台的任何共享的郵件伺服器軟體,它們更加易與操作和設定。作為一種嘗試,當然你也可以選擇本系統,但是你必須對Linux系統有相當的了解,至少是可以獨立的配置一台Linux網路伺服器。
本文檔並不是簡單的把相關軟體的安裝文檔及FAQ漢化,相反的,本文檔幾乎不包括任何相關軟體的安裝文檔及FAQ,我認為作為一個qmail的使用者,他應該做到以下幾點:
· 熟悉了所有Dan Bernstein(qmail的作者)發布的文檔;
· 熟悉www.qmail.org(qmail官方站點)的相關資源;
· 盡量理解Life With qmail;
· 耐心閱讀所有相關軟體的安裝文檔及FAQ!
qmail是一個非常複雜的系統,儘管它本身非常簡潔。如果你對它的複雜性不夠了解,你可以對照一下Sendmail, qmail就是設計用來取代Sendmail的。儘管qmail的配置要比Sendmail簡單的多,而且通過第三方編程人員的不斷努力,附加的add-on使得qmail更加易於配置和管理,但是它確實是一個非常複雜的系統。它需要你具有豐富的*NIX平台的管理經驗,一旦你能正確的理解qmail,你就會發現,qmail確實是一個空前優秀的郵件系統。
本文檔想起到一個「粘合劑」的作用,希望能夠幫助qmail用戶迅速實現一個以qmail為核心的大型郵件系統,並希望能夠針對各組件的協調工作問題給出一個可行的解決方案。
本文檔及其所有的附加腳本都已經經過了作者本人N(N>;20)遍的測試,如果在你的系統上不能工作或出現異常錯誤,你可以參見第二節:安裝qmail前軟體和環境確認,對於其他的 *NIX 系統,我相信本文檔的基本概念是正確的。
1.2 什麼是qmail?為什麼選擇qmail?
qmail是可以完全替代Sendmail-binmail體系的新一代UNIX郵件系統,它也是一個基於UNIX操作系統的Internet郵件傳輸機構( Internet Mail Transfer Agent 簡稱MTA)。它採用標準的簡單郵件傳輸協議(Simple Mail Transfer Protocol 簡稱SMTP)與Internet上其他MTA交換信息。為了解決用戶郵件存儲問題,qmail提出了Maildir存儲方式,每個郵件作為單獨的一個文件保存在用戶個人的郵件目錄下,這就避免了加鎖。同時,qmail支持虛擬域(Virtual Domain)和虛擬用戶(Virtual User),使郵件系統的用戶獨立於UNIX系統用戶。與Sendmail相比,qmail有以下優點:
*安全---- qmail將E-mail處理過程分為多個分過程,盡量避免以Root用戶身份運行。同時qmail也禁止對特權用戶(Root、Deamon等)直接發信。
*可靠---- qmail的直接投遞保證了E-mail在投遞過程中不會丟失。qmail同時支持新的更可靠的信箱格式——Maildir,保證系統在突然崩潰情況下不至破壞整個信箱。
* 高效----運行在奔騰的BSD上,qmail每天可以輕鬆地投遞20萬封電子郵件。
*簡單---- qmail 要比其他的Internet Mail系統小得多。 它通過統一的向前機制完成Forwarding、Alias和Maillist等功能, qmail使用簡單高效隊列來處理投遞。qmail-SMTPD可以由Inetd啟動,節省了一定資源。
1.3 何處可得到本指南最新版本?
本文檔最新版本從http://www.xuki.org/可以得到。
1.4 本指南的發展歷史?
2.9-2005年4月8日
系統升級成RHEL 4/CentOS4,使用2.6的內核
補丁和腳本集升級成最新的toaster-scripts-0.7&qmail-toaster-0.7.2
Clamav升級至0.83
qmail-scanner升級至1.25
spamassassin升級至3.0.2,增加及集成中文垃圾郵件過濾和中國反垃圾郵件聯盟實時黑名單服務
vpopmail升級至vpopmail-5.4.10
2.8-2004年11月22日,之前沒有規範的記錄
。
。
。
1.0-2004年10月份,記不太清楚了
1.5 參考文章
Bill's Linux qmail Toaster
Life with qmail
The qmailrocks.org qmail Installation guide
1.6 免責聲明
1. 此篇文章僅做參考,如果因為此文所引致的一切後果請自行負責;
2. 本人沒有義務對此文做技術支持,各位如果有疑問請到我的論壇交流。
1.7 致謝
作者感謝所有對此文檔及其相關內容提出疑問及報告錯誤的網友,是他們促進了本文檔的完善,使本文檔具有更好的可用性。
第二節:安裝qmail前軟體和環境確認 TOP
在成功安裝qmail郵件系統之前,請務必確認安裝中所需要的軟體包和相關設置。此節給出一些確認清單,以方便各位朋友在安裝之前進行相關設置的確認。當然不同的系統和伺服器設置方法不一樣,你可能發現有些確認動作沒有列出來;如果各位有需要補充的,請聯絡我改正。
2.1 磁碟空間確認
下面是通常安裝一套系統所需要的空間,根據需求不同空間要求也不一樣。
最保守的磁碟空間必須有80-90MB;這些空間包括下載軟體包和解開軟體包所需要的磁碟空間。 在安裝完成之後,刪除下載的軟體安裝包,郵件服務運行所需要的安全空間15MB 就夠了。
如果你的系統有多個分區:
/ 70MB.
/var 10MB
/home 起動郵件系統3MB夠了,但因為郵件均存放在/home/vpopmail下,要根據實際情況調整
當然像現在硬碟價格這麼低的狀況下,我想硬碟空間不是什麼問題的。
2.2 檢查DNS設置
在開始之前,確保正確設置了DNS MX記錄.例如使用"domain.com"作為郵件域,對MX記錄進行測試:
在Linux下:
host -t mx domain.com
domain.com. mail is handled by 10 mail.domain.com.
host -t a mail.domain.com
mail.domain.com. has address xxx.xxx.xxx.xxx
在Windows下:
C:\>;nslookup
Default Server: ns.domain.com
Address: xxx.xxx.xxx.xxx
>;set type=mx
>;domain.com
domain.com MX preference = 10, mail exchanger = mail.domain.com
mail.domain.com internet address = xxx.xxx.xxx.xxx
>;exit
如果你的郵件伺服器是用做公司內部郵件服務,不對外提供服務,此處可略過。
2.3 確認系統環境
確認下面的軟體是否已經安裝:
rpm -q httpd php php-mysql mysql mysql-server mysql-devel gdbm gdbm-devel openssl openssl-devel stunnel krb5-devel
如果你還沒有安裝, 請先安裝它們. 你可以到安裝光碟或是在這裡找到它們的RPM包http://www.rpmfind.net.
我的操作系統選擇和安裝包選擇:
操作系統:RedHat EL4/CentOS 4
系統軟體安裝包選擇:
Desktops
無
Applications
無
Servers
Web Server:加選php-mysql
Mail Server:加選spamassassin,其它清除
FTP Server:Vsftpd
MySQL Database:加選mysql-bench/mysql-server/php-mysql
Development
Development Tools
SELinux: 像一些setuid程序,比如qmailAdmin, 將不能與SELinux同時工作,你必須在安裝系統的時候關掉SELinux; 如果你已經安裝好了操作系統並開啟SELinux,並希望知道如何關掉它,請參考:
http://www.redhat.com/docs/manuals/...ction-0068.html
如果要通過yum升級CentOS4系統,則需要導入CentOS4.0:RHEL4的dag
rpm --import http://ftp.riken.jp/Linux/dag/packa...GPG-KEY.dag.txt
2.4 設置防火牆
安裝完系統后,修改/etc/httpd/conf/httpd.conf,使web服務正常啟用,為mysql添加root用戶的密碼。如果設置了防火牆,要打開如下埠:
Outbound ports (tcp)
25 - SMTP
110 - POP
143 - IMAP
783 - Spamassassin
993 - IMAPS
Inbound Ports (tcp)
22-SSH
25 - SMTP
80 - HTTP
110 - POP services
143 - IMAP
443 - HTTPS
783 - Spamassassin
993 - IMAPS
2.5 設置MySQL
啟動mysql server:
/etc/rc.d/init.d/mysqld start
設置mysql root口令:
mysqladmin -u root password xukixu (設置你的密碼)
mysql的頭文件和庫文件分別在/usr/include/mysql和/usr/lib/mysql。
2.6 卸載已有的郵件系統
確認沒有SMTP/POP/IMAP服務在運行:
/etc/init.d/sendmail stop
netstat -na | grep 25
netstat -na | grep 110
netstat -na | grep 143
service sendmail stop
刪除已有的SMTP/POP/IMAP軟體:
rpm -e --nodeps sendmail
第三節:下載所需要的軟體包 TOP
些篇文檔所使用的軟體清冊如下:
qmail – 本文的主角,世界上使用最廣的郵件系統之一。此處使用的是netqmail-1.05的補丁集和shupp.org的Toaster 7.0運行腳本
ucspi-tcp - ucspi-tcp軟體包由一組工具組成。它們用來簡單的建立客戶機-伺服器tcp後台程序
daemontools - 是inetd和winetd的代替品,用它來監聽qmail-send,qmail-smtpd,qmail-pop3d
Vpopmail - 一個以qmail為基礎的虛擬域管理包,其允許在一個IP地址添加多個虛擬域
iGenus - 大麻兄的作品,PHP編寫的Webmail
iGenus_Admin -通過WEB添加域和帳號
Courier-imap -此郵件系統的IMAP模塊
ezmlm – 一個快速,強大的郵件列表程序,可以通過qmailadmin對其進行配置
autorespond – 自動回復程序,可以很好的與qmailadmin配合使用
qmailadmin – 通過WEB管理vpopmail域的極好工具
vqadmin – 通過WEB添加域
SpamAssassin – 垃圾郵件防止,中文垃圾郵件清理就靠它了
Clamav - 一個免費的殺毒軟體,此郵件系統的殺毒模塊
MailDrop – 郵件過濾工具,比較難以使用,但是值得學會它
qmail-scanner – 一個掃描郵件隊列的插件,其調用Clamav和SpamAssassin進行清除郵件病毒和垃圾郵件的動作
qmailanalog – 分析難以理解的qmail日誌,並每晚給出報告
isoqlog - 一個qmail日誌分析工具,可以分析和統計qmail的運行日誌,並生成漂亮的HTML格式的報表
MRTG - 多路由器通信監視器(MRTG)是在網路鏈路上監控通信負載的一件工具
為了方便大家使用,我把下文中所提到的軟體打成了一個包,下載地址為:
http://www.xuki.org/qmail_2.9.tar.gz;
大部份的軟體都是用的最新版(2005年4月),我也將會跟蹤軟體的發行來更新些安裝指南。
那麼下面讓我們開始安裝必須的軟體:
#創建/home/pkg/目錄
mkdir /home/pkg
cd home
#下載軟體
wget http://www.xuki.org/qmail_2.9.tar.gz
#將軟體解壓縮到目錄中
tar -zvf qmail_2.9.tar.gz
此安裝指南中所使用的軟體包有:
autorespond-2.0.5.tar.gz
clamav-0.83.tar.gz
courier-authlib-0.55.tar.bz2
courier-imap-4.0.2.tar.bz2
daemontools-0.76.errno.patch
daemontools-0.76.tar.gz
ezmlm-0.53.tar.gz
ezmlm-idx-0.42.tar.gz
igenus_2.0.2_20040901_release.tgz
igenus_admin_0.1.tgz
isoqlog-2.1.1.tar.gz
maildrop-1.8.0.tar.bz2
mrtg-2.10.15-1.i386.rpm
netqmail-1.05.tar.gz
perl-Razor-Agent-2.40-2.i386.rpm
perl-suidperl-5.8.5-12.1.1.i386.rpm
qlogtools_errno.patch qlogtools-3.1.tar.gz
qmailadmin-1.2.3.tar.gz
qmailanalog-0.70.errno.patch
qmailanalog-0.70.tar.gz
qmailmrtg7-4.0.tar.gz
qmail-scanner-1.25.tgz
qmail-toaster-0.7.2.patch.bz2
qms-analog-0.4.2.tar.gz
spamassassin-3.0.2-2.1.el3.rf.i386.rpm
squirrelmail-1.4.4.tar.gz
sqwebmail-5.0.1.tar.bz2
tnef-1.2.3.1.tar.gz
toaster-scripts-0.7.tar.gz
ucspi-tcp-0.88.errno.patch
ucspi-tcp-0.88.tar.gz
vpopmail-5.4.10.tar.gz
vqadmin-2.3.6.tar.gz
vqregister-2.6.tar.gz
#解壓縮netqmail-1.05.tar.gz
chmod 755 -R pkg
cd pkg
tar -xzf netqmail-1.05.tar.gz
cd netqmail-1.05
./collate.sh
注意:./collate.sh這一步不要忘
第四節:安裝qmail TOP
除非你確實熟悉各個軟體和系統結構,否則請按照如下步驟一步一步安裝軟體,此文將引導你安裝一套完整的郵件系統。這個安裝過程基本上你只需要複製粘貼就可以完成。
安裝daemontools
daemontools是一個收集管理UNIX進程的工具.用它來監聽qmail-send,qmail-smtpd,qmail-pop3d.
參考:http://cr.yp.to/daemontools.html
#安裝:
cd /home/pkg
tar -zxvf daemontools-0.76.tar.gz
cd admin/daemontools-0.76
patch -p1 < /home/pkg/netqmail-1.05/other-patches/daemontools-0.76.errno.patch
package/install
# 驗證daemontools已經正常運行:
sleep 5
ps ax | grep svscan
安裝ucspi-tcp
ucspi-tcp軟體包由一組工具組成。它們用來簡單的建立客戶機-伺服器tcp後台程序。TcpServer是一個比inetd安全性更好的選擇。它內建有基於規則的連接控制,能完善地在達到預定義的最大系統負載時將連接推遲,這點比 inetd好。Tcpserver也被推薦與qmail一同使用,因為它們是同一個作者編的程序。
參考:http://cr.yp.to/ucspi-tcp.html
#安裝:
cd /home/pkg
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < ../ucspi-tcp-0.88.errno.patch
make
make setup check
安裝qmail
參考:http://www.qmail.org
http://www.lifewithqmail.org/
這個toaster補丁,是下面這幾個補丁的組合:
smtp auth (SMTP認證)
spf (發信人DNS檢查)
qmail-queue (如果要使用病毒掃描引擎則需要這個補丁)
maildir++ patch
support oversize dns packets (not necessary if you use dnscache)
chkuser (檢查本地vpopmail用戶表,信頭的語法,這個補丁需要在安裝vpopmail后被安裝。)
spam throttle
qregex (匹配badmailfrom和badmailto文件里的規則)
big concurrency (set the spawn limit above 255)
#安裝:
#創建所需要的用戶
mkdir /var/qmail
groupadd nofiles
useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin
useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin
useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin
useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin
groupadd qmail
useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin
useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin
useradd qmails -g qmail -d /var/qmail -s /sbin/nologin
#順便添加vpopmail用戶
groupadd vchkpw -g 89
useradd vpopmail -u 89 -g vchkpw
#準備安裝qmail
cd /home/pkg
tar -xzf toaster-scripts-0.7.tar.gz
cd netqmail-1.05/netqmail-1.05/
# 搜索函數straynewline中的451改為553
vi qmail-smtpd.c
# 當你的伺服器收到無效格式的郵件時,會發送:"I am not going to accept that message at the moment,you can try again later",對方伺服器收到后,幾秒鐘后又會發送同樣的郵件給你,造成多次的重複。
# 改為553后,你的伺服器將直接發送:"I am not going to accept that message,don't try sending it again.",告訴對方的伺服器不要再發這封無效的信件。
# RedHat/Fedora用戶可能需要為TLS補丁鏈接一個include文件
# 輸入如下命令:
ln -s /usr/kerberos/include/com_err.h /usr/include/
# 刪除sendmail的鏈接
rm -rf /usr/sbin/sendmail
#qmail編譯安裝
make
make setup check
#註:qmail的補丁在vpopmail安裝之後再打。
# 用你自己的主機名代替下面的mail.domain.com
./config-fast mail.domain.com
#設置管理員的郵箱地址。
#發往root/postmaster/mailer-daemon地址的郵件將會由定義的管理員郵箱接收。
#將如下的「
[email protected]"替換成你的管理員郵箱。
cd /var/qmail/alias
echo "
[email protected]" >; .qmail-postmaster
echo "
[email protected]" >; .qmail-mailer-daemon
echo "
[email protected]" >; .qmail-root
chmod 644 /var/qmail/alias/.qmail*
#開啟SPF設置
echo ./Maildir/ >;/var/qmail/control/defaultdelivery
echo 3 >; /var/qmail/control/spfbehavior
#添加qmail的幫助手冊
echo MANPATH /var/qmail/man >;>; /etc/man.config
#為qmail服務建立監控目錄和日誌文件:
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log
mkdir -p /var/qmail/supervise/qmail-pop3ds/log
cp /home/pkg/toaster-scripts-0.7/send.run /var/qmail/supervise/qmail-send/run
cp /home/pkg/toaster-scripts-0.7/send.log.run /var/qmail/supervise/qmail-send/log/run
cp /home/pkg/toaster-scripts-0.7/smtpd.run /var/qmail/supervise/qmail-smtpd/run
cp /home/pkg/toaster-scripts-0.7/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
cp /home/pkg/toaster-scripts-0.7/pop3d.run /var/qmail/supervise/qmail-pop3d/run
cp /home/pkg/toaster-scripts-0.7/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
cp /home/pkg/toaster-scripts-0.7/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
cp /home/pkg/toaster-scripts-0.7/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run
echo 20 >; /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
mkdir -p /var/log/qmail/pop3ds
chown -R qmaill /var/log/qmail
#啟動腳本:
cd /home/pkg
cp toaster-scripts-0.7/rc /var/qmail/rc
chmod 755 /var/qmail/rc
cp toaster-scripts-0.7/qmailctl /var/qmail/bin/
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
rm -rf /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# 用daemontools來啟動qmail-send和qmail-smtpd
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
#命令:
# 啟動,停止,重啟,查看隊列等
qmailctl start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help
# 檢查服務
netstat -an | grep 25
ps -ef | grep qmail
ps -efl | grep "service errors" | grep -v grep
#日誌:
/var/log/maillog
/var/log/qmail/current
/var/log/qmail/pop3d/current
/var/log/qmail/pop3ds/current
/var/log/qmail/smtpd/current
我建議重新回顧一下剛才我們所做的步驟以熟悉對qmail的安裝. 下面我們將開始vpopmail的安裝.
第五節:安裝vpopmail TOP
vpopmail是一個以qmail為基礎的虛擬域管理包;其允許在一個IP地址添加多個虛擬域;並且可以不需要使用系統帳號做郵件帳號。
參考:http://vpopmail.sf.net
#創建目錄:
mkdir -p /home/vpopmail/etc
# 設置默認域,紅色部份改成你要設置的域。
echo "domain.com" >; /home/vpopmail/etc/defaultdomain
# 設置smtp規則,關閉open relays
echo '127.0.0.1:allow,RELAYCLIENT=""' >; /home/vpopmail/etc/tcp.smtp
cd /home/vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
# 設置MySQL信息,第一個vpopmail是帳號,xukixu為密碼,第二個vpopmail是資料庫
echo "localhost|0|vpopmail|xukixu|vpopmail" >; /home/vpopmail/etc/vpopmail.mysql
chmod 640 /home/vpopmail/etc/vpopmail.mysql
chown -R vpopmail.vchkpw /home/vpopmail/etc
# 在MySQL里添加vpopmail的帳號
mysql -uroot -pxukixu
CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.*
TO vpopmail@localhost IDENTIFIED BY 'xukixu';
FLUSH PRIVILEGES;
QUIT
#安裝:
cd /home/pkg/
tar zxvf vpopmail-5.4.10.tar.gz
cd vpopmail-5.4.10
# 帶資料庫支持
./configure --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-auth-logging --enable-sql-logging --disable-valias --disable-mysql-limits --enable-learn-passwords
make
make install-strip
#管理:
echo 'export PATH=$PATH:/home/vpopmail/bin' >;>; /etc/profile
source /etc/profile
# 添加域,紅色部份前面是域名,後面是管理員(postmaster)密碼
vadddomain domain.com xukixu
# 添加用戶,紅色部份為註解,不用輸入
vadduser -q 10485760S(郵箱大小)
[email protected](郵箱帳號) 1234(密碼)
vmoduser -c 許靖(郵箱描述)
[email protected] # 設置郵箱容量達到90%的警告信息
vi /home/vpopmail/domains/.quotawarn.msg
From: 郵箱管理員
Reply-To:
[email protected] To: 郵箱用戶
Subject: 郵箱空間警告
Mime-Version: 1.0
Content-Type: text/html; charset=gb2312
Content-Transfer-Encoding: base64
您的郵箱空間已經達到90%.如果想繼續使用,請刪除一些信件.
如果需要幫助,請聯繫郵箱管理員:
Email :
[email protected] # 設置郵箱已滿的警告信息
echo "郵件被拒絕,用戶的郵箱空間已滿." >; /home/vpopmail/domains/.over-quota.msg
#啟動腳本:
cp /home/pkg/toaster-scripts-0.7/vpopmailctl /var/qmail/bin
ln -s /var/qmail/bin/vpopmailctl /usr/bin
chmod 755 /var/qmail/bin/vpopmailctl
#現在打上qmail的補丁:
cd /home/pkg/netqmail-1.05/netqmail-1.05
bunzip2 -c /home/pkg/qmail-toaster-0.7.2.patch.bz2 | patch -p0
make clean
make
qmailctl stop
make setup check
chown -R vpopmail:vchkpw /var/qmail/spam
#創建SSL Key
make cert
#按提示輸入公司信息
# make cert
Generating a 1024 bit RSA private key
.............++++++
...............++++++
writing new private key to '/var/qmail/control/servercert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) :CN
State or Province Name (full name) :GD
Locality Name (eg, city) :SZ
Organization Name (eg, company) :Domain
Organizational Unit Name (eg, section) []:Domain
Common Name (eg, your name or your server's hostname) []:domain.com
Email Address []:
[email protected] make tmprsadh
#注:這裡可能要多等一會
chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem
# 用"crontab -e"在crontab里增加下面這條,每天晚上更新temp keys
01 01 * * * /var/qmail/bin/update_tmprsadh >; /dev/null 2>;&1
#起動qmail
qmailctl start
# 用daemontools來啟動qmail-pop3d和qmail-pop3ds
ln -s /var/qmail/supervise/qmail-pop3d /service
ln -s /var/qmail/supervise/qmail-pop3ds /service
#命令:
# 啟動,停止,重啟,查看隊列等
vpopmailctl start|stop|restart|stat|pause|cont|help
# 檢查服務
netstat -an | grep 110
ps -ef | grep qmail
ps -efl | grep "service errors" | grep -v grep
安裝選項參考:
vpopmail 5.4.10
Current settings
---------------------------------------
vpopmail directory = /home/vpopmail
uid = 89
gid = 89
roaming users = OFF --disable-roaming-users (default)
password learning = ON --disable-learn-passwords (default)
md5 passwords = ON --enable-md5-passwords (default)
file locking = ON --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
make seekable = ON --enable-make-seekable (default)
clear passwd = ON --enable-clear-passwd (default)
user dir hashing = ON --enable-users-big-dir (default)
address extensions = OFF --disable-qmail-ext (default)
ip alias = OFF --disable-ip-alias-domains (default)
domain quotas = OFF --disable-domainquotas (default)
auth module = mysql --enable-auth-module=mysql
mysql replication = OFF --disable-mysql-replication (default)
sql logging = ON --enable-sql-logging
mysql limits = OFF --disable-mysql-limits (default)
MySQL valias = OFF --disable-valias (default)
auth inc = -I/usr/include/mysql
auth lib = -L/usr/lib/mysql -lmysqlclient -lz -lm
system passwords = OFF --disable-passwd (default)
pop syslog = show failed attempts with clear text password
--enable-logging=p
auth logging = ON --enable-auth-logging (default)
all domains in one SQL table = --enable-many-domains (default)
#POP3和SMTP測試
用outlook測試qmail的smtp和pop3是否正常,注意由於vpopmail支持虛擬域名,所以在outlook中設置郵件帳號時,用戶名后要加上域名,如
[email protected]。smtp是帶認證的,在outlook中也要作相應設置。建議先測試正常后再進行下一步安裝。如果qmail出現問題,可查看mysql中的vpopmail資料庫,/var/log下的mysqld和maillog日誌記錄,這樣容易很快找出問題。
第六節:安裝iGenus(可選) TOP
iGENUS 不是一套獨立的郵件系統,只是一個 Webmail 介面,需要配合 qmail+vpopmail+Mysql 使用。iGENUS 是由 PHP 寫成,採用直接對 qmail 的 Maildir 進行讀寫操作,因而比 IMAP/POP 方式更快一點。
參考:http://www.igenus.org
#安裝:
cd /home/pkg
tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/
cd /var/www/
rm -rf html/
mv igenus html
#建temp文件夾
mkdir /tmp/temp
chmod -R 0755 /tmp/temp
chown -R vpopmail:vchkpw /tmp/temp
mkdir /home/netdisk
chmod -R 0755 /home/netdisk
chown -R vpopmail:vchkpw /home/netdisk
chmod -R 0755 /var/www/html/
chown -R vpopmail:vchkpw /var/www/html/
#修改httpd.conf
vi /etc/httpd/conf/httpd.conf
User vpopmail
Group vchkpw
DocumentRoot "/var/www/html/"
AddDefaultCharset GB2312 //使默認頁面為中文
/etc/rc.d/init.d/httpd restart //重啟apache,使修改生效
#修改config_inc.php文件
cd /var/www/html/config
vi config_inc.php
$CFG_BASEPATH = "/var/www/html/"; \\改成你安裝的目錄
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail'; \\vpopmail訪問mysql的帳號
$CFG_MYSQL_PASS = 'xukixu'; \\vpopmail訪問mysql的密碼
$CFG_MYSQL_DB = 'vpopmail'; \\資料庫
$CFG_TEMP = "/tmp/temp"; \\刪除$CFG_BASEPATH,並修改路徑
#重新編製Mysql資料庫表格
#刪除之前創建的域名
vdeldomain domain.com
#編輯資料庫:
mysql -uroot -pxukixu
use vpopmail;
drop table lastauth;
drop table vpopmail;
quit;
#編輯/var/www/html/docs/iGENUS.sql
vi /var/www/html/docs/iGENUS.sql
# phpMyAdmin SQL Dump
# version 2.5.3
# http://www.phpmyadmin.net
#
# Host: localhost
# Generation Time: Jun 04, 2004 at 11:26 AM
# Server version: 3.23.55
# PHP Version: 4.3.0
#
# Database : `vpopmail`
#
# --------------------------------------------------------
#
# Table structure for table `address`
#
use vpopmail; //加入這一行
CREATE TABLE `address` (
`id` int(11) unsigned NOT NULL auto_increment,
`pw_id` int(5) NOT NULL default '0',
`name` varchar(64) NOT NULL default '',
`email` varchar(128) NOT NULL default '',
UNIQUE KEY `id` (`id`),
KEY `pw_id` (`pw_id`)
) TYPE=MyISAM PACK_KEYS=1 ;
# --------------------------------------------------------
。。。。。。。。。
。。。。。。。。。。
CREATE TABLE `vpopmail` (
`pw_id` int(5) unsigned NOT NULL auto_increment,
`pw_name` varchar(32) NOT NULL default '',
`pw_domain` varchar(64) NOT NULL default '',
`pw_passwd` varchar(40) NOT NULL default '',
`pw_uid` int(11) default NULL,
`pw_gid` int(11) default NULL,
`pw_gecos` varchar(48) default NULL,
`pw_dir` varchar(255) default NULL,
`pw_shell` varchar(20) default NULL,
`pw_clear_passwd` varchar(16) default NULL, \\加入這一行
`createtime` timestamp(14) NOT NULL,
PRIMARY KEY (`pw_id`),
KEY `pw_name` (`pw_name`,`pw_domain`)
) TYPE=MyISAM PACK_KEYS=1 ;
#運行如下命令導入數據表
mysql -uroot -pxukixu
#設置igenus 定義允許上傳下載的郵件的大小
#編輯/etc/php.ini
vi /etc/php.ini
max_execution_time=60
memory_limit=20M
post_max_size = 10M
file_uploads=on
upload_max_filesize=10M
register_globals=On
session.bug_compat_42=0
session.bug_compat_warn=0
sendmail_path = /var/qmail/bin/qmail-inject
#編輯/etc/http/conf/httpd.conf
vi /etc/httpd/conf/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
NameVirtualHost *:80
ServerName mail.domain.com
DocumentRoot /var/www/html
chmod 777 /var/lib/php/session/ -R
#重啟apache:
service httpd restart
#如果需要,用vadddomain和vadduser添加新域名和新用戶。
最後打開瀏覽器,輸入http://domain.com/,就可以訪問網站了。
第七節:安裝iGenus_Admin(可選) TOP
一個基於Web的vpopmail域和帳號管理工具。
參考:http://www.igenus.org
#安裝
cd /home/pkg
tar -xzvf igenus_admin_0.1.tgz -C /var/www/html/
#設置
vi /var/www/html/admin/includes/config_inc.php
/*-
* iGENUS webmail
*
* Copyright (c) 1999-2002 by iGENUS Org.
* All rights reserved.
* Author: Wu Qiong
*
* $Id: config_inc.php,v 1.11 2004/03/23 13:59:12 wuqiong Exp $
*/
if(!defined("INCLUDE_CONFIG_OK")) {
define("INCLUDE_CONFIG_OK","TRUE");
/* gid flags defind by vpopmail.h */
// define('NO_PASSWD_CHNG',0x01);
define('NO_POP', 0x02);
define('NO_WEBMAIL', 0x04);
// define('NO_IMAP', 0x08);
// define('BOUNCE_MAIL', 0x10);
// define('NO_RELAY', 0x20);
// define('NO_DIALUP', 0x40);
// define('V_USER0', 0x080);
// define('V_USER1', 0x100);
// define('V_USER2', 0x200);
// define('V_USER3', 0x400);
define('NO_SMTP', 0x800);
// define('QA_ADMIN', 0x1000);
$CFG_VPOPMAIL_HOST = "localhost";
$CFG_VPOPMAIL_USER = "vpopmail"; \\改為你的帳號
$CFG_VPOPMAIL_PASS = "xukixu"; \\改為你的密碼
$CFG_VPOPMAIL_DB = "vpopmail";
$CFG_VPOPMAIL_TABLE = "vpopmail";
$CFG_ADMIN_TABLE = "admin";
$CFG_LAGESITE = true;
$CFG_NUMOFPAGE = 20;
$CFG_MAILBOX['inbox'] = ".";
$CFG_MAILBOX['outbox'] = ".Outbox";
$CFG_MAILBOX['draft'] = ".Draft";
$CFG_MAILBOX['trash'] = ".Trash";
$CFG_VPOPMAIL_PATH = "/home/vpopmail"; \\改為你的vpopmail安裝目錄
// $CFG_VPOPMAIL_PATH = "/home2/vpopmail";
$CFG_SYSADMIN_NAME = "Admin";
$CFG_SYSADMIN_PASSWD= '$1$GvmONIco$0SwBB.mEoP3KJ5Zda7ioV0';
$CFG_SYSADMIN_PASSWD_FILE = $CFG_VPOPMAIL_PATH . "/etc/syspasswd.dat";
$CFG_TIMEOUT = 600;
$CFG_IGENUS_ADM = "iGENUS郵件系統管理";
$CFG_TEMPLATE_PATH = "template/";
}
?>;
#保存退出
touch /etc/syspasswd.dat
chown -R vpopmail.vchkpw /var/www/html
chmod -R 755 /var/www/html
#登錄設置頁面
http://domain.com/admin/sys/
用戶:Admin密碼Admin來登錄.注意A要大寫..這個管理帳號密碼登錄后可以改的
登錄后,首先點"更新資料庫"你就會看見你的域名.然後點"編輯"把"登錄許可權 該域管理員(Postmaster)有權登錄進行用戶管理"這一項打勾,確認后,就可以用
http://domain.com/admin/
來登錄管理了。
第八節:安裝courier-imap TOP
Courier-IMAP支持IMAP/SIMAP訪問
參考:http://www.inter7.com/courierimap
courier-imap 從 4版本開始,把 courier-authlib 獨立出來了,需要先安裝 courier-authlib. 具體步驟:
cd /home/pkg
tar -xjvf courier-authlib-0.55.tar.bz2
cd courier-authlib-0.55
./configure --prefix=/usr/local --exec-prefix=/usr/local --with-authvchkpw --without-authldap --without-authmysql --disable-root-check --with-ssl --with-authchange pwdir=/usr/local/libexec/authlib --with-redhat
make
make install
make install-configure
#修改設置文件:/usr/local/etc/authlib/authdaemonrc,去掉不需要的認證模式,只留vchkpw方式,然後認證進程改成2個
#完成後啟動它:
/usr/local/sbin/authdaemond start
#需要把這個腳本放到/etc/init.d, 然後在/etc/rc3.d 或/etc/rc5.d做一個符號連接,以便系統啟動時自動運行。
#啟動后,在內存中可以看到2個authlib進程:
ps -aef |grep authlib
root 20108 20107 0 Jan28 ? 00:00:00 /usr/local/libexec/courier-authlib/authdaemond
root 20109 20108 0 Jan28 ? 00:00:00 /usr/local/libexec/courier-authlib/authdaemond
#這裡可以想辦法把運行身份改成vpopmail,畢竟用root運行,如果出現問題影響範圍會大很多。
#測試是否正常:
運行/usr/local/sbin/authtest:(紅字為輸入內容,後面的1121221應該是pop3密碼,後面部分應該是命令結果)
authtest
[email protected] 1121221
Authenticated:
[email protected] (uid 509, gid 509)
Home Directory: /var/vpopmail/domains/domain.com/xukixu
Maildir: (none)
Quota: (none)
Encrypted Password: $1$LJjMeeeeqqeqF9VWUywtLV/O5ciqeg.
Cleartext Password: xukixu
Options: disablewebmail=0,disablepop3=0,disableimap=0
#出現上面的提示就是說authlib運行正常
#下面來安裝courier-imap
cd /home/pkg
tar -xjf courier-imap-4.0.2.tar.bz2
cd courier-imap-4.0.2
# 作為vpopmail用戶進行安裝
chown -R vpopmail:vchkpw ../courier-imap-4.0.2
su vpopmail
./configure --with-redhat
# 注:Redhat用戶需要使用"--with-redhat"選項
make
exit
make install-strip
make install-configure
cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
chmod 755 /etc/rc.d/init.d/courier-imap
chkconfig --add courier-imap
#配置:
# 修改文件/usr/lib/courier-imap/etc/authdaemonrc,如果沒有,則鏈接/usr/local/etc/authlib/authdaemonrc
authmodulelist="authvchkpw"
# 修改文件/usr/lib/courier-imap/etc/imapd
IMAPDSTART=YES
# 修改文件/usr/lib/courier-imap/etc/imapd-ssl
IMAPDSSLSTART=YES
# 修改文件/usr/lib/courier-imap/etc/imapd.cnf
CN=domain.com
[email protected] # 修改文件/usr/lib/courier-imap/etc/pop3d.cnf
CN=domain.com
[email protected] #啟動:
/etc/rc.d/init.d/courier-imap start
#使用outlook測試一下IMAP是否正常
第九節:安裝SquirrelMail(可選) TOP
SquirrelMail 是一個PHP編寫的IMAP客戶端,在安裝SquirrelMail之前,要確保你的IMAP正常運行。
參考: http://www.squirrelmail.org/
#安裝
cd /home/pkg
tar -xzvf squirrelmail-1.4.4.tar.bz
cd squirrelmail-1.4.4
cd plugins
tar -xzf ../../quota_usage-1.3-1.2.7.tar.gz
cp quota_usage/config.php.sample quota_usage/config.php
cd ../
./configure
# 你將要設置如下選項
#選擇 「2. Server Settings」=>;「A. Update IMAP Settings」=>;「8. Server software」改成「courier」;回到主菜單,選擇「4.General Options」=>;「1. Data Directoryand」改成「/var/www/data/」;再退回主菜單,選擇「8. Plugins」=>;添加你希望用到的插件。回到主菜單,選擇「10. Languages」,將「 Default Language」改成「zh_CN」,「Default Charset」改成「GB2312」。保存退出。
mv data /var/www/
chown -R vpopmail.vchkpw /var/www/data
cd ../
mv squirrelmail-1.4.4 /var/www/html/squirrelmail
#登錄http://domain.com/squirrelmail 驗證是否安裝成功。
第十節:安裝SqwebMail(可選) TOP
Sqwebmail同SquirrelMail一樣,也是一個基於IMAP客戶端的webmail,在安裝它之前,同樣要確保IMAP服務運行正常.
參考:www.courier-mta.org/sqwebmail/
安裝sqwebmail后,如果希望在webmail上直接修改密碼,則需要安裝如下兩個RPM包:
cd /home/pkg
rpm -Uvh expect-5.42.1-1.i386.rpm tcl-8.4.7-2.i386.rpm
#下面開始安裝sqwebmail
cd /home/pkg
tar -xjvf sqwebmail-5.0.1.tar.bz2
cd sqwebmail-5.0.1
./configure --enable-webpass=vpopmail --enable-softtimeout=300 --enable-autopurge=10 --enable-maxpurge=30 --enable-mimecharset=gb2312 --with-maxargsize=5000000 --with-maxformargsize=5000000 --with-maxmsgsize=5000000 --without-ispell --without-authshadow --without-authmysql --without-authldap --without-authuserdb --without-authpwd --without-authpam --with-authvchkpw --without-authdaemon --enable-unicode --enable-hardtimeout=14400 --enable-softtimeout=3600 --enable-webpass=yes
make configure-check
umask 220
make
make check
make install-strip
make install-configure
#完成後,啟動腳本在/usr/local/sqwebmail/libexec/sqwebmaild.rc,要把它放到/etc/init.d,並且讓他啟動時運行
/usr/lib/sqwebmail/libexec/sqwebmaild.rc start
su -c "/usr/lib/sqwebmail/share/sqwebmail/cleancache.pl"
cp /usr/lib/sqwebmail/libexec/sqwebmaild.rc /etc/init.d/sqwebmaild
chmod 755 /etc/init.d/sqwebmaild
ln -s /etc/init.d/sqwebmaild /etc/rc.d/rc3.d/S89sqwebmaild
ln -s /etc/init.d/sqwebmaild /etc/rc.d/rc5.d/S89sqwebmaild
#用"crontab -e"在crontab里增加下面這條,定時清除cache
crontab -e
*/30 * * * *su -c "/usr/lib/sqwebmail/share/sqwebmail/cleancache.pl"
#登錄http://domain.com/cgi-bin/sqwebmail 驗證是否安裝成功。
第十一節:安裝Wmail(可選) TOP
Wmail其實就是sqwebmail,只不過作者進行了一下漢化和修改了HTML模板而已.
第十二節:安裝Autorespond&Ezmlm TOP
autorespond是一個自動回復工具,可以很好的與qmailadmin配合使用
#安裝:
cd /home/pkg
tar -xvzf autorespond-2.0.5.tar.gz
cd autorespond-2.0.5
make
make install
安裝Ezmlm
exmlm是一個快速,強大的郵件列表程序,可以通過qmailadmin對其進行配置
#安裝:
cd /home/pkg
tar -xvzf ezmlm-0.53.tar.gz
tar -xvzf ezmlm-idx-0.42.tar.gz
cp -rf ezmlm-idx-0.42/* ezmlm-0.53/
cd ezmlm-0.53
patch < idx.patch
chmod u+x makelang
make
make man
#漢字GB2312支持
make ch_GB
make setup
第十三節:安裝qmailadmin TOP
qmailadmin除了不能添加刪除虛擬域外,幾乎可以完成所有的虛擬域管理
#安裝:
cd /home/pkg
tar -xvzf qmailadmin-1.2.3.tar.gz
cd qmailadmin-1.2.3
./configure --enable-htmldir=/var/www/html --enable-cgibindir=/var/www/cgi-bin --enable-vpopuser=vpopmail --enable-autoresponder-bin=/usr/bin --disable-ezmlm-mysql --enable-maxusersperpage=20 --enable-maxaliasesperpage=20 --enable-modify-quota --enable-domain-autofill
make
make install-strip
cd /usr/local/share/qmailadmin/lang
mv en en.bak
cp zh-cn en
安裝選項參考:
qmailadmin 1.2.3
Current settings
---------------------------------------
cgi-bin dir = /var/www/cgi-bin
html dir = /var/www/html
image dir = /var/www/html/images/qmailadmin
image URL = /images/qmailadmin
template dir = /usr/local/share/qmailadmin
qmail dir = /var/qmail
vpopmail dir = /home/vpopmail
autorespond dir = /usr/bin
ezmlm dir = /var/qmail/bin/ezmlm
ezmlm idx = yes
mysql for ezmlm = no
help = no
modify quota = yes
domain autofill = yes
modify spam check = no
第十四節:安裝Vqregister(可選) TOP
vqregister是vqsignup的升級版本,提供qmail郵箱註冊功能。
#解壓縮
cd /home/pkg
tar zxvf vqregister-2.6.tar.gz
#進入vqregister-2.6安裝目錄
cd vqregister-2.6
#修改安裝配置文件Makefile
vi Makefile
#找到這幾行
DEFS = -I$(VDIR)/include -I/usr/local/mysql/include
LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/mysql/lib/mysql -lmysqlclient
INSTALL_DIR = /usr/local/apache/cgi-bin/vqregister
#將它們改成實際路徑,這裡是
DEFS = -I$(VDIR)/include -I/usr/include/mysql
LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/lib/mysql -lmysqlclient
INSTALL_DIR = /var/www/cgi-bin/vqregister
#編譯安裝
make all install clean
#安裝完成後需要編輯vqregister的配置文件
cd /var/www/cgi-bin/vqregister
vi vqregister.conf
#修改下面幾項
# 設置管理信息
AdminEmail
[email protected] # 設置郵箱使用的域名
AllowDomain domain.com
#RegisterUser vQregister
# 設置資料庫選項
DB_Name vpopmail
DB_User vpopmail
DB_Password xukixumysql
#其它項目可根據註釋修改,不改也行,直接保存即可。
#可以根據需要修改vqregister.email,此文件為用戶註冊后發送給用戶的郵件。
#/var/www/cgi-bin/vqregister/html中的文件為vqregister的網頁模板,可根據需要漢化和修改。
#測試vqregister:
#在瀏覽器地址欄輸入http://domain.com/cgi-bin/vqregister/vqregister.cgi ,按要求添入註冊信息,提交后顯示註冊成功信息,證明你的vqregister安裝成功!如果出現錯誤,請按提示檢查註冊信息或檢查vqregister.conf文件。
第十五節:安裝vQadmin TOP
vqadmin是一個基於web 的控制通道. 它允許系統管理員可以執行root用戶才能進行的操作.
#安裝
cd /home/pkg
tar -zxf vqadmin-2.3.6.tar.gz
cd vqadmin-2.3.6
vi db_owner.c
static const char *host="localhost";
static const char *user="vpopmail";
static const char *passwd="xukixu"; /* NULL for no password */
static const char *db="vpopmail";
./configure
make
make install
#現在我們需要將下面幾行添加到httpd.conf文件中:
vi /etc/httpd/conf/httpd.conf
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
#保存文件並退出.
cd /var/www/cgi-bin/vqadmin
chown nobody .htaccess
chmod 600 .htaccess
# 創建一個管理帳號及密碼
htpasswd -bc /etc/httpd/conf/vqadmin.passwd admin(帳號) adminpass(密碼)
chown vpopmail.vchkpw /etc/httpd/conf/vqadmin.passwd
chmod 644 /etc/httpd/conf/vqadmin.passwd
chown -R vpopmail.vchkpw /var/www/cgi-bin
#編輯.htaccess
vi .htaccess
AuthType Basic
AuthUserFile /etc/httpd/conf/vqadmin.passwd
AuthName vQadmin
require valid-user
satisfy any
#重啟Apache
service httpd restart
在你的瀏覽器上測試一下安裝結果:
http://www.domain.com/cgi-bin/vqadmin/vqadmin.cgi
第十六節:安裝SpamAssassin TOP
Spam是一個讓人討厭的字眼. 大部分的人都不喜歡它. 如果你想保護自己免受spam, 你就需要安裝SpamAssassin.
因我在安裝系統的時候已經選擇好了SpamAssassin。現在我們將其升級到最新版:
cd /home/pkg
rpm -Uvh spamassassin-3.0.2-2.1.el3.rf.i386.rpm
還需要安裝另外一個軟體包:
rpm -Uvh perl-Razor-Agent-2.40-2.i386.rpm
#修改起動腳本使spamassassin支持vpopmail
#修改如下一行:
vi /etc/init.d/spamassassin
SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v"
vi /etc/sysconfig/spamassassin
SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v"
下圖是我在安裝SpamAssassin時所列出的perl模塊,SpamAssassin所要用到的一些Perl模塊是:
perl-Time-HiRes
perl-Digest-SHA1
perl-HTML-Parser
perl-DB_File
perl-HTML-Tagset
perl-Razor-Agent
perl-DBI
perl-Net-DNS
perl-URI
這些模塊請安裝上。
#spamassassin的過濾模板在/etc/mail/spamassassin/local.cf,修改為:
vi /etc/mail/spamassassin/local.cf
required_score 5.0
rewrite_header Subject ********SPAM********
report_safe 1
use_bayes 1
skip_rbl_checks 0
ok_languages zh en
ok_locales en ko
score HEAD_ILLEGAL_CHARS 0
score SUBJ_ILLEGAL_CHARS 0
score DATE_IN_PAST_03_06 0
score UPPERCASE_25_50 0
score UPPERCASE_50_75 0
score UPPERCASE_75_100 0
score X_MSMAIL_PRIORITY_HIGH 0
score X_PRIORITY_HIGH 0
score TO_TXT 100
score RATWARE_HASH_2 100
score RATWARE_HASH_2_V2 100
score BAYES_99 0.1
score BAYES_80 0.1
score BAYES_60 0.1
score FROM_ILLEGAL_CHARS 0.1
score MIME_BASE64_TEXT 0.1
score NO_RDNS_DOTCOM_HELO 0.1
score CHINA_HEADER 0.1
score NO_REAL_NAME 0.2
score HTML_MESSAGE 0.2
score MIME_HTML_ONLY 0.2
score MIME_HTML_ONLY_MULTI 0.2
score FORGED_MUA_OUTLOOK 0.2
score FORGED_HOTMAIL_RCVD 0.2
score FORGED_OUTLOOK_TAGS 0.2
score MAILTO_TO_SPAM_ADDR 0.2
#黑白名單
whitelist_from *@domain.com
# ---------------------------------------------------------------------------
# 使用中國反垃圾郵件聯盟的CBL/CDL
# URL: http://www.anti-spam.org.cn/
header RCVD_IN_CBL eval:check_rbl('cbl', 'cbl.anti-spam.org.cn.')
describe RCVD_IN_CBL Received via a relay in cbl.anti-spam.org.cn
tflags RCVD_IN_CBL net
header RCVD_IN_CDL eval:check_rbl('cdl-notfirsthop', 'cdl.anti-spam.org.cn.')
describe RCVD_IN_CDL CDL: dialup sender did non-local SMTP
tflags RCVD_IN_CDL net
#SCORE
score RCVD_IN_CBL 4.0
score RCVD_IN_CDL 3.0
#運行ntsysv,將spamassassin設定的為開機運行
#使用CCERT 中文垃圾郵件過濾規則集Chinese_rules.cf
wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
#啟動SpamAssassin
service spamassassin start
#定期自動更新中文反垃圾郵件規則
crontab –e
#加入
0 0 1 * * wget -N -P /usr/share/spamassassin http://www.ccert.edu.cn/spam/sa/Chi....d/spamassassin restart;/etc/init.d/spamassassin restart;
#建立SpamAssassin的學習系統
sa-learn --sync -D -p user_prefs
#查看自學習的數據信息
sa-learn --dump all
#查看調試信息
spamassassin --lint –D
第十七節:安裝Clamav TOP
#添加所需的組和用戶
groupadd clamav
useradd -g clamav -s /bin/false clamav
#安裝軟體
cd /home/pkg
tar -xzvf clamav-0.83.tar.gz
cd clamav-0.83
./configure --disable-zlib-vcheck
make check
make install
#測試Clamav
clamscan --recursive --log=/tmp/clamscan.log ./ //掃描當前目錄,測試clamscn是否運行
cat /tmp/clamscan.log
#更改/usr/local/etc/freshclam.conf文件,去掉下面選項前面的#:
vi /usr/local/etc/freshclam.conf
#Example \\前面加上#
UpdateLogFile /var/log/freshclam.log \\去掉前面的#
LogSyslog \\去掉前面的#
PidFile /var/run/freshclam.pid \\去掉前面的#
更改/usr/local/etc/clamd.conf文件,去掉下面選項前面的#:
vi /usr/local/etc/clamd.conf
#Example \\前面加上#
LogFile /var/log/clamav/clamd.log \\去掉前面的#
LogFileMaxSize 2M \\去掉前面的#
LogTime \\去掉前面的#
PidFile /var/run/clamd.pid \\去掉前面的#
LogSyslog \\去掉前面的#
ScanMail \\去掉前面的#
touch /var/log/freshclam.log
chmod 644 /var/log/freshclam.log
chown clamav:clamav /var/log/freshclam.log
mkdir /var/lib/clamav
chown clamav:clamav /var/lib/clamav
#升級clamscan病毒庫
freshclam --verbose
#把freshclam加入crontab 定時更新病毒庫,自動掃描/home目錄
crontab -e
0 1 * * * freshclam --quiet -l /var/log/freshclam.log
0 6 * * * /usr/local/bin/clamscan --recursive --infected --exclude /usr/local/share/clamav/viruses.db --exclude /usr/local/share/clamav/viruses.db2 --log=/var/log/clamscan.log /home
#創建freshclam日誌記錄文件
mkdir -p /var/log/clamav
touch /var/log/clamav/clamd.log
chown clamav.clamav -R /var/log/clamav/
chmod 644 -R /var/log/clamav/
#創建clamav啟動腳本
vi /etc/rc.d/init.d/clamav
#!/bin/sh
#
# Startup / shutdown script for Clam Antivirus
case "$1" in
start)
/usr/local/sbin/clamd && echo -n 'Clamd started'
/usr/local/bin/freshclam -d -c 2 -l /var/log/freshclam.log
echo -n ' freshclam started'
;;
stop)
/usr/bin/killall clamd >; /dev/null 2>;&1 && echo -n 'Clamd stoped'
/usr/bin/killall freshclam >; /dev/null 2>;&1 && echo -n ' freshclam Stoped'
;;
*)
echo ""
echo "Usage: `basename $0` { start | stop }"
echo ""
exit 64
;;
esac
#使其能夠執行
chmod 755 /etc/init.d/clamav
#隨開機起動
ln -s /etc/init.d/clamav /etc/rc.d/rc3.d/S88clamav
ln -s /etc/init.d/clamav /etc/rc.d/rc5.d/S88clamav
第十八節:安裝MailDrop 和TNEF reader TOP
TNEF是一個從"application/ms-tnef". 類型中找出MIME附件的程序.這僅僅是微軟系統中的一種附件.TNEF程序允許將封裝成TNEF的附件提取出來. 安裝TNEF並不是必須的, 但我強烈推薦安裝它!
# 安裝 maildrop
cd /home/pkg
tar -xjvf maildrop-1.8.0.tar.bz2
cd maildrop-1.8.0
./configure
make
make install-strip
make install-man
# 安裝 the tnef
cd /home/pkg
tar -xzvf tnef-1.2.3.1.tar.gz
cd tnef-1.2.3.1
./configure
make
make install
#使用Maildrop調用SpamAssassin
#在/home/vpopmail/domains/localhost.com(你創建的域)/ 建立mailfilter文件
touch mailfilter
chown vpopmail:vchkpw mailfilter
chmod 700 mailfilter
vi mailfilter
#mailfilter內容如下:
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
VSPAM=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
`test -d $VHOME/Maildir/`
if( $RETURNCODE != 0 )
{
echo "Sorry , but the user $EXT@$HOST dos not exist"
EXITCODE=77
exit
}
if ( $SIZE < 262144 )
{
exception {
xfilter "/usr/bin/spamc -f -u $EXT@$HOST"
}
}
if (/^X-Spam-Flag: YES/)
{
to "$VSPAM/Maildir/.Trash/."
EXITCODE=0
}
else
{
to "$VHOME/Maildir/."
}
#修改.qmail-default內容如下:
vi .qmail-default
| preline /usr/local/bin/maildrop mailfilter
第十九節:安裝qmail-scanner&qms-analog TOP
為了能夠掃描郵件伺服器中進出的郵件, 我們需要安裝 qmail-scanner. 如果你之前沒有安裝perl-suidperl,我們還需要安裝它
cd /home/pkg
rpm -Uvh perl-suidperl-5.8.5-12.1.1.i386.rpm
#解開qmail-scanner...
tar zxvf qmail-scanner-1.25.tgz
#解壓qms-analog...
tar zxvf qms-analog-0.4.2.tar.gz
cd qms-analog-0.4.2
make all
#下一步,我們拷貝所需要的qms-analog文件到qmail-scanner安裝目錄
cp qmail-scanner-1.25-st-qms-20050219.patch /home/pkg/qmail-scanner-1.25
#現在,讓我們打上qms-analog補丁
cd /home/pkg/qmail-scanner-1.25
patch -p1 < qmail-scanner-1.25-st-qms-20050219.patch
#繼續安裝qmail-scanner,添加所需的組和用戶
groupadd qscand
useradd -g qscand -s /bin/false qscand
#我們通過qms-config-script腳本來安裝qmail-scanner,編輯qms-config-script
vi qms-config
#修改下面紅色部份以達到我們的需求:
./configure --domain domain.com \
--admin postmaster \
--local-domains "domain.com" \
--add-dscr-hdrs yes \
--dscr-hdrs-text "X-Antivirus-MYDOMAIN" \
--ignore-eol-check yes \
--sa-quarantine 0 \
--sa-delete 0 \
--sa-reject no \
--sa-subject ":SPAM:" \
--sa-alt yes \
--sa-debug no \
--notify admin \
--redundant yes \
--qms-monitor no \
--lang en_GB \
--debug no \
--unzip yes \
--scanners clamscan,verbose_spamassassin \
"$INSTALL"
#注意: "--admin" 和 "--domain" 參數組成了帳號"user"@"domain name". 警告消息將通過qmail-scanner 發往這個郵件帳號, 所以必須確認這是一個管理級別的帳號. 另外,所有域的警告信息都會發給這個帳號, 所以一定要小心.
#保存並退出。
#現在我們測試qmail-scanner安裝
chmod 755 qms-config
./qms-config
#在第一步時, 按y 允許qmail-scanner提前configure. 第二步時, 按y,建立 qmail-queue-scanner.pl 文件.
#測試如果沒有錯誤 ,就可以進行下一步安裝
./qms-config install
#看看/var/qmail/bin/qmail-scanner-queue.pl是否存在
chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl
chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl
#然後用一個普通用戶登陸,執行/var/qmail/bin/qmail-scanner-queue.pl -z
#如果沒有Can't do setuid出現,安裝OK
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -z
#查看qmailscan當前包含的特徵
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -r
#保存qmailscan定義特徵的修改,使他生效。
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g
chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl
chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl
chown -R qscand:qscand /var/spool/qmailscan
vi /var/qmail/supervise/qmail-smtpd/run
#在你的qmail啟動腳本修改紅色部份
#!/bin/sh
qmailDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
PATH=$PATH:/usr/local/bin:/var/qmail/bin
qmailQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" export qmailQUEUE
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/local/bin/softlimit -m 40000000 \
/usr/local/bin/tcpserver -v -H -R -l 0 \
-x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$qmailDUID" -g "$NOFILESGID" 0 smtp \
/var/qmail/bin/qmail-smtpd \
/home/vpopmail/bin/vchkpw /bin/true 2>;&1
#后重新啟動smtp服務
qmailctl stop
qmailctl start
qmailctl stat
#這裡有測試程序
cd /home/pkg/qmail-scanner-1.25/contrib/
chmod 755 test_installation.sh
./test_installation.sh -doit
#這個腳本會設定的管理員郵件地址發送3個郵件,第一個郵件是一般的正常郵件,第二個郵件中會包含eicar.com測試病毒,第三個郵件同樣包含eicar.com測試病毒,不過所附帶的文件名不是eicar.com。
#如果qmail-scanner安裝正確,管理員就應該可以收到關於後面的兩個郵件的警告郵件。
#如果系統出錯,可以查看/var/spool/qmailscan/qmail-queue.log日誌文件。
#qmail-scanner的特徵過濾在/var/spool/qmailscan/quarantine-attachments.txt
#主要的排錯監測日誌
/var/spool/qmailscan/quarantine.log
/var/spool/qmailscan/qmail-queue.log
/var/spool/qmailscan/qms-events.log
/var/log/clamav/clamd.log
/var/log/maillog
第二十節:安裝qmailAnalog & qlogtools TOP
qmailanalog針對qmail的日誌進行一些最基本的分析,並將結果發送到你指定的位置。在我的方案中,設置qmailanalog每天晚上運行,並將結果發送給管理員。 在使用qmailanalog時,我們還將會用到qlogtools軟體包。
qlogtools提供一系列分析qmail日誌的工具,這些工具將文件中誨澀難懂的日誌轉換成便於我們閱讀和能夠理解的報告。當安裝完成qmailstats和Qlogtools后,我將會創建一個腳本讓它每天晚上運行,並將報告發送到管理員郵箱。這個腳本也可用到我們先前安裝的qms-analog,qms-analog將會提供qmail-scanner運行狀態報告。
#先安裝qmailanalog
cd /home/pkg/
tar zxvf qmailanalog-0.70.tar.gz
cd qmailanalog-0.70
patch < /home/pkg/qmailanalog-0.70.errno.patch
make && make setup check
#安裝qlogtools
cd /home/pkg/
tar zxvf qlogtools-3.1.tar.gz
cd qlogtools-3.1
patch < /home/pkg/qlogtools_errno.patch
make
./installer
#現在我們要創建一個腳本,並將它添加到cron,讓其每天晚上運行併產生報告。
#下面是一個可靠的腳本,它將會收集qmailanalog輸出的信息併產生報告。
cp /home/pkg/qms-analog-0.4.2/qmailstats /var/qmail/bin/
#紅色部份改成你的域名。
vi /var/qmail/bin/qmailstats
#!/bin/sh
# qmailanalog invocation script
PATH=/usr/local/qmailanalog/bin:/var/qmail/bin:/bin:/usr/bin:/usr/local/bin
qmailSTATS="/tmp/q.$$"
EMAILMSG="/tmp/qms.$$"
umask 077
cat /var/log/qmail/* /var/log/qmail/pop3d/* /var/log/qmail/pop3ds/* /var/log/qmail/smtpd/* | tai64n2tai | awk '{$1=substr($1,1,index($1,".")+6);print}' | matchup >; $qmailSTATS 5>;/dev/null
DATE=`date +'%D'`
echo "To:
[email protected]" >; $EMAILMSG
echo "From:
[email protected]" >;>; $EMAILMSG
echo "Subject: Nightly qmail Stats Report for $DATE" >;>; $EMAILMSG
echo "" >;>; $EMAILMSG
echo "" >;>; $EMAILMSG
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >;>; $EMAILMSG
zoverall < $qmailSTATS >;>; $EMAILMSG
echo "" >;>; $EMAILMSG
echo "" >;>; $EMAILMSG
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >;>; $EMAILMSG
zfailures < $qmailSTATS >;>; $EMAILMSG
echo "" >;>; $EMAILMSG
echo "" >;>; $EMAILMSG
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >;>; $EMAILMSG
zdeferrals < $qmailSTATS >;>; $EMAILMSG
echo "" >;>; $EMAILMSG
echo "" >;>; $EMAILMSG
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >;>; $EMAILMSG
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~ L a s t 2 4 H o u r s ~~~~~~~~~~~~~~~~~~~~~~~~~~~" >;>; $EMAILMSG
cat /var/spool/qmailscan/qms-events.log | qms-analog 24 >;>; $EMAILMSG
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >;>; $EMAILMSG
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A l l R e c o r d s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >;>; $EMAILMSG
cat /var/spool/qmailscan/qms-events.log | qms-analog 0 >;>; $EMAILMSG
cat $EMAILMSG | qmail-inject
rm -f $qmailSTATS
rm -f $EMAILMSG
#設置此腳本可執行
chmod 750 /var/qmail/bin/qmailstats
#現在,讓我們運行腳本
/var/qmail/bin/qmailstats
#確認你的管理員郵箱,你將會收到一份非常詳盡的報告。
#如果測試運行正常,那就加入cron讓其每天早上3點運行。
crontab –e
0 3 * * * /var/qmail/bin/qmailstats 1>;/dev/null 2>;/dev/null
第二十一節:安裝isoqlog TOP
isoqlog是一個qmail日誌分析工具,它是用perl寫的,可以分析和統計qmail的運行日誌,並生成漂亮的HTML格式的報表,如果伺服器上已經安裝WEB服務,管理員就可以通過瀏覽器來查看這些報表。相對於qmailanalog,isoqlog分析的項目稍微少一些。
isoqlog可以生成多個郵件域的報表;對於每個郵件域,isoqlog可以統計出每天、每月、每年的郵件流量以及位元組數,還生成相應的統計柱狀圖;對於每天的報表,isoqlog可以根據郵件投遞的數量以及位元組數的多少來對郵件用戶進行排列。
#安裝isoqlog
cd /home/pkg
tar zxvf isoqlog-2.1.1.tar.gz
cd isoqlog-2.1.1
./configure
make
make install
make clean
cd isoqlog
mkdir /var/www/html/isoqlog
cp -pr ./htmltemp/images ./htmltemp/library /var/www/html/isoqlog
#配置isoqlog
cd /usr/local/etc
mv isoqlog.conf-dist isoqlog.conf
vi isoqlog.conf
#將下面紅色部份改成你的安裝目錄和主機名稱。
#isoqlog Configuration file
logtype = "qmail-multilog" #log type qmai-multilog, qmail-syslog, sendmail, postfix
logstore = "/var/log/qmail" #
domainsfile = "/usr/local/etc/isoqlog.domains" #
outputdir = "/var/www/html/isoqlog" #html outpur directory
htmldir = "/usr/local/share/isoqlog/htmltemp"
langfile = "/usr/local/share/isoqlog/lang/english"
hostname = "mail.domain.com"
maxsender = 100
maxreceiver = 100
maxtotal = 100
maxbyte = 100
#保存並退出。
#下一步是告訴isoqlog哪些虛擬域需要產生統計報表,我希望我的mail伺服器能夠報告每個域的狀態,所以只需要簡單的創建了個鏈接即可:
ln -s /var/qmail/control/rcpthosts isoqlog.domains
#現在,isoqlog應該能夠正常運行了,運行如下命令測試一下效果:
/usr/local/bin/isoqlog
#通過如下頁面查看輸出結果:
http://domain.com/isoqlog
#你可以點擊各個虛擬域名稱顯示其報表。
#我們希望isoqlog能夠即時提供報表,將如下內容加入crontab
crontab -e
58 * * * * /usr/local/bin/isoqlog 1>;/dev/null 2>;/dev/null
#每個小時的第58分鐘運行一次
第二十二節:安裝MRTG TOP
多路由器通信監視器(MRTG)是在網路鏈路上監控通信負載的一件工具。 MRTG 產生包含圖表的HTML網頁,它可以將系統中的通信情況實時的顯示在頁面上。 我們可以在我們的系統上使用它來監控電子郵件和spam情況。
#安裝
cd /home/pkg
rpm -Uvh mrtg-2.10.15-1.i386.rpm
#通過安裝inter7的qmailmrtg ,我們將在我們的系統上安裝MRTG
# 編譯 qmailmrtg
cd /home/pkg
tar -xzf qmailmrtg7-4.0.tar.gz
cd qmailmrtg7-4.0
make
make install
mkdir /var/www/html/qmailmrtg
cp qmail.mrtg.cfg index.html /var/www/html/qmailmrtg
cd /var/www/html/qmailmrtg/
#修改 qmail.mrtg.cfg 和 index.html文件, 將所有出現FQDN 的地方都改成你的完整域名(例如: test.com). 如果你的HTTP MRTG目錄並不是默認的 (例如: 你並沒有把 /var/www/html/作為你的web根目錄), 則必須在/var/www/html/qmailmrtg/qmail.mrtg.cfg 文件中修改WorkDir變數為正確的路徑. 如果你不需要記錄某項服務, 你可以在所不需要記錄的服務每一行的前面加一個# 來註釋掉它,並刪除index.html中對應的服務項目。
#你可以修改 pop3和smtp所在的行, 設置MaxBytes參數來重寫tcpserver中-cX所在行.
#你還可以修改concurrency來重寫concurrencyremote或concurrencylocal 的值. 如果這些文件在/var/qmail/control 目錄下並不存在,則qmail默認的值為20.
#下面是我們的最後一步,將下面一段添加到crontab中, 以使我們能每五分鐘升級一次MRTG數據. 運行如下命令:
crontab -e
#添加下面一段 (使MRTG每五分鐘運行一次) 然後退出crontab:
*/5 * * * * /usr/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg 2>;&1 >; /dev/null
#現在運行MRTG三次來安裝它. 你將會收到3次警告消息. 之後,你將不會再收到警告了.
env LANG=C /usr/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg
#現在應該安裝好了. 為了能顯示些信息,我們等待15分鐘的日誌記錄. 你可以通過下面的地址來檢查圖形監控情況:
http://your.host.name/qmailmrtg/
查看它們的圖形監控情況!
第二十三節:測試 TOP
測試igenus
http://domain.com/
測試qmailadmin
http://domain.com/cgi-bin/qmailadmin
測試vQadmin
http://domain.com/cgi-bin/vqadmin/vqadmin.cgi
測試SMTP認證
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 domain.com ESMTP
ehlo domain.com
250-domain.com
250-STARTTLS
250-PIPELINING
250-8BITMIME
250-SIZE 0
250 AUTH LOGIN PLAIN CRAM-MD5
starttls
220 ready for tls
quit
quit
Connection closed by foreign host.
#
測試POP3
# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK <
[email protected]>;
user
[email protected] +OK
pass xukixu
+OK
quit
+OK
Connection closed by foreign host.
#
測試IMAP
# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
* OK Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information.
a001 login
[email protected] xukixu
a001 OK LOGIN Ok.
a001 login out
a001 NO Error in IMAP command received by server.
a001 logout
* BYE Courier-IMAP server shutting down
a001 OK LOGOUT completed
Connection closed by foreign host.
#
第二十四節:系統維護 TOP
郵件系統相關日誌
/var/log/maillog
/var/log/qmail/current
/var/log/qmail/pop3d/current
/var/log/qmail/pop3ds/current
/var/log/qmail/smtpd/current
/var/spool/qmailscan/qmail-queue.log
/var/spool/qmailscan/qms-events.log
/var/spool/qmailscan/quarantine.log
第二十五節:FAQ(網上收集) TOP
設置qmail用戶郵箱的容量
cd /home/vpopmail/bin
./vsetuserqutoa domain.com 10500000s --domain.com這個域,都設成10m的
./vsetuserqutoa
[email protected] 10500000s ---只把
[email protected]這個用戶單獨設置為10m。
qmail限制附件的大小
在/var/qmail/control/databytes 文件中設置附件的大小,可以實現對qmail附件大小的限制,一般安裝完成後,這個文件是沒有的,你可以自己創建。smtp方式是以qmail的databytes作限制的;創建databytes並設置郵件最大為4m :
echo 4000000 >;/var/qmail/control/databytes
限制單域的郵箱數量
vi /home/vpopmail/domains/domain.com/.qmailadmin-limits
maxpopaccounts 200
default_quota 52428800s
chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits
chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits
這樣就把郵箱總數限制在200個,每個郵箱為50M了
用qmail封mailfrom
vi/var/qmail/control/badmailfrom
這個控制文件實現拒收郵件功能的,每一個地址要單獨一行。而且,不用重起qmail就能生效。例如:
[email protected] -----限制一個特定的用戶
@sina.com -----限制整個域中的郵件
批量添加用戶
例1:
新建一文件 batchadduser.sh,將以下內容拷入文件中保存,運行chmod u+x batchadduser.sh使其可執行。
#!/bin/bash
#batchadduser.sh: batch add mail user.
#install step.
#chmod u+x batchadduser
#./batchadduser.sh domain datafile
if [ $# -lt 2 ]
then
echo "usage: $0 domain datafile"
exit 1
fi
domain=$1
datafile=$2
addcmd=/home/vpopmail/bin/vadduser
while read username passwd
do
$addcmd $username@$domain $passwd
done < $datafile
user文件內容的格式
username1 passwd
username2 passwd2
............
運行batchadduser.sh user即可批量添加用戶。
例2:
我把用戶名放到一個文本文件中,一個名字一行,密碼和它的帳號一致,用戶自己再去改密碼。
while read line
do
echo $line
./vadduser $line $line
done < user
有選擇地清理不需要的Mail Queue
1、處理隊列中的郵件:
如想在隊列中的郵件馬上傳遞,可以
kill -HUP qmail-send
要刪除隊列中的郵件
1) 停止qmail
2) mv /var/qmail/queue/lock /var/qmail/;find /var/qmail/queue/ -type f -exec rm {} \; ;mv /var/qmail/lock /var/qmail/queue/
3) 重啟qmail.
隊列中的郵件包含在以下目錄中 /var/qmail/queue/{info,mess,remote,local}/hash/#number
2、在郵件隊列中快速刪除從一個地方發過來但又不存在的郵件設bad.jite.com是這個域。可以鍵入以下命令
echo # >; ~alias/.qmail-baddomain-default
echo bad.jite.com:alias-baddomain>;>; /var/qmail/control/virtualdomains
echo bad.jite.com:127.0.0.1 >;>; /var/qmail/control/smtproutes
然後運行/var/qmail/bin/qmail-tcpok,給qmail-send 一個HUP信號
3、刪除隊列中的大量廣告信息
先停止qmail.
1) 停止qmail, qmail-smtpd
2) 在以下默認目錄下 /var/qmail/queue/mess
find /var/qmail/queue/mess -type f -exec grep "^Subject:dss" {} \; -print -exec rm {} \;
3) 運行queue-fix清除相關文件,
4) 重啟qmail.
使用sh備份qmail+mysql數據到指定的ftp地址的方法
備份vpopmail的domains目錄、qmail的control目錄和mysql的var數據存放目錄,使用crontab定時進行操作。下面是腳本文件,具體的目錄視自己的系統更改:
mkdir /var/qmailbakup
cd /var/qmailbakup
touch qmailbakup.sh
chmod 755 qmailbakup .sh
vi qmailbakup.sh
#!/bin/sh
DATE=`date +%Y-%m-%d-%H`
cd /var/qmailbakup/
tar cvzf domains.$DATE.tar.gz /home/vpopmail/domains
tar cvzf control.$DATE.tar.gz /var/qmail/control
tar cvzf mysql.$DATE.tar.gz /usr/local/mysql/var
ftp -n 192.168.0.21 << ! //你的ftp伺服器的地址
user qmail qmailbakup //ftp用戶名和密碼,注意要有put許可權
binary
put domains.$DATE.tar.gz
put control.$DATE.tar.gz
put mysql.$DATE.tar.gz
bye
!
rm -f domains.$DATE.tar.gz control.$DATE.tar.gz mysql.$DATE.tar.gz //刪除本機產生的文件,如果你想在本伺服器也保存一份備份,去掉該項即可。
使用crontab定時執行:
vi /etc/crontab
00 20 * * 0-6 /var/qmailbakup/qmailbakup.sh
這樣每天晚上8:00執行改備份程序。
給新浪發信的解決辦法
1) echo "我的郵件伺服器的真實域名(A記錄)" >; /var/qmail/control/helohost
2) 撥打新浪郵件售後服務電話
臨時限制一個用戶的pop3
vmoduser -p email_addr or domain ( for the entire domain )
修改默認的域名
A:
要更改haohao.com為默認域。
方法:
更改~qmail/control/
defaultdomain
me
plusdomains
逐一更改啟動pop3和 smtp的啟動腳本:
修改:email.3sk.com為haohaoo.com
在最上邊添加:export VPOPMAIL_DOMAIN=haohaoo.com
將一個系統的qmail用戶完整地轉移到另一個系統
A:
a.cdb配置的?那麼請把/home/vpopmail/domains這個文件夾備份好就可以了。用戶和密碼文件,還有用戶信件都在這個目錄下。
還應該備份/var/qmail/control下的相關配置文件。
b.如果是以MYSQL資料庫方式來存儲用戶認證信息的
只需要備份
~vpopmail/domain下的所有郵件
/var/qmail/control的配置文件
MYSQL資料庫目錄下的vpopmail庫目錄。一般是/var/lib/mysql(RPM)、/usr/local/mysql/data、/usr/local/mysql/var下面。
把一郵件域的名字比如a.com更改為b.com,如何實現
以下幾個步驟:
1、cd /home/vpopmail/domains
mv a.com b.com
2、把vpopmail資料庫的vpopmail表導出把所有a.com改為b.com,然後刪除vpopmail表,再導入.
3、把把vpopmail資料庫的dir_control表的a.com改為b.com
4、在/home/qmail/control 目錄下把 virtualdomains和rcpthosts下的的a.com改為b.com.
5、在/home/qmail/users目錄下把assign文件的a.com改為b.com
6、需要運行qmail-newu重新生成cdb。assign只是配置文件,cdb才是實際的數據文件。
加快 qmail 投遞郵件速度
A: /var/qmail/control下面是qmail的控制文件,這兩個文件:
Concurrentcylocal default: 10 最大本地同時傳送數
Concurrencyremote default: 20 最大遠程同時傳送數
更改域的默認管理賬號
A: vmoduser有個-a參數,可以賦予用戶管理許可權。
如果想全面禁用postmaster的特殊許可權話,就只能改源代碼了。
qmail下的主要配置文件(/var/qmail/control目錄下):
文件名 默認值 使用者用途
badmailfrom none qmail-smtpd 黑名單地址
bouncefrom MAILER-DAEMON qmail-send 退回郵件
bouncehost me qmail-send 退回郵件
concurrencylocal 10 qmail-send 本地同時投遞郵件的數目
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
這是我看到的比較好的基於Qmail的帖子。
轉發過來。
對了,許靖 和 peng 有什麼關係?
他舉的例子有
[email protected],是偶然嗎?
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
裡面有些環節,要根據自己的系統環境稍作修改。
可以參考英文的
http://www.qmailrocks.org/
中的文章。
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
支持許靖兄,我也是按這文檔才走進Mail大門的。
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
這個太強啦.. 謝謝. 已收藏. thx
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
好文
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
原帖由 "sql2000" 發表:
這是我看到的比較好的基於Qmail的帖子。
轉發過來。
對了,許靖 和 peng 有什麼關係?
他舉的例子有
[email protected],是偶然嗎?
不是偶然,一部分是照搬的,不過集成的不錯,加了自己的註解,挺全,也挺詳細
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
我在這個版看到N個這樣的文章了,還發!!!
《解決方案》
【轉貼】Linux qmail安裝指南_2.9_Xuki(相當不錯)
收了。