在DEBIAN 下安装POSTFIX 邮件系统

12/3/2006来源:Qmail人气:12339

作者:冯勇 fengyongchuang # yahoo.com.cn (≠%26amp;键盘人生$:71633908) +<%26amp;m^n1
| 8zlE/i
日期:2006-05-18 +KuwkyIyM
gdVqI8%]Y
技术支持网站:www.extmail.org :y9fJ
X
QQ群: 9\ylxh i
:EWxg$
网管之家: 5929685 },/<]bF]y
网管之家-UNIX:3791457 Qhh']M[*Q
Extmail 群/postfix 1: 6769767 2[<'YQ$E
Extmail 群/postfix 2: 18051473 bdB+PNmn(
%26amp;z^Rc2rvs
版权所有,复制或转载时请保留作者信息。尊重他人的劳动成果就等于尊重自己。 w|jzXPmZ1
fN$#UwOm
如有问题请到下面网址提问: n6%26amp;?K6
'MLq(c )
http://www.extmail.org/forum/archive/2/0605/1771.html K5tkp`D
vP?c{ L2
本次文章的配置文件:mail.tar.gz O\ H>y#8M*
Bt<'v%26amp;
一直想写一篇DEBIAN 下的邮件系统安装文档,因为自己太懒一直没有动手,今天闲着没事,把文档写出来,供各位参考同时给自己留一份笔记。 mau%)iD
^h[email protected]
这次没有使用maildrop,原因:1、debian 里的maildrop 版本好像是1.7的,配置有点复杂,所以没有去研究,如果那位兄弟配置成功,告诉我。2、公司用webmail 的人少,邮件过滤规则很少人用,以前用maildrop 主要是用他来将垃圾邮件移到垃圾信箱,现在使用了slockd ,垃圾邮件少了,再说没有用webmail。 B`tV9 B.
oaZI;;W
N7'VXl
!p5.$$~
一、安装DEBAIN VmNO 6$aG
1、debian 的好处 >pO|ydf
其实我喜欢很喜欢这个linux发行版,因为他有点像freeBSD 的软件安装方式。我对debian 并不是十分熟悉,如果有写错的地方,请指正。 ?P;"B#eg*
},Ky# \mp
2、下载debian 可以到官方网站或linuxsir 下载。 ^~ ddT
我使用的版本是:debian-31r2-i386-netinst.iso )69j gVDv
z(` D /
http://debian.linuxsir.org/main/?q=node/92 @[email protected]:$
bP%26amp;*38 nH
http://www.us.debian.org/ o*fk) if>
1S1;:"eV
http://debian.cn99.com }[Puy2zK
02Eu !$kI
... jmr4 de6(a
Iw/-U6`f$P
3、安装 DBRO-0W3
跟据我的爱好喜欢拿10G 左右的空间作为系统,把数据资料放到另一个分区或硬盘中,并装载到/home/data 这个目录,如果你不喜欢这样,可以跟据自己的爱好,修改配置文档的路径。 yt~i#3 >
KP [email protected]
4、主机名 0z_fj'0
安装时可以输入主机名,或者编辑/etc/host.conf 修改你的主机名。 S }Bf.K
SNGl"(f
这里使用 mail.extmail.org 为例。 pt4ox"*5
f5ZFZO;B
5、更新你的软件包 >!
在复制完文件后,会出现一个配置过程,在配置 apt 那里添加一个安装源,选择ftp 现先择 china 可以选择下面两个安装源: [email protected]
NHu/*++=
ftp.linuxforum.net 或 debian.cn99.com {+dz_A
E= 9
本人用的是网通ADSL 选择ftp.linuxforum.net 好像快一点。 6uXa2p
lWgz kx*q
如果你在安装时跳过了这一步,可以进入系统后可以再次运行base-config 选择configure apt 进行再次配置。 $D2y}\,
* H;ljn
6、安装SSH _J ` dC
为了方便安装,建义使用SSH 进行远程操作,方便复制与粘贴。 ") O:A a}
]]uk8kF:
apt-get install ssh $R*$nz@
)RZ NQ:>
*至于apt 系统的使用方法,建议大家去看debian 的文档,写得非常详细。 $-/g'"
%Q=gZna
http://debian.linuxsir.org/book/reference/lyoo/ ^UZYjh[0
0i$eK2l
二、安装软件 _pD_W5L0|
1、下载需要的软件 ll2tH16
到www.extmail.org 下载extmail/extman/slockd ,通过FTP 上传到服务器,并解压 A +^K;:
f)_T'A/:B;
tar zxvf extmail-0\[1\].23-20060219.tar.gz ^I9%26amp;Rqj~!
qbQ`V [email protected]
tar zxvf extman-0\[1\].15-20060518.tar.gz P Xt6;<O
sW _PRGBP
tar zxvf slockd-0\[1\].08.tar.gz tgA4X 2
S: wc)p
V~Xwa %26amp;
M1~|PfQJv
2、安装MySQL qfaE_|b%:
mail:~# apt-get install mysql-server >Y26}R;Fa
|@ 9fZw
安装完mysql 后,将extman 的数据导入到mysql 中 `oJmjbc
m^I/byv)
mail:/home/fy138# cd extman-0.15-20060518/docs rax^NCPR#
i;9!aUL=
mail:/home/fy138/extman-0.15-20060518/docs# mysql -uroot Ds~K $)/t

[sYb !o) 
$:<j%C
打开extman-0.15-20060518/docs/init.sql 将里{crypt} 这些字符串删除,否则pop3可能无法登陆,如果你懒得去修改init.sql 可以安装完成后用phpmyadmin修改相关记录。 'B="jwbnW
g_-lB4_+
将uidnumber/gidnumber 改为postfix 的uid/gid 查看uid/gid 方法 fI] a8-dh
I^T"z
mail:/etc/postfix# id postfix _ZUJff#>
uid=105(postfix) gid=106(postfix) groups=106(postfix) nn}XyNH!`{
!0_{[email protected]
mail:/home/fy138/extman-0.15-20060518/docs# mysql -uroot =Qg"J 3A

( Uea_"
3、安装apache 2 Cq*:^ c%26amp;
mail:~# apt-get install apache2 92 K }t6
_ dbC/
4、安装php4 gzSMM`0 )c
mail:~# apt-get install php4 php4-mysql libapache2-mod-php4 phpmyadmin Zp{ , B
~0) drep
5、安装postfix QP!WL>
mail:~# apt-get install postfix postfix-mysql postfix-tls postfix-doc :%\,,Tiis
V \[(2}.
在弹出的对话框中选择No configuration。 u]vw[j$l
;\V>.';:
A、将extman目录下所有 mysql_virtul_*.cf 复制到/etc/postfix 目录下。 [email protected];J xZN
,3V-0cbq
mail:~#cd /home/fy138/extman-0.15-20060518/docs N~3K9z?s
C MFSbaX
注意,这里我的存放位置是/home/fy138 ,不要照搬了。 qWTr'^2)
FO ,)d4 E
mail:/home/fy138/extman-0.15-20060518/docs# cp mysql_virtual_*.cf /etc/postfix/
^B(sj*Fo
B、配置 /etc/postfix/main.cf,如果你的main.cf 已存先改名再重新编辑一个,加入下面的内容。 M$ %26amp;Qx\
Cvd[=%~V0
?`YM3to
###################BASE################## *'[email protected]
<` y 1"
myhostname=mail.extmail.org z_}[email protected]%26amp;L
mydomain = extmail.org { Vw{|q8[}
mydestination = $myhostname ^:;HH'
local_recipient_maps = Ujh >uXx[>
smtpd_banner = extmail.org ESMTP Mail System OTFD ft
message_size_limit = 14680064 rqW^\Sn
#################MySQL################ F :*H Y|
5:P)_-V
virtual_gid_maps=static:106virtual_uid_maps=static:105virtual_transport = virtual 2Z+"DF
virtual_alias_maps =mysql:/etc/postfix/mysql_virtual_alias_maps.cf Re,Z3l2
virtual_mailbox_base = /home/data/domains #W8_! B
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf Kk[email protected]%26amp;
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf [4 5Z=ZZ
 !!AnG(/
'md fxPu
################Quota################ MMy?eyP
virtual_create_maildirsize = yes \xL~${$9
virtual_mailbox_extended = yes 1J71+(@~
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf w \A Tx;-
virtual_mailbox_limit_override = yes 3.Ar ;
virtual_maildir_limit_message = Sorry,the user's Maildir has overdrawn his diskspace quota ,please tray again later. CN6c
virtual_overquota_bounce = yes "8kJXBqw
MZox4O
##############SASL#################### 5j2~S%26amp;
smtpd_sasl_auth_enable = yes ]ZR|MQ$Cik
smtpd_sasl2_auth_enable = yes j# sIr- L
smtpd_sasl_security_options = noanonymous t2VW'V`
broken_sasl_auth_clients = yes U{fr*_
r1gF#VO$
smtpd_recipient_restrictions = |L+vFSL
permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname,?reject_non_fqdn_sender,?reject_non_fqdn_recipient,?reject_unauth_destination,?reject_unauth_pipelining,?reject_invalid_hostname,?check_policy_service inet:127.0.0.1:10030  $ Ye
将 /etc/postfix/目录下面以mysql_virtul_*.cf 开头的文件,将里面的hosts=localhost 改为hosts=127.0.0.1 ,否则postfix 连接mysql 会出现问题 。 Seiv{}
~xId+ H
如果更改master.cf 将postfix 不以chroot 方式运行是否正常?还没有去试。 ]nGj9$=8$
gIxXz"
X!ZQ=JWN
gmjH-Ft
将/etc/postfix/master.cf中的下面几行把注释去掉 AH?gw\ 3n
346 n{K
/Hs%gb%
# only used by postfix-tls ]Skgm/ q
tlsmgr fifo - - n 300 1 tlsmgr *![Z4J*{
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes = CC03%
587 inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes TN>R:Z
,;!2'O^@
%n:b{"
6、安装cyrus-sasl2 G-vT/(Xrt
<QG0iCc
mail:~# apt-get install libsasl2 libsasl2-modules libsasl2-modules-sql 921c#RF
KTa ,B5_
创建/etc/postfix/sasl/smtpd.conf 加入下面的内容。 ck4{%26amp;zp%
z{ /fIHJg
ND%1wr `u
pwcheck_method:authdaemond ,{<9(%26amp;x*
log_level:3 `o*8wNh`)
mech_list:PLAIN LOGIN .W-SNqC)
authdaemond_path:/var/run/courier/authdaemon/socket _o?>t(BZp
注意:在进行smtpd 认证测试时,maillog 提示找不到 /var/run/courier/authdaemon/socket 通常是下面的问题 :1、权限 2、chroot 。 < #r""r'
3!5[=%26amp;
出错邮件日志: ((~p[8p
%R5N4#Mi
May 20 17:35:26 mail postfix/smtpd[1229]: warning: SASL authentication failure: cannot connect to Courier authdaemond: No such file or directory Y`{R7un
v8c$1MpBj
+6e>Sgv_B
解决方法(引用wangpenghui 原文,Thanks! ^_^,本人使用了第二种方法,另外还要注意smtpd.conf文件中的空格!) W#.$x66
1%lqUpr^
解决方法有如下两种, R%26amp;$?t%"F
1.对于postfix不做任何修改,而是在每次couier-authdaemon启动之后都创建 -fkueXA^
?,Mo.<%26amp;M0
SZ2ldmlk[X
ln -f /var/run/courier/authdaemon/socket /var/spool/postfix/var/run/courier/authdaemon/socket XlWh<
z})nA/ I}
的硬链接. 同时对于 [+Nu][email protected]
mSSYe%+dP
/var/run/courier/authdaemon/socket nV]8>S[4O
/var/spool/postfix/var/run/courier/authdaemon/socket 5 #OI
`h<(Wy
的整个路径赋予postfix用户于读权限。一般为755. #XEG\z
2.第二种就是修改postfix中master.cf文件的如下行: 9h{Eh
bW_`:
smtp inet n - - - - smtpd t|-I_]`X"
'1 L+>c
%FpMC.JE
o/2Z38=F
smtp inet n - n - - smtpd Ze7W96Px
}^y]bdD'
这样smtpd程序就不是运行在chroot状态,那么postfix的smtpd程序就可以通过smtpd.conf中的 5.Q"[*b=Y
authdaemond_path参数找到authdaemon的socket文件。不过也要注意权限问题,要不然就会出现connection refused的错误。这里指的权限是/var/run/courier/authdaemon/socket整个路径的权限,而不仅仅是socket文件的权限。 sK/i(-@k
.2Orf|
第二种方法相对于第一种方法来说,比较容易,但是增大了安全隐患。管理员可自行选择使用哪种方式。 $2~D;B>
当然,我这里也是抛砖引玉,肯定还有更好的解决办法。希望大家能够赐教。 F%26amp;mKJc!d;|
参考:http://www.extmail.org/forum/archive/2/0605/1723.html Wdo K(Z
?4V >.
7、安装courier-imap ld, qX
注意安装时,会提示你是否创建一个目录来放这些配置文件,要选择 YES 否则可能你的文件位置与下面配置的不一样。 m,2}^_
{Jm?Q}mUp
mail:~# apt-get install courier-authdaemon courier-authmysql courier-base courier-imap courier-pop courier-pop-ssl courier-imap-ssl xceT(
e~si{ *sJ
A、配置courier-authdaemon ,autdaemon 是邮件系统认证的主要软件,很多人无法通过SMTPD认证多数问题在这里。 kMhx7qBx[
gb;l.'o`
将/etc/courier/authdaemonrc 改名为 /etc/courier/authdaemonrc.bak %26amp;H>Y`Y
>V^hHb.S
_z]WII D
authmodulelist="authmysql" h_}mbMIOu
authmodulelistorig="authmysql" P[l-u^P
version="authdaemond.mysql" DXlRDDrt
daemons=5 ^@:v[ KPO
authdaemover=/var/run/courier/authdaemon a%_UNX<
subsystem=mail 9uT#[G
DEBUG_LOGIN=2 KrI[vk[I%26amp;3
DEFAULTOPTIONS="wbnodsn=1" WU/7Fi
将/etc/courier/authmysqlrc 改名为 authmysqlrc.bak ,创建/etc/courier/authmysqlrc 输入下面的内容。 ;Z8|5Do
18!^y`Y
AQgq,R#
MYSQL_SERVER localhost P"xhe7SRn
MYSQL_USERNAME extmail aJ2=bBFwc
MYSQL_PASSWord extmail (  X
MYSQL_PORT 0 4s-JE 
MYSQL_OPT 0 w$VB7 Ct
MYSQL_DATABASE extmail WJ.~>KG7
MYSQL_SELECT_CLAUSE SELECT username,password,"",uidnumber,gidnumber,CONCAT('/home/data/domains/',homedir),CONCAT('/home/data/domains/',maildir),quota,name FROM mailbox WHERE username = '$(local_part)@$(domain)' >af]jc{6N
修改authdaemond 的权限,让其它程序有权限访问他,重启authdaemond 3\7fzQM=
}j7]^yI
chmod -R +x /var/run/courier/authdaemon *r!]ob
T R#1#=,*
/etc/init.d/courier-authdaemon restart <9HOQA _
 R+!
B、创建测试用户的目录 y]oIJbjy0
BG8(^W'J{
mail:/etc/postfix# id postfix Kcy=^0.d
uid=105(postfix) gid=106(postfix) groups=106(postfix) V !vI/-YO
IZs|b'x(v
mail:/etc/courier# mkdir -p /home/data/domains/extmail.org/test F\vw9M v#
A`Y ]w
mail:/etc/courier# /usr/bin/maildirmake /home/data/domains/extmail.org/test/Maildir ^cn:5A.Z
mail:/etc/courier# chown -R 105:106 /home/data/domains/ 5Q4v?$
g86~^ |s
C、测试系统 Q H*W Gbx
Bg_]YkP+
打开一个窗口,输入 tail -f /var/log/mail.log w(m{.'
olX7?P0
将测试的用户名和密码进行base64 编码 E1[Q-zp9
:\T:6y
%perl -MMIME::Base64 -e 'print encode_base64("test\@extmail.org");' [email protected]#0{2n(
dGVzdEBleHRtYWlsLm9yZw== RW~fIv,/
%perl -MMIME::Base64 -e 'print encode_base64("test");' f'SB%!Ol
dGVzdA==测试smtpd 发邮件 tq-Ugu_I
d__!`o
mail:/etc/postfix# telnet localhost 25 eA=_ [email protected]
Trying 127.0.0.1... $-H'O Y
Connected to localhost. 8YrX<6X8A
Escape character is '^]'. [email protected]_
220 extmail.org ESMTP Mail System K8AjUc.
ehlo test qGHS/7\@D
250-mail.extmail.org @[>,7!b
250-PIPELINING M'W.cYH
250-SIZE 14680064 ?E|?
250-VRFY im1  +r,
250-ETRN c6OoP8XP
250-AUTH LOGIN PLAIN WV7e9CV\o*
250-AUTH=LOGIN PLAIN D`a6[p,
250 8BITMIME I! SzuAr\
auth login `b]=j
334 VXNlcm5hbWU6 }v*`rA,
dGVzdEBleHRtYWlsLm9yZw== k:q/*  
334 UGFzc3dvcmQ6 rW*.CV
dGVzdA== H*Hv l
235 Authentication successful ,[email protected]~nzpi
mail from: D~VwF2 d
250 Ok +?3k( b;
rcpt to: z\},s%26amp;
250 Ok D_XzG9
data ,:K2Lfa
354 End data with . X$]= =|M44
test {tcWq!<9
. iC(R C3?j
250 Ok: queued as C2FF131B85 "vNx`>OV
quit ]44$Ur![
221 Bye [email protected]P
Connection closed by foreign host. $B)-Hy73
mW7ezG!%
mail.log 应该有如下记录 /XBNoj|xg
% ?SO
9Vj774f }
May 20 19:37:32 mail postfix/smtpd[1763]: connect from localhost[127.0.0.1] !xCN`/hg
May 20 19:37:40 mail postfix/smtpd[1763]: disconnect from localhost[127.0.0.1] cJ[[email protected]\
May 20 19:37:43 mail postfix/smtpd[1763]: connect from localhost[127.0.0.1] uk.[;
May 20 19:38:24 mail authdaemond.mysql: received auth request, service=smtp, authtype=login F6gEnt =
May 20 19:38:24 mail authdaemond.mysql: authmysql: trying this module UGI pg
May 20 19:38:24 mail authdaemond.mysql: SQL query: SELECT username,password,"",uidnumber,gidnumber,CONCAT('/home/data/domains/',homedir),CONCAT('/home/data/domains/',maildir),quota,name FROM mailbox WHERE username = '[email protected]' `:U#`-)Xq
May 20 19:38:24 mail authdaemond.mysql: password matches successfully bSb)/z1
May 20 19:38:24 mail authdaemond.mysql: authmysql: sysusername=null, sysuserid=105, sysgroupid=106, homedir=/home/data/domains/extmail.org/test, [email protected], fullname=Test user, maildir=/home/data/domains/extmail.org/test/Maildir/, quota=5242880, options= z ;WA $a2
May 20 19:38:24 mail authdaemond.mysql: authmysql: clearpasswd=null>, passwd=uywiuN.XggXXc /_hw>B`\
May 20 19:38:24 mail authdaemond.mysql: authmysql: ACCEPT, username [email protected] OrS~LOj0zc
May 20 19:38:47 mail postfix/smtpd[1763]: C2FF131B85: client=localhost[127.0.0.1], sasl_method=login, [email protected] VL>1x V
May 20 19:38:52 mail postfix/cleanup[1770]: C2FF131B85: [email protected] pd#rC>:-
May 20 19:38:52 mail postfix/qmgr[1699]: C2FF131B85: [email protected], size=328, nrcpt=1 (queue active) T AYegH.
May 20 19:38:52 mail postfix/virtual[1772]: C2FF131B85: [email protected], relay=virtual, delay=16, status=sent (delivered to maildir) jizpl6fOw
May 20 19:38:52 mail postfix/qmgr[1699]: C2FF131B85: removed =bE-Z7
May 20 19:38:55 mail postfix/smtpd[1763]: disconnect from localhost[127.0.0.1] 7xB\ZX
TQt{.{nI
测试pop3 收邮件 Y=vpY{Ly%26amp;
^4"(/mi_2
XIs|D+uQg
mail:/etc/postfix# telnet localhost 110 +:@$ z],d
Trying 127.0.0.1... 7GZaQRhI
Connected to localhost. \v: b to
Escape character is '^]'. 3Zft
+OK Hello there. ~xh/!6W2F
user [email protected] 9%26amp;n+5v-IJB
+OK Password required. nW4'`:)>
pass test C8LrZ]=T
+OK logged in. 0S(+ >
list ;/!^":#
+OK POP3 clients that break here, they violate STD53. !9X 0<|x
1 539 vsI',O;W8
2 423 kw"aGP_w
. qb{[email protected]U
retr 2 ]cv%26amp;4/
+OK 423 octets follow. GX0iJ]n
Return-Path: [email protected] "heT4 \
X-Original-To: [email protected] 94Ly$Jo %26amp;
Delivered-To: [email protected] Lr38p/w
Received: from test (localhost [127.0.0.1]) )E1W0^YV
by mail.extmail.org (Postfix) with ESMTP id C2FF131B85 N=Uo^Ts^
for [email protected]; Sat, 20 May 2006 19:38:36 +0800 (CST) Y!1g7- ip
Message-Id: [email protected] $zU6TUvA!
Date: Sat, 20 May 2006 19:38:36 +0800 (CST) 8#{p[L#/
From: [email protected] hN$v~3 
To: undisclosed-recipients:; p^lsu
)w`U~-I
test v^
.  k=3:![
quit S5 2} JoR
+OK Bye-bye. [![_yw
Connection closed by foreign host. uxKQE;w
F4;#o
所产生的mail.log  {Q*BVR
) ;nX{}
如果你的pop3 信息没有我这里详细,请检查/etc/courier/pop3d 里面有没有打开 DEBUG_LOGIN=2 e]9 !i
d Rpvk%XM`
May 20 19:43:19 mail courierpop3login: Connection, ip=[::ffff:127.0.0.1] SF Fvtw 
May 20 19:43:28 mail courierpop3login: LOGIN: DEBUG: ip=[::ffff:127.0.0.1], command=USER oI"-WW%~L
May 20 19:43:32 mail courierpop3login: LOGIN: DEBUG: ip=[::ffff:127.0.0.1], command=PASS AEuF*i2
May 20 19:43:32 mail courierpop3login: LOGIN: DEBUG: ip=[::ffff:127.0.0.1], [email protected] #vgRN~
May 20 19:43:32 mail courierpop3login: LOGIN: DEBUG: ip=[::ffff:127.0.0.1], password=test %26amp;ZXW}u%+
May 20 19:43:32 mail courierpop3login: authdaemon: starting client module zx%bffB(;
May 20 19:43:32 mail authdaemond.mysql: received auth request, service=pop3, authtype=login {vj|d
May 20 19:43:32 mail authdaemond.mysql: authmysql: trying this module s *XF83;(
May 20 19:43:32 mail authdaemond.mysql: SQL query: SELECT username,password,"",uidnumber,gidnumber,CONCAT('/home/data/domains/',homedir),CONCAT('/home/data/domains/',maildir),quota,name FROM mailbox WHERE username = '[email protected]' {~PG{lS5
May 20 19:43:32 mail authdaemond.mysql: password matches successfully 4S3DQ ap/
May 20 19:43:32 mail authdaemond.mysql: authmysql: sysusername=null>, sysuserid=105, sysgroupid=106, homedir=/home/data/domains/extmail.org/test, [email protected], fullname=Test user, maildir=/home/data/domains/extmail.org/test/Maildir/, quota=5242880, options=null> .6{l]T[f4D
May 20 19:43:32 mail authdaemond.mysql: authmysql: clearpasswd=null>, passwd=uywiuN.XggXXc 2f|>(vbg*
May 20 19:43:32 mail authdaemond.mysql: authmysql: ACCEPT, username [email protected] BBr:>!
May 20 19:43:32 mail courierpop3login: authdaemon: ACCEPT, username [email protected] v}:?O`~J>
May 20 19:43:32 mail courierpop3login: LOGIN, [email protected], ip=[::ffff:127.0.0.1] ygJ>9nDn
May 20 19:43:46 mail courierpop3login: LOGOUT, [email protected], ip=[::ffff:127.0.0.1], top=0, retr=411, time=14 5/N+bq8`Y
如果日志里出现: ql!y-*eh
n#S%26amp;{Hv2
authdaemond.mysql: supplied password 'extmail' does not match encrypted password'{crypt}uywiuN.XggXXc' 请用phpmyadmin检查extmail数据库中mailbox 表中用户密码前面的{crypt}是否已经删除。 phFh2%99
k;qV? H
如果出现 "Permission denied",请检查目录的权限,及extmail 数据库中mailbox 表中的uidnumber/gidnumber 是否和目录的权限一致。 9)pLJ:s
 /a)?>%26amp;
至此,一个支持虚似域的邮件系统已配置完成,下面继续配置杀毒,反垃圾邮件。 1j%F\F'
4$t[r8v%5
3}P* zh
1q [;^!
三、安装内容过滤反垃圾邮件 'Y7F$(SaG
1、安装软件包 8"?A=8K
mail:~# apt-get install amavisd-new spamassassin clamav clamav-daemon clamav-freshclam arc bzip2 lzop zoo cpio =|O Q*|
NKV9#%26amp;y
在/etc/postfix/main.cf 加入 Gv{4(tG
G)glSF}U>
content_filter = smtp-amavis:[127.0.0.1]:10024 |_C1</a
+U%Mu5Lu{
在/etc/postfix/master.cf 加入 jmf`H|4
1kUPEhO
~C"(a
smtp-amavis unix - - n - 2 smtp C,t+-Hnd
-o smtp_data_done_timeout=1200  M$bHbn`
-o disable_dns_lookups=yes j0V+%V\'
6#e7L
SvK'W4C
127.0.0.1:10025 inet n - n - - smtpd ON9k K
-o content_filter= \[#D3}M
-o local_recipient_maps= !ZUv~Gz
-o relay_recipient_maps= 0[$~iGR`
-o smtpd_restriction_classes= oaB2 8%26amp;o
-o smtpd_client_restrictions= jn6W 3%26amp;3
-o smtpd_helo_restrictions= 3Q;Pj-D:C
-o smtpd_sender_restrictions= nCFrMIl
-o smtpd_recipient_restrictions=permit_mynetworks,reject GqB4: #du
-o mynetworks=127.0.0.0/8 !teKbIq0.
配置amavisd-new ,编辑/etc/amavis/amavisd.conf,修改下面的内容。 rF)`s.
:jA8kwsfYz
大约在文件的78行位置。 50N25P
$vSQcAEN^$
$mydomain = 'extmail.org'; @ d0I6:
%iY^
跟据你自己的需要修改发现病毒垃圾邮件等的处理方法。 v0/:Y/*qi(
}Ds/N
D_DISCARD 丢弃,D_BOUNCE 退信,D_REJECT 拒绝,D_PASS 通过. u7iq nIK5
d?opA%
$final_virus_destiny = D_DISCARD; # (defaults to D_BOUNCE) )ww9 5}k)
$final_banned_destiny = D_BOUNCE; # (defaults to D_BOUNCE) *wCq8!EGe
$final_spam_destiny = D_REJECT; # (defaults to D_REJECT) DwQB5n
$final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested %26amp;DU0]aB3
6`hmW4qY=
配置spamassassin,修改/etc/default/spamassassin @20n>p
_T7qs?)o
ENABLED=1 ;JfHw
@*WO$V0;
2、让他随系统启动。 aE%)nPP:M
A、配置clamav 以支持amavisd-new 杀毒 >31/~ 
1N 6M3o
编辑/etc/clamav/clamd.conf,将User clamav 改为 Qqy7SF T[
p.F{p
User amavis 8 :/ Ct*
:
B、修改目录的权限 C~xD!
QQ%26amp;.mm
{ %26amp;'\KI
mail:/etc/clamav# chown -R amavis:amavis /var/log/clamav/ _aF9eJeL^
mail:/etc/clamav# chown -R amavis:amavis /var/run/clamav/ H`>P%26amp;A=if:
mail:/etc/clamav# chown -R amavis:amavis /var/lib/clamav fNv"gmW8
(!p`
编辑/etc/clamav/freshclam.con,将DatabaSEOwner clamav改为 -^KTmDs
}{KkE% k
DatabaseOwner amavis zb[pE_H{@
IT.Be]b"J
C、重启服务 N5 Q(
ee YS-a5
mail:/etc/clamav# /etc/init.d/clamav-daemon restart {Q{HsH[n}
x
mail:/etc/clamav# /etc/init.d/clamav-freshclam restart t/wk { DG
LZ[1?-Cf
D、发病毒测试 0ZupE,en0a
>q (/|_.*
ZWc"Ny6As%
mail:/var/run/clamav# telnet localhost 25 /v%q [email protected]
Trying 127.0.0.1... (>J;3L
Connected to localhost. u}Gv%_J
Escape character is '^]'. ''W 7oiP8
220 extmail.org ESMTP Mail System LEur2D*l
ehlo test m?tJar/8
250-mail.extmail.org XsSW(%94\
250-PIPELINING JnooLq9
250-SIZE 14680064 m{u%26amp;sS~
250-VRFY dpm
250-ETRN 1}'fd nn
250-AUTH LOGIN PLAIN nDBJ.H5
250-AUTH=LOGIN PLAIN A'C;a|e|
250 8BITMIME )'-5GZ
mail from: E%26amp;~`sH%26amp;
250 Ok [ny7O[#a
rcpt to: (thL!65
250 Ok }T~6O[]
data [-n/rH Md
354 End data with CR>LF>.CR>LF> cFgoy.I
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* !/6;i!iQG
. Iz~ mz_
250 Ok: queued as 8032C31B8B AkU8( r.K
quit ,$A%26amp;j6aE
221 Bye ){1N=lF;3j
Connection closed by foreign host. @Pn/7K(
所产生的mail.log :PKwaL/
|A slv
?m<,0?'"^
May 20 22:51:43 mail postfix/smtpd[3362]: connect from localhost[127.0.0.1] {I(Na1y%2
May 20 22:52:07 mail postfix/smtpd[3362]: 8032C31B8B: client=localhost[127.0.0.1] \p:1~KUV)k
May 20 22:52:18 mail postfix/cleanup[3368]: 8032C31B8B: [email protected]> ,Z`N jn!
May 20 22:52:18 mail postfix/qmgr[2900]: 8032C31B8B: [email protected]>, size=392, nrcpt=1 (queue active) >V[,%26amp;v9Cj
May 20 22:52:18 mail postfix/smtpd[3371]: connect from localhost[127.0.0.1] 7+ 2X4.*F
May 20 22:52:18 mail postfix/smtpd[3371]: 46E6831B8C: client=localhost[127.0.0.1] yg$Di_ok
May 20 22:52:18 mail postfix/cleanup[3368]: 46E6831B8C: [email protected]> dQVXwXot
May 20 22:52:18 mail postfix/qmgr[2900]: 46E6831B8C: from=>, size=2268, nrcpt=1 (queue active) y+\,[\U
May 20 22:52:18 mail amavis[2687]: (02687-02) INFECTED (Eicar-Test-Signature), [email protected]> -> [email protected]>, quarantine virus-20060520-225218-02687-02, Message-ID: [email protected]>, Hits: - oDt92(|V
May 20 22:52:18 mail postfix/smtp[3370]: 8032C31B8B: [email protected]>, relay=127.0.0.1[127.0.0.1], delay=21, status=sent (250 2.7.1 Ok, discarded, id=02687-02 - VIRUS: Eicar-Test-Signature) ; L!19 8ak
May 20 22:52:18 mail postfix/qmgr[2900]: 8032C31B8B: removed v1%'jxG#
May 20 22:52:18 mail postfix/smtpd[3371]: disconnect from localhost[127.0.0.1] |L8JR
May 20 22:52:20 mail postfix/smtpd[3362]: disconnect from localhost[127.0.0.1] YCC4R_w8~
xS?T!I.z
#f{ /J5p^
7>lD }o
3、安装extmail/extman +:P^ IJ
A、修改apache )bk\i\1j
HuuSHh$yB
修改apache 让他以postfix 身份运行,否则extmail 创建的目录邮件系统无法读取,extmail 也无法读取目录。 (r=ww
.Ux}1o_f
或者你可以重新创建一个用户,修改/etc/main.cf中的virtual_gid_maps,virtual_uid_maps就行了。 4UcylC 9b
7j K8?O
修改/etc/apache2/apache.conf 让他以posftix身份执行。 {$-pa+*E
w(H6s1U1
4hDgokIO
-#-~u+f
User www-data ~9 %26amp;jWd
Group www-data YR3E/
"[Shc>
改为 7ot]%26amp;_5
2>g88? s
User postfix gw.%<`+v
Group postfix E>QE $3\D
3f*z%<(f
加入虚似主机设置,创建/etc/apache2/site-enable/extmail.conf 输入下面的内容。 %y l6a8j0
u]x8=N
'"8C6B;g
Alias /extman/cgi/ /var/www/cgi-bin/extman/cgi/ B[zE=z22
Alias /extman /var/www/cgi-bin/extman/html/ 'qXE*u8 wH
-\` GYfC
SetHandler cgi-script t5[#Mj>7pv
Options +ExecCGI ^c$mp
AllowOverride All / Pym a_
/C*Gi u
hH x- i
[email protected];6zSM
# config for ExtMail ZKB6ZUmh
Alias /extmail/cgi/ /var/www//cgi-bin/extmail/cgi/ o}H.rkj\v
Alias /extmail /var/www/cgi-bin/extmail/html/ qS7
o81ip41'
H7>GO02J9
SetHandler cgi-script ~t.6|{n
Options +ExecCGI |oHj,[1
AllowOverride All Z8# MxsL
j ]u K<
"`%0/huR5
B、重启apache g(%26amp; 2J
7 bI
mail:~# /etc/init.d/apache2 restart [email protected]#
9g $6Lk$)k
将文件复制到/var/www/cgi-bin/ ,如果你的目录没有cgi-bin这个文件夹,自己创建一个就可以了。 y^dvCIMi9
{H#;v(JXw
mail:/var/www/cgi-bin# cp -r /home/fy138/extmail-0.23-20060219/ ./extmail <*O;:hZpS]
U$+ xt;
mail:/var/www/cgi-bin# cp -r /home/fy138/extman-0.15-20060518/ ./extman nsRGwBHqQC
|u OL>r?Y
C、配置extmail e;fWJ
%26amp;c`$Q Iy
mail:/var/www/cgi-bin# cd extmail/ oV~CFY
$LZ)?w%r
修改webmail.cf 下面的选项(注意系统没有webmail.cf 这个文件,需要从webmail.cf.default 复制一份) d i]~0yky
F# P ]'X;
SYS_MAILDIR_BASE = /home/data/domains #邮件存储的位置。 [<9Xs`G
!bLRuhv-@
SYS_MYSQL_USER = extmail #数据库的用户名 2dXnkcxL
SYS_MYSQL_PASS = extmail #数据库的密码 a00 HLIR
SYS_MYSQL_DB = extmail #数据名字 ~;}sslY4
a8#M^ j5
SYS_MYSQL_SOCKET = /var/run/mysqld/mysqld.sock #mysql socket的位置 ? h4HNG]
di5#%26amp;uxu\
打开浏览器输入: http://yourip/extmail/即可看到extmail 的登陆窗口。 L!`W j)
2oJFLaR}
测试的用户名:test 密码:test 域:extmail.org 2?c/VbWW
;i_yR\~W
D、配置extman U 1+c2
W5I\-/m%
mail:/var/www/cgi-bin# cd extman sZI}i8
N\oDJ~V y
编辑webman.cf 修改下面的选项 0`A %4(,
o.:w(~02R
SYS_MAILDIR_BASE = /home/data/domains W]$+\=vQ~
u";F_#FsD
SYS_MYSQL_SOCKET = /var/run/mysqld/mysqld.sock yAs6/k{F
6Q {,zkk
创建extman 的临时目录 XXEqSyPXM
Ly!za
mail:/var/www/cgi-bin/extman# mkdir /tmp/extman Q$ [!aSGi=
mail:/var/www/cgi-bin/extman# chmod 777 /tmp/extman/ w_"nr.'7$
R{6Xf%26amp;vfw
创建extman 与extmail 软件包的连接(因为某些包在extmail 的目录里,所以要做链接) o^RQ#q9Po
a)f [OuH
mail:/var/www/cgi-bin/extman/libs/Ext# ./buildlink.sh build /var/www/cgi-bin/extmail/libs/Ext/ 4<6tM}>Z2
R*m0\4K6)
打开浏览器输入http://yourip/extman/ /Be%G"4
I9Odd OK<
用户名为:[email protected] 密码:extmail }^$- NP*p
'=\`5lEf
至此extmail/extman 已安装完成,至于extman 的图形日志安装请看 (PGpExhE
Yl{~!v+
http://www.extmail.org/forum/read.php?tid=1524%26amp;fpage=1%26amp;toread=1 wRl$~$
keZz
4、安装slockd %}^z]gX:0
详细的安装过程请看 LlFJ;q
Rf;x%26amp;La
http://www.extmail.org/forum/read.php?tid=1463%26amp;fpage=1%26amp;toread=1 ^ad[/uvwt
:BT*J
复制安装文件 ^y +t;20`
O'Wfdh#D
mail:/usr/local# cp -r /home/fy138/slockd-0.08/ ./slockd ?X@<=R
BJ;2Q>
修改slockd 目config录下的 main.cf ,将setsid 1 的注释去掉。 oT6d] ?+
|Z%26amp;8Qc
修改postfix 的/etc/postfix/main.cf 让他支持slockd lvGE ^cJ
lMP~dm}E
注意第一行是靠边的,第二行开始都最后前面都要留一个空格的位置,意思是告诉postfix 一行写不下,换了行。 [email protected]")W>k
`R}C R'B
%26amp; D_uXH
smtpd_recipient_restrictions = 9516-t$:,
permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname,?reject_non_fqdn_sender,?reject_non_fqdn_recipient,?reject_unauth_destination,?reject_unauth_pipelining,?reject_invalid_hostname,?check_policy_service inet:127.0.0.1:10030 T\y, Eq!Y|
修改完成后执行 ;CHMexV{
)<,y
mail:/usr/local/slockd# /etc/init.d/postfix reload A/Zd! S!
>O3u
至于如何让slockd 随系统启动目前还不知道,如果你知道请告诉我。