亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
1234下一頁
最近訪問板塊 發(fā)新帖
查看: 19092 | 回復(fù): 35
打印 上一主題 下一主題

[Mail] [原創(chuàng)]Qmail install on Debian5 [2010-02-01增加Dovecot 部分和反垃圾郵件] [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-01-09 10:46 |只看該作者 |倒序瀏覽
本帖最后由 zlj2208 于 2010-06-30 20:48 編輯

Qmail install on Debian5

zlj2208
2010-01-08
轉(zhuǎn)載請注明!


修改記錄:
2010-02-01:增加Dovecot 部分
2010-02-02:增加反病毒模塊安裝
2010-06-28:修正部分文字描述


本文檔主要針對Debian系統(tǒng)編寫,大部分Redhat/Fedora/CentOS系統(tǒng)也基本適用。

最近看到論壇中有很幾個朋友在搞qmail,遇到了很多問題,將以前的文檔整理一下。由于不做SA了,沒有可以隨便折騰的服務(wù)器了,昨天在晚上在家里的虛擬機上安裝了,將文檔完善了一下,希望對初學這有幫助。

這是Qmail的最基本安裝,POP3服務(wù)使用qmail自帶的,如果不滿足需求可以使用dovecot做為POP3和IMAP服務(wù)器,dovecot很優(yōu)秀,維護也比較及時;這里也沒有反垃圾郵件模塊的加入,由于篇幅原因這里就不寫了。

Qmail 是非常優(yōu)秀的Mail服務(wù)器軟件,但是現(xiàn)在已經(jīng)很多年沒有更新了,如果建立一個完整的一套郵件系統(tǒng)需要打很多的第三方補丁。如果想系統(tǒng)學習郵件系統(tǒng)級,我還是建議大家使用Postfix 。Postfix維護比較即時,功能也很多,我使用Postfix的體會是,只有你想不到的,沒有Postfix做不到的。

有很多Qmail的Fans或組織提供了整合的Qmail解決方案,可以參以下內(nèi)容:
http://www.qmailtoaster.com/
http://qmail.jms1.net/
http://www.inter7.com/vpopmail/
http://www.igenus.org
http://www.lifewithqmail.org/


一. 安裝Qmail相關(guān)軟件

系統(tǒng)為Debian5

準備工作
卸載exim4
aptitude remove exim4 exim4-base


安裝編譯器
aptitude install gcc g++ make
aptitude install openssl libssl-dev mysql-server libmysqlclient15-dev


1. 安裝Qmail
1).建立qmail需要的用戶

2).建立Qmail目錄
mkdir /var/qmail


3).建立qmail和vpopmail需要的用戶

建立qmail需要的用戶
groupadd qmail
groupadd nofiles
useradd alias -g qmail -d /var/qmail/alias -s /bin/false
useradd qmaild -g qmail -d /var/qmail -s /bin/false
useradd qmaill -g qmail -d /var/qmail -s /bin/false
useradd qmailp -g qmail -d /var/qmail -s /bin/false
useradd qmailq -g nofiles -d /var/qmail -s /bin/false
useradd qmailr -g nofiles -d /var/qmail -s /bin/false
useradd qmails -g nofiles -d /var/qmail -s /bin/false


建立vpopmail需要的用戶和組
groupadd -g 89 vchkpw
useradd -g vchkpw -u 89 -d /home/vpopmail -s /bin/false -p'*' vpopmail
mkdir /home/vpopmail
chown -R vpopmail.vchkpw /home/vpopmail


4).下載qmail軟件包
cd /usr/local/src
wget http://qmail.entropy.nervhq.com/netqmail-1.06.tar.gz
tar zxvf netqmail-1.06.tar.gz


5).下載qmail補丁
cd /usr/local/src/patches
wget http://shupp.org/patches/netqmai ... auth-20070417.patch


6).為netqmail-1.06打補丁
cd /usr/local/src/netqmail-1.06
patch < /usr/local/src/patchs/netqmail-1.05-tls-smtpauth-20070417.patch


7).修改CA的過期時間,給他設(shè)置成10年,夠多了吧
sed -i 's/-days 366/-days 3650/' Makefile-cert.mk


8 ).如果不想讓qmail支持CRAM_MD5認證方式修改下面文件
/usr/local/src/netqmail-1.06/qmail-smtpd.c

將下面代碼
#define CRAM_MD5

改成
/* #define CRAM_MD5 */


9).編譯安裝qmail
cd /usr/local/src/netqmail-1.06
make setup check
make cert
make tmprsadh


設(shè)置證書文件權(quán)限
chown vpopmail.vchkpw /var/qmail/control/servercert.pem


10).配置qmail
如果正確配置了dns
cd /usr/local/src/netqmail-1.06
./config-fast


如果沒配置dns使用下面命令
cd /usr/local/src/netqmail-1.06
./config-fast your.domain.name


Qmail安裝完畢.


2. 安裝 ucspi-tcp

ucspi-tcp 是代替inetd的一套程序。

cd /usr/local/src
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
tar zxvf ucspi-tcp-0.88.tar.gz
cd /usr/local/src/ucspi-tcp-0.88
patch < /usr/local/src/netqmail-1.06/other-patches/ucspi-tcp-0.88.errno.patch
make
make setup check


程序安裝的位置為: /usr/local/bin

ucspi-tcp安裝完畢.

3. 安裝daemontools
daemontools是一套管理UNIX服務(wù)的工具。
mkdir -p /package
cd /package
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
chmod 1755 /package
tar zxvf daemontools-0.76.tar.gz
cd /package/admin/daemontools-0.76/src
patch < /usr/local/src/netqmail-1.06/other-patches/daemontools-0.76.errno.patch
cd /package/admin/daemontools-0.76
package/install



4. 安裝autorespond

cd /usr/local/src/
wget http://www.inter7.com/devel/autorespond-2.0.5.tar.gz
tar zxvf autorespond-2.0.5.tar.gz
cd autorespond-2.0.5
make && make install



5. 安裝ezmlm
ezmlm是一套郵件列表管理軟件。

cd /usr/local/src
wget http://www.inter7.com/devel/ezmlm-0.53-idx-0.41.tar.gz
tar zxvf ezmlm-0.53-idx-0.41.tar.gz
cd ezmlm-0.53-idx-0.41
make && make setup



6. 安裝vpopmail

1). 準備工作

mkdir ~vpopmail/etc
chown vpopmail:vchkpw ~vpopmail/etc
echo "localhost|0|vpopmail|passwd@|vpopmail" > ~vpopmail/etc/vpopmail.mysql
chown vpopmail:vchkpw ~vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql
mysql -u root -p -e "CREATE DATABASE vpopmail;"
mysql -u root -p -e "GRANT all ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY 'passwd@'; "


測試vpopmail用戶是否能夠連接數(shù)據(jù)庫
mysql -u vpopmail -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.0.51a-24+lenny2 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| vpopmail           |
+--------------------+
2 rows in set (0.00 sec)

mysql> quit


2). 編譯安裝vpopmail

cd /usr/local/src
wget http://cdnetworks-kr-1.dl.source ... pmail-5.4.30.tar.gz
tar zxvf vpopmail-5.4.30.tar.gz


cd /usr/local/src/vpopmail-5.4.30
./configure --enable-logging=v \
--enable-auth-module=mysql \
--disable-passwd \
--enable-clear-passwd \
--disable-many-domains \
--enable-auth-logging \
--enable-sql-logging \
--enable-valias \
--enable-mysql-limits


make && make install-strip


3).建立虛擬域和虛擬用戶
/home/vpopmail/bin/vadddomain mydomain.com
echo mydomain.com > ~vpopmail/etc/defaultdomain
/home/vpopmail/bin/vadduser test 123456


4).檢查虛擬用戶是否建立正確
/home/vpopmail/bin/vuserinfo test

下面為輸出信息
name:   test
passwd: $1$5AFlHref$Ms7f.rjHAe34cIJ.3.xoF.
clear passwd: 123456
comment/gecos: test
uid:    0
gid:    0
flags:  0
gecos: test1
limits: No user limits set.
dir:       /home/vpopmail/domains/mydomain.com/test
quota:     NOQUOTA
usage:     NOQUOTA
account created: Fri Jan  8 18:12:33 2010
last auth: Never logged in



二. 啟動qmail

1. 系統(tǒng)啟動腳本
建立 /var/qmail/bin/qmailctl 啟動腳本
#!/bin/sh

# For Red Hat chkconfig
# chkconfig: - 80 30
# description: the qmail MTA

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

case "$1" in
  start)
    echo "Starting qmail..."
    if svok /service/qmail-send ; then
      svc -u /service/qmail-send /service/qmail-send/log
      echo "  qmail-send"
    else
      echo "qmail-send supervise not running"
    fi
    if svok /service/qmail-smtpd ; then
      svc -u /service/qmail-smtpd /service/qmail-smtpd/log
      echo "  qmail-smtpd"
    else
      echo "qmail-smtpd supervise not running"
    fi
    if svok /service/qmail-pop3d ; then
      svc -u /service/qmail-pop3d /service/qmail-pop3d/log
      echo "  qmail-pop3d"
    else
      echo "qmail-pop3d supervise not running"
    fi
    if [ -d /var/lock/subsys ]; then
      touch /var/lock/subsys/qmail
    fi
    ;;
  stop)
    echo "Stopping qmail..."
    echo "  qmail-smtpd"
    svc -d /service/qmail-smtpd /service/qmail-smtpd/log
    echo "  qmail-send"
    svc -d /service/qmail-send /service/qmail-send/log
    echo "  qmail-pop3d"
    svc -d /service/qmail-pop3d /service/qmail-pop3d/log
    if [ -f /var/lock/subsys/qmail ]; then
      rm /var/lock/subsys/qmail
    fi
    ;;
  stat)
    svstat /service/qmail-send
    svstat /service/qmail-send/log
    svstat /service/qmail-smtpd
    svstat /service/qmail-smtpd/log
    svstat /service/qmail-pop3d
    svstat /service/qmail-pop3d/log
    qmail-qstat
    ;;
  doqueue|alrm|flush)
    echo "Flushing timeout table and sending ALRM signal to qmail-send."
    /var/qmail/bin/qmail-tcpok
    svc -a /service/qmail-send
    ;;
  queue)
    qmail-qstat
    qmail-qread
    ;;
  reload|hup)
    echo "Sending HUP signal to qmail-send."
    svc -h /service/qmail-send
    ;;
  pause)
    echo "Pausing qmail-send"
    svc -p /service/qmail-send
    echo "Pausing qmail-smtpd"
    svc -p /service/qmail-smtpd
    echo "Pausing qmail-pop3d"
    svc -p /service/qmail-pop3d
    ;;
  cont)
    echo "Continuing qmail-send"
    svc -c /service/qmail-send
    echo "Continuing qmail-smtpd"
    svc -c /service/qmail-smtpd
    echo "Continuing qmail-pop3d"
    svc -c /service/qmail-pop3d
    ;;
  restart)
    echo "Restarting qmail:"
    echo "* Stopping qmail-smtpd."
    svc -d /service/qmail-smtpd /service/qmail-smtpd/log
    echo "* Restarting qmail-smtpd."
    svc -u /service/qmail-smtpd /service/qmail-smtpd/log
    echo "* Sending qmail-send SIGTERM and restarting."
    svc -t /service/qmail-send /service/qmail-send/log
    echo "* Stopping qmail-pop3d."
    svc -d /service/qmail-pop3d /service/qmail-pop3d/log
    echo "* Restarting qmail-pop3d."
    svc -u /service/qmail-pop3d /service/qmail-pop3d/log
    ;;
  cdb)
    tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
    chmod 644 /etc/tcp.smtp.cdb
    echo "Reloaded /etc/tcp.smtp."
    ;;
  help)
    cat <<HELP
   stop -- stops mail service (smtp connections refused, nothing goes out)
  start -- starts mail service (smtp connection accepted, mail can go out)
  pause -- temporarily stops mail service (connections accepted, nothing leaves)
   cont -- continues paused mail service
   stat -- displays status of mail service
    cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
  queue -- shows status of queue
   alrm -- same as doqueue
  flush -- same as doqueue
    hup -- same as reload
HELP
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
    exit 1
    ;;
esac

exit 0
#end of qmailctl


賦予腳本執(zhí)行權(quán)限,并建立相關(guān)連接
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
ln -s /var/qmail/bin/qmailctl /etc/init.d/qmaild


2. 建立 supervise 腳本
建立 supervise 目錄
mkdir -p /var/qmail/supervise/qmail-send/log \
/var/qmail/supervise/qmail-smtpd/log \
/var/qmail/supervise/qmail-pop3d/log


然后建立log文件目錄
mkdir -p /var/log/qmail/smtpd \
/var/log/qmail/send \
/var/log/qmail/pop3d
chown -R qmaill /var/log/qmail


1). 建立 /var/qmail/rc 文件
#!/bin/sh

# Using stdout for logging
# Using control/defaultdelivery from qmail-local to deliver messages by default

exec env - PATH="$PATH:/var/qmail/bin" \
qmail-start "`cat /var/qmail/control/defaultdelivery`"
#end of /var/qmail/rc


echo ./Maildir/ > /var/qmail/control/defaultdelivery


2). 建立 qmail-send 腳本
建立 /var/qmail/supervise/qmail-send/run 文件
#!/bin/sh
exec /var/qmail/rc


建立 /var/qmail/supervise/qmail-send/log/run 文件
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/send


3).建立 qmail-smtpd 腳本
建立 /var/qmail/supervise/qmail-smtpd/run 文件
#!/bin/sh

QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`

MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
        echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
        echo /var/qmail/supervise/qmail-smtpd/run
        exit 1
fi

if [ ! -f /var/qmail/control/rcpthosts ]; then
        echo "No /var/qmail/control/rcpthosts!"
        echo "Refusing to start SMTP listener because it'll create an open relay"
        exit 1
fi

exec /usr/local/bin/softlimit -m 40000000 \
        /usr/local/bin/tcpserver -v -H -R -l "$LOCAL" \
        -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
        -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /usr/local/bin/rblsmtpd \
        -r bl.spamcop.net /var/qmail/bin/qmail-smtpd \
        /home/vpopmail/bin/vchkpw /bin/true 2>&1


建立 concurrencyincoming 控制文件
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming


注意: concurrencyincoming并不是標準的qmail控制文件. 它是上面腳本的一個要素. 并且, 第一個LOCAL 行上面的是"破折號 + 數(shù)字1", 下面的tcpserver行上的參數(shù)是"破折號 + 小寫字母l" . (由于英文小寫字母l和數(shù)字1容易混淆, 原作者特意補充的注意事項. 由譯者將被提到兩行修改成為紅色. 這也是為什么作者希望讀者直接拷貝腳本而不是自行輸入避免腳本出錯的主要原因之一. 另外注意這個腳本中很多字體很小的引號和反引號. 譯者注)
注意: 根據(jù)你的操作系統(tǒng)和硬件平臺的不同, 可能需要調(diào)整softlimit命令的的內(nèi)存限制參數(shù). 如果你的系統(tǒng)出現(xiàn)連接25端口失敗和無法接收遠程系統(tǒng)發(fā)送的郵件, 或者看到了類似下面這樣的錯誤消息:
  /usr/local/bin/tcpserver: error while loading shared libraries:
  libc.so.6: failed to map segment from shared object: Cannot
  allocate memory


試一下把這個參數(shù)調(diào)整到4000000或者更大.

建立 /var/qmail/supervise/qmail-smtpd/log/run 文件
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd


4). 配置pop3腳本
建立  /var/qmail/supervise/qmail-pop3d/run 文件
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
exec tcpserver -H -R -v -c100 0 110 qmail-popup 127.0.0.1 \
/home/vpopmail/bin/vchkpw qmail-pop3d Maildir 2>&1


建立 /var/qmail/supervise/qmail-pop3d/log/run 文件
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
exec setuidgid qmaill multilog t s100000 n20 /var/log/qmail/pop3d 2>&1


5).設(shè)置腳本的可執(zhí)行權(quán)限
chmod 755 /var/qmail/rc
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 751 /var/qmail/supervise/qmail-pop3d/run
chmod 751 /var/qmail/supervise/qmail-pop3d/log/run


6).建立 supervise 目錄到 /service 目錄的鏈接
ln -s /var/qmail/supervise/qmail-send \
/var/qmail/supervise/qmail-smtpd \
/var/qmail/supervise/qmail-pop3d \
/service


/service 目錄是 daemontools 安裝時建立的目錄.
注意: 建立這個鏈接之后 qmail 系統(tǒng)會很快自動被啟動起來。

7).啟動qmail服務(wù)器方法
可以使用qmailctl命令來控制qmail的啟動、運行、查看狀態(tài)等。

啟動qmail
qmailctl start

停止qmail
qmailctl stop

重啟動qmail
qmailctl restart

查看qmail狀態(tài)
qmailctl stat

查看qmail隊列
qmailctl queue


8).SMTP訪問控制
允許本地主機通過SMTP方式發(fā)送郵件,/etc/tcp.smtp 為tcprules的配置文件,如果配置可以設(shè)定哪些IP允許訪問,哪些IP不允許訪問。
echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
qmailctl cdb


9).使用qmail的sendmail程序替換原有的sendmail程序
mv /usr/lib/sendmail /usr/lib/sendmail.old
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
ln -s /var/qmail/bin/sendmail /usr/lib
ln -s /var/qmail/bin/sendmail /usr/sbin


10).建立系統(tǒng)別名文件
建立這些系統(tǒng)別名, 取決于你想讓這些郵件發(fā)送到哪里(一個本地用戶或者一個遠程地址)并且適當?shù)膭?chuàng)建一個.qmail 文件集合. 舉個例子, 加入你想讓本地用戶 dave 接收發(fā)給系統(tǒng)管理員和郵件管理員的郵件, 就這么作:
echo YourUser > /var/qmail/alias/.qmail-root
echo YourUser > /var/qmail/alias/.qmail-postmaster
ln -s /var/qmail/alias/.qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
ln -s /var/qmail/alias/.qmail-postmaster /var/qmail/alias/.qmail-abuse  
chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster


11).重啟動qmail
qmailctl restart


檢查進行是否存在
ps uxawww


[ 本帖最后由 zlj2208 于 2010-1-23 14:28 編輯 ]

論壇徽章:
0
2 [報告]
發(fā)表于 2010-01-09 10:47 |只看該作者

[原創(chuàng)]Qmail install on Debian5 [續(xù)]

本帖最后由 zlj2208 于 2010-06-29 14:47 編輯

三. 測試

1. 發(fā)信測試

建立base64編碼腳本/usr/local/bin/base64.pl
#!/usr/bin/perl -w
use strict;
use MIME::Base64;
print "Press Enter to exit. \n";
print "Input you string: ";
my $line;
while( $line = <STDIN> )
{
  if( $line ne "\n" ){
    chomp($line) ;
    print "Base64 encode is : " . encode_base64($line) ;
    print "Input you string: ";
  }
  else
  {
    exit;
  }
}


賦予腳本執(zhí)行權(quán)限
chmod 755 /usr/local/bin/base64.pl

/usr/local/bin/base64.pl
Press Enter to exit.
Input you string: test@mydomain.com
Base64 encode is : dGVzdEBteWRvbWFpbi5jb20=
Input you string: 123456
Base64 encode is : MTIzNDU2
Input you string:


測試發(fā)郵件
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 debian5.mydomain.com ESMTP
ehlo localhost
250-debian5.mydomain.com
250-STARTTLS
250-PIPELINING
250-8BITMIME
250-SIZE 0
250 AUTH LOGIN PLAIN
auth login
334 VXNlcm5hbWU6
dGVzdEBteWRvbWFpbi5jb20=
334 UGFzc3dvcmQ6
MTIzNDU2
235 ok, go ahead (#2.0.0)
mail from:test@mydomain.com
250 ok
rcpt to:test@mydomain.com
250 ok
data
354 go ahead
subject:test mail
from:test@mydomain.com
to:test@mydomain.com
test mail
test mail
.
250 ok 1262994953 qp 16522
quit
221 debian5.mydomain.com
Connection closed by foreign host.



2. 收信測試
telnet 192.168.1.80 110
+OK <16534.1262995383@127.0.0.1>
user test@mydomain.com
+OK
pass 123456
+OK
list
+OK
1 349
.
retr 1
+OK
Return-Path: <test@mydomain.com>
Delivered-To: test@mydomain.com
Received: (qmail 16522 invoked by uid 89); 8 Jan 2010 23:55:13 -0000
Received: from unknown (HELO localhost) (test@mydomain.com@127.0.0.1)
  by debian5.mydomain.com with ESMTPA; 8 Jan 2010 23:55:13 -0000
subject:test mail
from:test@mydomain.com
to:test@mydomain.com
test mail
test mail

.
quit
+OK


3.日志文件

無論做什么一定要養(yǎng)成看日志文件的好習慣。

以下日志可以使用下面命令,查看準確時間
tail /var/log/qmail/xxxx/current | tai64nlocal


smtpd日志文件  /var/log/qmail/smtpd/current
send日志文件    /var/log/qmail/send/current
pop3d日志文件  /var/log/qmail/pop3d/current

tail /var/log/qmail/smtpd/current -f|tai64nlocal
2010-01-08 18:52:16.810445500 tcpserver: status: 0/20
2010-01-08 18:52:46.334378500 tcpserver: status: 1/20
2010-01-08 18:52:46.340859500 tcpserver: pid 16515 from 127.0.0.1
2010-01-08 18:52:46.345675500 tcpserver: ok 16515 debian5.mydomain.com:127.0.0.1:25 :127.0.0.1::37304
2010-01-08 18:53:59.169586500 tcpserver: end 16515 status 0
2010-01-08 18:53:59.169597500 tcpserver: status: 0/20
2010-01-08 18:54:06.275185500 tcpserver: status: 1/20
2010-01-08 18:54:06.275196500 tcpserver: pid 16519 from 127.0.0.1
2010-01-08 18:54:06.275204500 tcpserver: ok 16519 debian5.mydomain.com:127.0.0.1:25 :127.0.0.1::37305
2010-01-08 18:55:56.105737500 tcpserver: end 16519 status 0
2010-01-08 18:55:56.105749500 tcpserver: status: 0/20



tail /var/log/qmail/send/current -f|tai64nlocal
2010-01-08 18:34:57.871522500 status: local 0/10 remote 0/20
2010-01-08 18:51:18.937726500 status: exiting
2010-01-08 18:52:16.729858500 status: local 0/10 remote 0/20
2010-01-08 18:55:53.945775500 new msg 76048
2010-01-08 18:55:53.945786500 info msg 76048: bytes 284 from <test@mydomain.com> qp 16522 uid 89
2010-01-08 18:55:54.014909500 starting delivery 1: msg 76048 to local mydomain.com-test@mydomain.com
2010-01-08 18:55:54.014920500 status: local 1/10 remote 0/20
2010-01-08 18:55:54.172419500 delivery 1: success: did_0+0+1/
2010-01-08 18:55:54.172429500 status: local 0/10 remote 0/20
2010-01-08 18:55:54.175344500 end msg 76048


tail /var/log/qmail/pop3d/current | tai64nlocal
2010-01-08 19:01:45.169535500 tcpserver: status: 1/100
2010-01-08 19:01:45.169551500 tcpserver: pid 16531 from 127.0.0.1
2010-01-08 19:01:45.197221500 tcpserver: ok 16531 localhost:127.0.0.1:110 :127.0.0.1::46660
2010-01-08 19:01:53.033122500 tcpserver: end 16531 status 256
2010-01-08 19:01:53.033133500 tcpserver: status: 0/100
2010-01-08 19:03:03.102296500 tcpserver: status: 1/100
2010-01-08 19:03:03.102307500 tcpserver: pid 16534 from 192.168.1.100
2010-01-08 19:03:03.122798500 tcpserver: ok 16534 :192.168.1.80:110 :192.168.1.100::50031
2010-01-08 19:04:43.578479500 tcpserver: end 16534 status 256
2010-01-08 19:04:43.578508500 tcpserver: status: 0/100



vpopmail日志文件 /var/log/mail.log

tail /var/log/mail.log
Jan  8 18:35:42 debian5 vpopmail[16417]: vchkpw-webmail: (PLAIN) login success test@mydomain.com:127.0.0.1
Jan  8 18:36:41 debian5 vpopmail[16425]: vchkpw-webmail: vpopmail user not found test@mydmain.com:127.0.0.1
Jan  8 18:37:16 debian5 vpopmail[16428]: vchkpw-webmail: (PLAIN) login success test@mydomain.com:127.0.0.1
Jan  8 18:44:47 debian5 vpopmail[16445]: vchkpw-webmail: (PLAIN) login success test@mydomain.com:127.0.0.1
Jan  8 18:53:10 debian5 vpopmail[16516]: vchkpw-smtp: (PLAIN) login success test@mydomain.com:127.0.0.1
Jan  8 18:54:36 debian5 vpopmail[16520]: vchkpw-smtp: (PLAIN) login success test@mydomain.com:127.0.0.1
Jan  8 19:03:28 debian5 vpopmail[16535]: vchkpw-pop3: (PLAIN) login success test@mydomain.com:192.168.1.100



終于發(fā)完了,好累!

--------------------------------------------------------------------------------------------
2010-02-01 更新
四. 安裝POP3/IMAP4軟件

1.  安裝doevcot

1). 下載 doevcot 軟件包

doevcot 的官方網(wǎng)站:http://www.dovecot.org/
cd /usr/local/src/
wget http://www.dovecot.org/releases/1.2/dovecot-1.2.9.tar.gz
tar zxvf dovecot-1.2.9.tar.gz

2). 編譯安裝doevcot
./configure \
--with-vpopmail \
--with-ssl=openssl \
--without-passwd \
--without-passwd-file \
--without-shadow \
--without-pam \
--without-checkpassword \
--without-bsdauth \
--without-gssapi \
--without-sia \
--without-ldap \
--without-static-userdb \
--without-prefetch-userdb \
--without-sql \
--without-pgsql \
--without-mysql \
--without-sqlite


make
make install

3). 建立dovecot用戶
useradd -d /dev/null -s /bin/false -c 'Dovecot user' dovecot


2. 配置doevcot

1). 建立dovecot配置文件

如果在編譯時候沒有指定配置文件的位置,那么會在 /usr/local/etc/ 路徑下生成配置文件的樣例,可以用來參考,文件名為dovecot.conf 。dovecot的配置相對比較簡單,可以參照dovecot的官方wiki進行配置,上面內(nèi)容很詳細。
建立 /usr/local/etc/dovecot.conf 文件,內(nèi)容如下:
## Basic config
base_dir = /usr/local/var/run/dovecot/
protocols = imap
disable_plaintext_auth = no
shutdown_clients = yes
## Logging
#auth_verbose=yes
#auth_debug=yes
#auth_debug_passwords=yes
#mail_debug=yes
#log_path = /dev/stderr
#info_log_path = /dev/stderr
#log_timestamp = ""
## SSL settings
ssl_cert_file = /var/qmail/control/servercert.pem
ssl_key_file = /var/qmail/control/servercert.pem
#verbose_ssl = yes
## Login processes
login_dir = /usr/local/var/run/dovecot/login
login_user = dovecot
login_process_per_connection = yes
login_processes_count = 3
login_max_processes_count = 128
## Mailbox locations and namespaces
mail_location = maildir:~/Maildir
namespace private {
        separator = .
        prefix = INBOX.
        inbox = yes
}
## Mail processes
verbose_proctitle = yes
first_valid_uid = 89
last_valid_uid = 89
## Maildir-specific settings
maildir_copy_with_hardlinks = yes
maildir_copy_preserve_filename = no
## IMAP specific settings
protocol imap {
        #listen = 127.0.0.1:143
        mail_plugins = quota imap_quota
}
## POP3 specific settings
protocol pop3 {
        #listen = 127.0.0.1:110
        pop3_no_flag_updates = no
        pop3_uidl_format = %v-%u
        mail_plugins = quota
}
## Authentication processes
auth default {
        mechanisms = plain
        passdb vpopmail {
                args =
        }
        userdb vpopmail {
        }
        user = vpopmail
        count = 1
}
## Plugin settings
plugin {
        quota = maildir
}

2). 建立dovecot運行是需要的目錄

mkdir -m 0755 /usr/local/var \
/usr/local/var/run \
/usr/local/var/run/dovecot

3). 建立dovecot啟動腳本

    dovecot的安裝包中有一個Sys V風格的腳本,將其復(fù)制到 /etc/init.d/ 目錄下,并賦予執(zhí)行權(quán)限即可。
cp /usr/local/src/dovecot-1.2.9/doc/dovecot-initd.sh /etc/init.d/dovecot
chmod 755 /etc/init.d/dovecot

3. 啟停止dovecot

1). 啟動dovecot
/etc/init.d/dovecot start

在啟動 dovecot 的時候會有下面一些提示:
If you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.

如果不想在啟動的時候出現(xiàn)這些信息,按照如下方法修改啟動腳本

在 /etc/init.d/dovecot 腳本中找到 start 和 restart 部分進行修改。

將start 和restart中的 $DAEMON 做下面修改:
$DAEMON

改成
$DAEMON >/dev/null

2). 停止dovecot
/etc/init.d/dovecot stop

3). 重啟動dovecot
/etc/init.d/dovecot restart

4). 重新加載 dovecot 配置
/etc/init.d/dovecot reload


4. 測試IMAP4服務(wù)器

通過telnet命令測試IMAP服務(wù)器是否啟動
shell# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
a login test 123456
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH QUOTA] Logged in
a list "" *
* LIST (\HasChildren) "." "INBOX"
* LIST (\HasNoChildren) "." "INBOX.Trash"
* LIST (\HasNoChildren) "." "INBOX.Drafts"
* LIST (\HasNoChildren) "." "INBOX.Sent"
a OK List completed.
a select inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 16 EXISTS
* 0 RECENT
* OK [UNSEEN 1] First unseen.
* OK [UIDVALIDITY 1264947842] UIDs valid
* OK [UIDNEXT 17] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
a OK [READ-WRITE] Select completed.
a search all
* SEARCH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
a OK Search completed (0.001 secs).
a fetch 1 rfc822
* 1 FETCH (FLAGS (\Seen) RFC822 {344}
Return-Path: <test@mydomain.com>
Delivered-To: test@mydomain.com
Received: (qmail 14977 invoked by uid 89); 24 Jan 2010 11:36:47 -0500
Received: from localhost (test@mydomain.com@127.0.0.1)
  by debian5.mydomain.com with SMTP; 24 Jan 2010 11:36:47 -0500
subject:test mail
from:test@mydomain.com
to:test@mydomain.com
lafskjlas
jalfjal
)
a OK Fetch completed.
a logout
* BYE Logging out
a OK Logout completed.
Connection closed by foreign host.


--------------------------------------------------------------------------------------------
2010-02-02 更新
五.  安裝反垃圾郵件和反病毒模塊

Qmail 在郵件病毒防護和反垃圾郵件的大體流程是這樣的,Qmail收到郵件后,將queue中郵件交給 Qmail Scanner (或者 SimScan )處理,然后經(jīng)由Qmail Scanner (或者 SimScan )交給 ClamAV 和 SpamAssassin 處理。
Qmail Scanner (或者 SimScan )的區(qū)別在于Qmail Scanner是用 perl 寫的,SimScan 是用 C 寫的,本例已 SimScan 為例。
由于郵件病毒防護和反垃圾郵件比較復(fù)雜,根據(jù)自己的需要,還需要調(diào)整相關(guān)參數(shù)。


1. 安裝clamav
Clam AntiVirus 是一款 UNIX 下開源的 (GPL) 反病毒工具包,專為郵件網(wǎng)關(guān)上的電子郵件掃描而設(shè)計。該工具包提供了包含靈活且可伸縮的監(jiān)控程序、命令行掃描程序以及用于自動更新數(shù)據(jù)庫的高級工具在內(nèi)的大量實用程序。該工具包的核心在于可用于各類場合的反病毒引擎共享庫。
官方網(wǎng)站:http://www.clamav.net/

aptitude install clamav-base clamav-daemon clamav-data



2. 安裝SpamAssassin

SpamAssassin是一套郵件內(nèi)容過濾軟件,是用perl編寫的。現(xiàn)在由Apache基金會維護。想了解更多內(nèi)容,請參閱官方網(wǎng)站:http://spamassassin.apache.org/ 。Debian中自帶了SpamAssassin套件,因此適用atp命令安裝,省去了編譯安裝的步驟。

aptitude install spamassassin


在Debian系統(tǒng)中,默認SpamAssassin 是不啟動的,所以想啟動SpamAssassin 需要修改SpamAssassin的配置文件: /etc/default/spamassassin

ENABLED=0

改成
ENABLED=1


修改 SpamAssassin 配置文件 /etc/mail/spamassassin/local.cf

定義垃圾郵件標題

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


定一垃圾郵件分數(shù)

required_score 7.0



3. 安裝 ripmime

Ripmime的主要功能是解碼郵件附件中的內(nèi)容,由PLDaniels編寫的。
下載地址:http://pldaniels.com/ripmime/

cd /usr/local/src/
wget http://pldaniels.com/ripmime/ripmime-1.4.0.9.tar.gz
cd ripmime-1.4.0.9
make
make install


4. 安裝SimScan

SimScan 是用來在SMTP會話階段阻止病毒、垃圾郵件、特定附件的一個應(yīng)用程序,因此會在處理郵件的過程中占用一些時間。這個項目是開源的,是基于C語言開發(fā)的,雖然很小,但非常有效。
下載地址:http://www.inter7.com/simscan/


cd /usr/local/src/
wget http://cdnetworks-kr-1.dl.source ... imscan-1.4.0.tar.gz

tar zxvf simscan-1.4.0.tar.gz
cd /usr/local/src/simscan-1.4.0

./configure --enable-user=clamav \
--enable-clamav=y \
--enable-spam=y \
--enable-spam-passthru=y \
--enable-per-domain=y \
--enable-ripmime \
--enable-attach=y \
--enable-received=y \
--enable-clamavdb-path=/var/clamav

make
make install-strip


添加默認規(guī)則
建立 /var/qmail/control/simcontrol 文件,增加如下內(nèi)容

:clam=yes,spam=yes,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif


在命名行執(zhí)行下面兩個命令
/var/qmail/bin/simscanmk


/var/qmail/bin/simscanmk -g


開啟SicScan
修改 /etc/tcp.smtp 文件,增加如下內(nèi)容

:allow,QMAILQUEUE="/var/qmail/bin/simscan"


重新生成cdb文件
qmailctl cdb


如需要打開 SimScaner 的日志,修改smtp run腳本 /var/qmail/supervise/qmail-smtpd/run ,SIMSCAN_DEBUG 日志調(diào)試級別 0-4 ,數(shù)值越大越詳細;SIMSCAN_DEBUG_FILES是病毒掃描的調(diào)參數(shù)。

export SIMSCAN_DEBUG=4
export SIMSCAN_DEBUG_FILES=2



5. 測試

使用ThunderBird 或者 其他的郵件客戶端發(fā)送郵件,看郵件日志是否有內(nèi)容過濾的相關(guān)信息。同時查看郵件信頭,如果配置正確信頭中會有相關(guān)的記錄。

以上是基本步驟,具體內(nèi)容可以參考每個軟件的幫助文檔,里面有非常詳細的介紹。

Webmail有很多種,如: Squirrelmail、OpenWebmail、Horde-webmail、Roundcubemail、Extmail等。找個適合自己的吧,先不寫了,等有時間在寫。

論壇徽章:
0
3 [報告]
發(fā)表于 2010-01-09 11:16 |只看該作者
lz辛苦了,支持一下

論壇徽章:
0
4 [報告]
發(fā)表于 2010-01-09 13:48 |只看該作者

Qmail install on Debian5 PDF文檔

本帖最后由 zlj2208 于 2010-06-29 14:54 編輯

增加了PDF格式文件下載。
2010-06-29重新上傳。
Qmail install on Debian5

論壇徽章:
8
綜合交流區(qū)版塊每周發(fā)帖之星
日期:2015-12-02 15:03:53數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-10-02 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-10-02 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年紀念徽章
日期:2013-10-24 15:41:34酉雞
日期:2013-10-19 10:17:1315-16賽季CBA聯(lián)賽之北京
日期:2017-03-06 15:12:44
5 [報告]
發(fā)表于 2010-01-10 20:26 |只看該作者
頂你!

論壇徽章:
0
6 [報告]
發(fā)表于 2010-01-11 10:01 |只看該作者

回復(fù) #4 zlj2208 的帖子

不錯 支持一下 樓主威武~~~~~
隨便問一下樓主
我是在本機測試的
沒有配置DNS  那么我./config-fast的時候 后面應(yīng)該寫什么呢?

以及后面我的pop3 的run文件中的域名又是如何定義的呢?

論壇徽章:
0
7 [報告]
發(fā)表于 2010-01-11 11:38 |只看該作者
./config-fast 后面加入你的標準主機名就行了。
實際上就是/etc/hosts里面的內(nèi)容,可以使用 hostname -f 命令得到 fqdn 主機名,而這個主機名取決于你在安裝的時候是怎么填寫的。

pop3 的run文件中寫127.0.0.1就可了。


原帖由 ppiqq 于 2010-1-11 10:01 發(fā)表
不錯 支持一下 樓主威武~~~~~
隨便問一下樓主
我是在本機測試的
沒有配置DNS  那么我./config-fast的時候 后面應(yīng)該寫什么呢?

以及后面我的pop3 的run文件中的域名又是如何定義的呢?

[ 本帖最后由 zlj2208 于 2010-1-11 11:43 編輯 ]

論壇徽章:
0
8 [報告]
發(fā)表于 2010-01-12 14:31 |只看該作者
多謝樓主 已經(jīng)起來了
要是樓主不辭辛苦 再把郵件過濾啥的寫寫的話 那就更好了

論壇徽章:
0
9 [報告]
發(fā)表于 2010-01-13 16:58 |只看該作者
LZ,我剛才按照你的步驟做了,可是發(fā)送的測試郵件一直在隊列中,發(fā)送不出去

qmailctl stat的結(jié)果是這樣

root@debian:/var/qmail/bin# ./qmailctl stat
/service/qmail-send: up (pid 21668) 0 seconds
/service/qmail-send/log: up (pid 18481) 1302 seconds
/service/qmail-smtpd: up (pid 18484) 1302 seconds
/service/qmail-smtpd/log: up (pid 18486) 1302 seconds
/service/qmail-pop3d: up (pid 18491) 1302 seconds
/service/qmail-pop3d/log: up (pid 18492) 1302 seconds
messages in queue: 1
messages in queue but not yet preprocessed: 1


/var/log/qmail/send/current  send日志為空

[ 本帖最后由 lasama 于 2010-1-13 17:00 編輯 ]

論壇徽章:
0
10 [報告]
發(fā)表于 2010-01-13 17:47 |只看該作者
qmail-send: up (pid 21668) 0 seconds

這個問題搞定了,是/var/qmail/rc 沒可執(zhí)行權(quán)限

不過郵件還是在隊列中,無法發(fā)送出去
/var/log/qmail/send/current 日志里面有這么一段

@400000004b4d957a1a5b7984 delivery 8: deferral: Uh-oh:_first_line_of_.qmail_file_is_blank._(#4.2.1)/
@400000004b4d957a1a5b7984 status: local 0/10 remote 0/20
@400000004b4d95b61a50c73c starting delivery 9: msg 449541 to local victor@mydomain.com
@400000004b4d95b61a50cf0c status: local 1/10 remote 0/20
@400000004b4d95b61a528c5c delivery 9: deferral: Uh-oh:_first_line_of_.qmail_file_is_blank._(#4.2.1)/
@400000004b4d95b61a529044 status: local 0/10 remote 0/20
@400000004b4d95df1a4f503c starting delivery 10: msg 449545 to local victor@mydomain.com
@400000004b4d95df1a4f580c status: local 1/10 remote 0/20
@400000004b4d95df1a5128e4 delivery 10: deferral: Uh-oh:_first_line_of_.qmail_file_is_blank._(#4.2.1)/
@400000004b4d95df1a5128e4 status: local 0/10 remote 0/20

還沒查到原因
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP