postfix+dovecot+maildrop+mailscanner+clamav+spamassassin搭建rhel6平臺郵件服務器php
系統:rhel6,安裝base,developments tools。後一項選擇的全部可選包。 html
web平臺:lamp node
web用戶界面及後臺管理: extmail extman。之前一直用這個,頁面美觀,易操做。易管理。 mysql
SMTP服務器:postfix2.8 linux
pop3服務器:dovecot2.0 web
MDA服務器:maildrop2.5 sql
驗證服務器:dovecot作smtp驗證,courier-authlib作pop3驗證。開始想用dovecot作投遞認證。後來因爲水平實在有限,網上資料也不多,終究放棄了。並且好像extman那塊也尚未作到支持dovecot。 數據庫
殺毒+反垃圾:mailscanner+clamav+spamassassin,之因此用這個組合一個是maillscanner功能很強大。再有就是看着官網比較順眼。最大的好處是提供了那些繁瑣的perl依賴包的下載,簡直就是一鍵式安裝。很是方便噢。apache
主要軟件都是最新的版本。看起來會比那些老文檔爽吧,並且網上對dovecot+maildrop的組合用的好像不是不少,我我的以爲這個組合效率應該不比courier套件的組合低。我用maildrop主要也是爲實現自動回覆的功能。vim
======================================================================
安裝配置前準備:
1.改主機名(非必要,但別是除localhost以外的其餘主機名了,修改主機名也是爲了不出現沒必要要的錯誤)
#hostname mail.test.com
#vi /etc/sysconfig/network
修改 HOSTNAME=mail.test.com
註銷再登錄,驗證一下:
#hostname
#uname -n
顯示一致,說明已經能夠進行下一步了。
==================================================================
2.DNS設置
若是方即可以直接在你的域名管理後臺添加mail的A記錄及MX記錄。若是暫時是測試環境那就本身建一個dns服務吧,其實也很簡單。
從www.isc.org下載bind9.8,這是當前的最新版了。
#tar zxvf bind-9.8.0.tar.gz
#cd bind-9.8.0
#./configure --prefix=/usr/local/bind --enable-threads
#make;make install
#/usr/local/bind/sbin/rndc-confgen > /usr/local/bind/etc/rndc.conf
#tail -10/usr/local/bind/etc/rndc.conf |head -9| sed s/#\// > /usr/local#/bind/etc/named.conf
#dig > /usr/local/bind/etc/named.root
#vim /usr/local/bind/etc/named.conf
下是個人named.conf文件:
key "rndc-key" {
algorithm hmac-md5;
secret "phTa1qrl4gZ5Th3vrV+nzQ==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
options {
directory "/usr/local/bind";
pid-file "var/named.pid";
forwarders {
202.106.0.20;
};
};
zone "." IN {
type hint;
file "etc/named.root";
};
zone "localhost" IN {
type master;
file "etc/named.local";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "etc/named.localarpa";
};
zone "test.com" IN {
type master;
file "etc/named.test";
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "etc/named.testarpa";
};
接下來創建這個主文件中指定的zone配置文件
(1)named.local
$TTL 86400
@ 1D IN SOA @ root.localhost. (
20110429
3H
15M
1W
1D )
1D IN NS @
1D IN A 127.0.0.1
(2)named.localarpa
$TTL 86400
@ IN SOA localhost. root.localhost. (
20110429
3H
15M
1W
1D )
IN NS localhost.
1 IN PTR localhost.
(3)named.test
$TTL 86400
@ IN SOA test.com. root.test.com.(
20110429
3H
15M
1W
1D )
IN NS @
IN MX 1 mail.test.com.
ns IN A 192.168.50.170
@ IN A 192.168.50.170
mail IN A 192.168.50.170
(4)named.testarpa
$TTL 86400
@ IN SOA test.com. root.test.com. (
20110429 ; Serial
3H ; Refresh 1d=1 days
15M ; Retry 30m=30 minutes
1W ; Expire 1w=7 days
1D ) ; Minimum ;Negative Caching
@ IN NS test.com.
IN PTR test.com.
IN PTR mail.test.com.
IN PTR ns.test.com.
#/usr/local/bind/sbin/named
注:(1)/usr/local/bind/sbin/rndc-confgen 這條命令的意思就不解釋了,只是在執行這個命令時有時候會卡住,這是由於/dev/random的緣由。編輯這個文件,在裏面輸入隨意的數字字母,多輸點,保存退出,這個命令就執行成功了,之前在centos上沒碰見這個問題。這裏注意一下嘍。
(2)named.conf中options這一行以上的內容就是由(1)產生的,這裏不能自建。必定要用rndc-confgen這個命令生成。
好了以上我只是建了一個測試環境。不須要太複雜
啓動以後用nslookup,ping檢查一下看是否能正常解析,若是有錯誤會在/var/log/messages中能夠看到。
=======================================================================
3.amp安裝配置
我本身測試時用的系統自帶的安裝包。不過我這裏還想再操做一遍。yum這個東西很不賴,安裝軟件時能夠解決rpm包的依賴性,這是我爲何討厭使用rpm包的緣由,有時候讓人抓狂。不過一些簡單的包用rpm仍是蠻有效率的。
因爲個人系統安裝時比較乾淨,因此一些包默認沒有安裝。好比安裝PHP環境須要的一些支持圖像的軟件個人系統只裝了主程序,但相應的devel包卻沒裝。這時候用光盤鏡像製做的yum源搬上來吧。
yum install libpng
yum install libpng-devel
yum install libjpeg
yum install libjpeg-devel
yum install freetype
yum install freetype-devel
yum install zlib
yum install zlib-devel
yum install libxml2
yum install libxml2-devel
yum install gd #以上的包也是爲這個gd服務的,因此要先裝好
(1)apache
#tar jxvf httpd-2.2.15.tar.bz2
#cd httpd-2.2.15
#./configure --prefix=/usr/local/apache --enable-so --enable-rewrite && make && make install
(2)mysql
groupadd mysql
useradd -g mysql -M -s /bin/false mysql
tar zxvf mysql-5.1.53-linux-i686-glibc23.tar.gz
cp -a mysql-5.1.53-linux-i686-glibc23 /usr/local/mysql
cd /usr/local/mysql
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
chown -R root .
chown -R mysql data
bin/mysqld_safe --user=mysql &
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
. /etc/profile
我爲了追求安裝時的速度,這裏是用的二進制包,不過用於郵件存儲來講應該夠用了。若是時間很充裕仍是用源碼包configure,make,make install吧。
(3)php
tar zxvf php-5.3.6.tar.gz &&
cd php-5.3.6
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-gd --with-jpeg-dir --with-freetype --with-zlib-dir --with-xml --with-mysql=/usr/local/mysql --with-mysql-libs=/usr/local/mysql/lib --with-mysql-includes=/usr/local/mysql/include --enable-sockets
make && make install && cp php.ini-production /usr/local/php/lib/php/php.ini
修改/usr/local/apache/conf/httpd.conf
加入 AddType application/x-httpd-php .php
修改 DirectoryIndex加入index.php
這樣就是apache支持了php解析。
在/usr/local/apache/htdocs/下創建一個test.php文件:
<?php
phpinfo()
?>
在瀏覽器裏查看此文件是否被解釋執行。
echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.local
=========================================================================
4.安裝courier-authlib,maildrop
安裝前先創建想要創建相關的用戶信息
groupadd postdrop
groupadd -g 1000 postfix
useradd -u 1000 -g postfix -s /sbin/nologin -G postdrop postfix
groupadd dovecot
useradd -s /sbin/nologin -g dovecot dovecot
groupadd -g 1010 vmail
useradd -u 1010 -g vmail -d /mailbox -s /sbin/nologin vmail
創建存放虛擬域,用戶及郵件的目錄
mkdir /mailbox
chown -R vmail.vmail /mailbox
創建所需的數據庫
tar zxvf extman-1.1.tar.gz
cd extman-1.1/docs
mysql -uroot -p < extmail.sql
mysql -uroot -p < init.sql
tar jxvf courier-authlib-0.63.0
cd courier-authlib-0.63.0
./configure --with-redhat --with-authmysql=yes --with-mailuser=vmail --with-mailgroup=vmail --with-mysql-libs=/usr/local/mysql/lib --with-mysql-includes=/usr/local/mysql/include --prefix=/usr/local/authlib --without-stdheaderdir
make;make install
cd /usr/local/authlib/etc/authlib/
mv authdaemonrc.dist authdaemonrc
mv authmysqlrc.dist authmysqlrc
編輯authdaemonrc,確保爲如下內容:
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=10
authdaemonvar=/usr/local/authlib/var/spool/authdaemon
DEBUG_LOGIN=0
DEFAULTOPTIONS=""
LOGGEROPTS=""
其中前三行是須要自行修改的
編輯authmysqlrc確保爲如下內容:
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE extmail
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
DEFAULT_DOMAIN test.com
MYSQL_UID_FIELD uidnumber
MYSQL_GID_FIELD gidnumber
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD homedir
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_SELECT_CLAUSE SELECT username,password,"",uidnumber,gidnumber,
CONCAT("/mailbox/",homedir),CONCAT("/mailbox/",maildir),\
quota,name from mailbox\
where username="$(local_part)@$(domain)";
注:MYSQL_SELECT_CLAUSE......應用這個查詢語句的目的是爲了取得maildrop的自動回覆功能,我在網上看到的還有一種配置,設置:
MYSQL_UID_FIELD爲vmail的uid
MYSQL_GID_FIELD爲vmail的gid
MYSQL_HOME_FIELD爲("/mailbox/",maildir)
MYSQL_MAILDIR_FIELD爲("/mailbox/",maildir)
而後最下面那個查詢語句省略。但這種配置我試過在extmail裏設置好自動回覆,不能實現其功能。
設置authlib的共享庫:
echo "/usr/local/authlib/lib/courier-authlib" >> /etc/ld.so.conf
ldconfig
拷貝安裝包內的courier-authlib.sysvinit到/etc/init.d下:
cp courier-authlib.sysvinit /etc/init.d/courier-authlib
chmod 755 /etc/init.d/courier-authlib
chkconfig --add courier-authlib
chkconfig --level 2345 courier-authlib on
service courier-authlib start
chmod +x /usr/local/authlib/var/spool/authdaemon
ln -sv /usr/local/authlib/bin/courierauthconfig /usr/bin
ln -sv /usr/local/authlib/include/* /usr/include
注:上面兩個鏈接文件在安裝maildrop時,會去相應目錄檢查這些文件。
tar jxvf maildrop-2.5.2.tar.bz2
cd maildrop-2.5.2
./configure --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail' --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=1010 --enable-maildrop-gid=1010 --with-trashquota --with-dirsync
make;make install
安裝完成之後用命令maildrop -v檢查一下是否支持courier認證,顯示如下信息,代表正確安裝。若是沒有第二行,極可能是courier安裝時沒有指定vmail用戶,或者courierauthconfig沒有鏈接正確,我就有過這麼一次,從新編譯了好幾遍maildrop都是沒有courier認證支持。我都快抓狂了,最後去檢查那個courierauthconfig鏈接文件,結果發現時紅色的。正常狀況下應該是淺綠色的。
maildrop 2.5.2 Copyright 1998-2005 Double Precision, Inc.
Courier Authentication Library extension enabled.
Maildir quota extension are now always enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
編輯maildrop日誌文件
vi /etc/maildroprc 輸入以下內容:
logfile "/var/log/maildrop.log"
touch /var/log/maildrop.log
chown -R vmal.vmail /var/log/maildrop.log
這個文件要自行創建,並且權限要正確,不然在測試時會出現「不能創建這個文件」。網上有人說把日誌的設置去掉,比較不可取。另外此文件還能夠設置垃圾郵件分揀。我在這裏沒有設置。再作深刻研究時再加吧。
=========================================================================
5.postfix+dovecot
(1)安裝
安裝以前首先卸載sendmail,這一步記得還算熟了,不過rhel6上的sendmail已經被postfix取代,postconf -m 發現默認居然支持mysql了。一大驚喜,之後能夠不用費勁編譯安裝了。呵呵,別失望,我已經下載好了2.8的版本,爲了體驗一下,我仍是卸載了原裝正版的postfix。仍是以源碼包安裝爲老規矩吧。
此次安裝打破之前的慣例,首先聲明這不是個人原創,也是網上翻出來的。編譯postfix時把sasl驗證改成dovecot。而且使用自動安裝方式,省去交互式安裝須要手動按回車的麻煩,我這裏是安照默認安裝的路徑。
rpm -e postfix --nodeps #卸載自帶的postfix
postfix還依賴一些包
yum install openssl
yum install openssl-devel
yum install db*
還有記得上面mysql的庫文件要加到ld.so.conf中,並使之生效。
#!/bin/bash
postfixver=postfix-2.8.2
dovecotver=dovecot-2.0.11
###################setup_postfix#################
tar zxvf $postfixver.tar.gz
cd $postfixver
chmod 755 ./postfix-install
make makefiles \
CCARGS='-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH \
-DDEF_SERVER_SASL_TYPE=\"dovecot\" -DUSE_TLS -I/usr/include' \
AUXLIBS='-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -lssl -lcrypto' &&
make &&
./postfix-install -non-interactive \
install_root=/ tempdir=/tmp \
config_directory=/etc/postfix \
command_directory=/usr/sbin \
daemon_directory=/usr/libexec/postfix \
data_directory=/var/lib/postfix \
html_directory=no \
mail_owner=postfix \
mailq_path=/usr/bin/mailq \
manpage_directory=/usr/local/man \
newaliases_path=/usr/bin/newaliases \
queue_directory=/var/spool/postfix \
readme_directory=no \
sendmail_path=/usr/sbin/sendmail \
setgid_group=postdrop
############setup_dovecot############
tar zxvf $dovecotver.tar.gz
cd $dovecotver
./configure --prefix=/usr/local/dovecot \
--sysconfdir=/etc --localstatedir=/var --with-sql --with-mysql --with-openssl &&
make &&
make install
紅色字體是腳本內容,這裏就是簡單命令的羅列,因此就不一步一步操做了。
(2)配置
postconf -n > /etc/postfix/main.cf.new #把默認的main.cf中的有效配置提取出來.
mv /etc/postfix/main.cf /etc/postfix/main.cf.bak
mv /etc/postfix/main.cf.new /etc/postfix/main.cf
下面是個人main.cf配置:
sed -e /^#/d /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /etc/postfix
unknown_local_recipient_reject_code = 550
readme_directory = no
header_checks = regexp:/etc/postfix/header_checks #這個配置是調用MailScanner用的,能夠不加。
mydomain = test.com
myhostname = mail.test.com
myorigin = $mydomain
inet_interfaces = all
mydestination =
mynetworks_style = subnet
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/ #郵箱格式爲Maildir
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
virtual_mailbox_base = /mailbox #個人郵箱目錄
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
#mysql_virtual_mailbox_maps.cf這個文件能夠從extman解壓包中的doc目錄中取得
#下面的三個mysql_virtual.....文件也一樣從extman的doc中取得,拷貝到相應目錄便可
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_uid_maps = static:1010 #vmail的ID
virtual_gid_maps = static:1010
virtual_transport = maildrop: #使用maildrop作本地的投遞
maildrop_destination_recipient_limit = 1
maildrop_destination_concurrency_limit=1
message_size_limit = 209715200 #郵件大小的限制,網上有的說是限制附件這不許確
virtual_mailbox_limit = 209715200
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_mailbox_limit_message = sorry,the user'smaildir has overdrawn his diskspace quota,please try again later.
virtual_overquota_bounce = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot #這一行聲明使用dovecot作SMTP驗證,和下一行一塊兒做用
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_auth_destination,
reject_invalid_hostname,reject_non_fqdn_hostname,
reject_unknown_sender_domain,reject_non_fqdn_sender,
reject_non_fqdn_recipient,reject_unknown_recipient_domain,
reject_unauth_pipeling,reject_unauth_destination,reject
注:postfix的配置文件若是一行內寫的太長想換行的話,要在下一行加空格,這樣postfix就知道是上一行的續寫。
要postfix支持maildrop還須要在master.cf中把調用maildrop的註釋打開,並加上適當的修改。
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}
編輯dovecot配置文件
cp /usr/local/dovecot/share/doc/dovecot/example-config/dovecot.conf /etc/dovecot/
cp /usr/local/dovecot/share/doc/dovecot/example-config/dovecot-sql.conf.ext /etc/dovecot/dovecot-mysql.conf
兩個關鍵的配置樣例文件在安裝目錄的share/doc下,拷貝到指定的存放配置文件的目錄(根據安裝時的選項)。
#sed -e /^#/d /etc/dovecot/dovecot.conf
protocols = imap pop3
listen = *
base_dir = /usr/local/dovecot/
auth_debug = yes
auth_default_realm = test.com
default_login_user = dovecot
default_internal_user = dovecot
disable_plaintext_auth = no
ssl = no
mail_uid = 1010
mail_gid = 1010
first_valid_uid = 1010
last_valid_uid = 1010
log_path = /var/log/dovecot.log
mail_location = maildir:/mailbox/%d/%n/Maildir
pop3_uidl_format = %08Xu%08Xv
auth default {
mechanisms = plain login
passdb sql {
args = /etc/dovecot/dovecot-mysql.conf
}
userdb sql {
args = /etc/dovecot/dovecot-mysql.conf
}
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
#sed -e /^#/d /etc/dovecot/dovecot-mysql.conf
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = MD5-CRYPT #這裏和extmail的驗證方式一致
password_query = \
SELECT password ,maildir as userdb_home\
FROM mailbox WHERE username = '%u'
user_query = \
SELECT 1010 as uid, 1010 as gid \
FROM mailbox WHERE username = '%u' AND active='1'
加入自啓動程序
echo "postfix start" >> /etc/rc.local
echo "/usr/local/dovecot/sbin/dovecot -c /etc/dovecot/dovecot.conf" >> /etc/rc.local
==================================================================
6.反病毒+反垃圾
從mailscanner官網下載MailScanner,還有一個驚喜,不只MailScanner的包自帶安裝時依賴的perl程序,還有ClamAV 0.96.5 and SpamAssassin 3.3.1 easy installation package.這麼一個包。下載下來打開後也和MailScanner同樣封裝好了clamav和spam,同時也有相應的perl程序包。這但是省了不少的時間呢。
先安裝MailScanner。解壓運行目錄下的install.sh就能夠了。安裝順利完成。
安裝install-Clam-SA-latest.tar.gz。這個包安裝過程當中有些小問題。一些依賴的perl程序在它本身的解壓包內仍是沒有的,致使安裝到spam時報錯。有一個必須安裝的NetAddr-IP包沒裝上,還有三個可選包,還提示安裝razor和dcc。這個只能麻煩一下了,先手動安裝這幾個包吧。這裏我之前已經下載了相關的包,因此可選的也給它裝上。
IO-Socket-SSL-1.39
Mail-SPF-2.004
NetAddr-IP-4.004
razor-agents-2.84
razor-agents-sdk-2.07
dcc-1.3.139
就是這幾個包了,注意版本別過低,否則不被識別。前3個是perl包,安裝時執行
"perl Makefile.PL;make;make install";後面是通常的壓縮包,三部曲"configure;make;make install".
這樣再運行install.sh就順利裝好了。
這裏先作一些簡單的配置就能夠運行起來了。mailscanner的配置文件很人性化,每一個設置都有大量的說明。可設置的選項不少,主配置文件有3100多行,這裏先讓其運行起來。
編輯/etc/MailScanner/MailScanner.conf主配置文件,修改一下選項:
%org-name% = test.com
%org-long-name% = ceshi #填寫組織名,可隨意填寫
%web-site% = mail.test.com #填寫組織的網站
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
Virus Scanners = clamav
Use SpamAssassin = yes
更細緻的配置之後根據實際狀況再作調整。
mkdir /var/spool/MailScanner/spamassassin
chown -R postfix.postfix /var/spool/MailScanner/incoming
chown -R postfix.postfix /var/spool/MailScanner/quarantine
chown -R postfix.postfix /var/spool/MailScanner/spamassassin
基本配置好了,clamav和spam聽說能夠直接被mailscanner管理。甚至是postfix。
這裏爲使postfix調用mailscanner,要編輯main.cf文件。上面安裝postfix時給出的配置文件已經添加了,下面要編輯/etc/postfix/header_checks,確保爲如下內容:
/^Received:/ HOLD
這個配置能夠從官網文檔上查到,也能夠在網絡上找到。再提一下,mailscanner的官網看起來仍是比較順眼的,多看一下。
既然mailscanner能管理postfix,那就把前面寫進開機啓動的postfix start去掉。
而後關閉postfix
postfix stop
chkconfig --add MailScanner
chkconfig --level 235 MailScanner on
service MailScanner start
ps aux |grep postfix
經查看postfix確實已經啓動。
tail -f /var/log/maillog 發送一封郵件測試一下
MailScanner[18478]: New Batch: Scanning 1 messages, 879 bytes
MailScanner[18478]: Virus and Content Scanning: Starting
MailScanner[18478]: Requeue: A141A43EC6.A8809 to 3E5AE43EC9
postfix/qmgr[18466]: 3E5AE43EC9: from=<>, size=669, nrcpt=1 (queue active)
MailScanner[18478]: Uninfected: Delivered 1 messages
MailScanner[18478]: Deleted 1 messages from processing-database
這是我截取的一段日誌。能夠看到mailscanner在掃描郵件了。
==================================================================
7.webmail
終於最後一步了。這一步按照搭建過程其實在作完smtp和pop3服務後就該作了,我作測試就是用extman添加虛擬域和用戶的。命令行暫時還沒研究怎麼添加虛擬用戶。
extman須要幾個perl包,系統光盤中沒有的須要自行下載了。
我用命令羅列了一個腳本。安裝起來更方便些:
#! /bin/bash
unixsyslogver=Unix-Syslog-0.100
dbdmysqlver=DBD-mysql-3.0008
dbiver=DBI-1.612
filetrilver=File-Tail-0.99.3
extmailver=extmail-1.2
extmanver=extman-1.1
#########setup_apache_virtual_directory######
mkdir -p /usr/local/httpd/htdocs
#################################
tar zxvf $unixsyslogver.tar.gz
cd $unixsyslogver
perl Makefile.PL
make;make intall
cd -
#################################
tar zxvf $dbdmysqlver.tar.gz
cd $dbdmysqlver
perl Makefile.PL
make;make intall
cd -
###################################
tar zxvf $dbiver.tar.gz
cd $dbiver
perl Makefile.PL
make;make intall
cd -
###################################
tar zxvf $filetrilver.tar.gz
cd $filetrilver
perl Makefile.PL
make;make intall
cd -
###################################
tar zxvf $extmailver
tar zxvf $extmanver
mv $extmailver/ /usr/local/httpd/htdocs/extmail
mv $extmanver/ /usr/local/httpd/htdocs/extman
chown -R vmail:vmail /usr/local/httpd/htdocs/extmail/cgi
chown -R vmail:vmail /usr/local/httpd/htdocs/extman/cgi
mkdir /tmp/extman
chown -R vmail:vmail /tmp/extman
cp /usr/local/httpd/htdocs/extman/docs/mysql_virtual_* /etc/postfix/
編輯httpd.conf把User和Group改爲vmail用戶;加入虛擬機設置,映射到htdocs目錄。我這裏是爲了方便,正式環境要規範一些。
<VirtualHost *:80>
ServerName mail.test.com
DocumentRoot /usr/local/httpd/htdocs/extmail/html/
ScriptAlias /extmail/cgi/ /usr/local/httpd/htdocs/extmail/cgi/
Alias /extmail/ /usr/local/httpd/htdocs/extmail/html/
ScriptAlias /extman/cgi/ /usr/local/httpd/htdocs/extman/cgi/
Alias /extman/ /usr/local/httpd/htdocs/extman/html/
</VirtualHost>
編輯/usr/local/httpd/htdocs/extmail/webmail.cf,修改如下關鍵選項:
SYS_CONFIG = /usr/local/httpd/htdocs/extmail/
SYS_LANGDIR = /usr/local/httpd/htdocs/extmail/lang
SYS_TEMPLDIR = /usr/local/httpd/htdocs/extmail/html
SYS_AUTH_TYPE = mysql
SYS_MAILDIR_BASE = /mailbox
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
SYS_AUTHLIB_SOCKET = /usr/lcoal/authlib/var/spool/authdaemon/socket
SYS_G_ABOOK_FILE_PATH = /usr/local/httpd/htdocs/extmail/globabook.cf
編輯/usr/local/httpd/htdocs/extman/webman.cf,修改如下關鍵選項:
SYS_CONFIG = /usr/local/httpd/htdocs/extman/
SYS_LANGDIR = /usr/local/httpd/htdocs/extman/lang
SYS_TEMPLDIR = /usr/local/httpd/htdocs/extman/html
SYS_MAILDIR_BASE = /mailbox
SYS_DEFAULT_UID = 1010
SYS_DEFAULT_GID = 1010
SYS_MYSQL_USER = webman
SYS_MYSQL_PASS = webman
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
啓動如下守護進程,不啓動話在進入extman後臺是不顯示系通通計信息。
/usr/local/httpd/htdocs/extman/daemon/cmdserver --daemon
安裝rrdtool讓extman顯示圖形日誌
tar zxvf rrdtool-1.0.50.tar.gz
cd rrdtool-1.0.50
./configure
make;make install
cp /root/rrdtool-1.0.50/perl-shared/blib/lib/RRDs.pm /usr/lib/perl5/
cp -a /root/rrdtool-1.0.50/perl-shared/blib/arch/auto/RRDs/* /usr/lib/perl5/
注:最好別用高版本的,很差安裝,低版本也不影響顯示。不過安裝完以後啓動mailgraph-init 仍是提示找不到 RRDs.pm。用find看到解壓包內包含所需文件,乾脆拷貝過去。
cp -r /usr/local/httpd/htdocs/extman/addon/mailgraph_ext/ /usr/local/mailgraph_ext/
/usr/local/mailgraph_ext/mailgraph-init start
==================================================================
8.後記
雖然之前也配置過相似系統,但之前使用的相關功能軟件不一樣。資料也比較多。仍是很費勁。如今配置的這個系統也是通過無數次調試。終於成功了,性能方面應該能知足通常中小企業的用戶了,固然還有待調優相關軟件的設置。達到更好的性能。
配置的時候必定要當心各配置文件的細節,也許多一個標點或打錯字母都讓你找半天緣由。
我用crt打開幾個窗口。一個幾乎是 tail -f /var/log/maillog 沒停過。
還有就是谷歌了。我發現谷歌有些方面是比百度好使!