作者:冯勇 fengyongchuang # yahoo.com.cn (≠&键盘人生$:71633908)
+<&m^n1 | 8zlE/i 日期:2006-05-18
+KuwkyIyM gdVqI8%]Y 技术支持网站:www.extmail.org
:y9fJ X<eP^s& 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( &z^Rc2rvs 版权所有,复制或转载时请保留作者信息。尊重他人的劳动成果就等于尊重自己。
w|jzXPmZ1 fN$#UwOm 如有问题请到下面网址提问:
n6&?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& 一直想写一篇DEBIAN 下的邮件系统安装文档,因为自己太懒一直没有动手,今天闲着没事,把文档写出来,供各位参考同时给自己留一份笔记。
mau%)iD ^h6g.eO@ 这次没有使用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
@~5-@cg:$ bP&*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 S6j@ 4、主机名
0z_fj'0 安装时可以输入主机名,或者编辑/etc/host.conf 修改你的主机名。
S }Bf.K SNGl"(f 这里使用 mail.extmail.org 为例。
pt4ox"*5 f5ZFZO;B 5、更新你的软件包
>!<qt%Q WR 在复制完文件后,会出现一个配置过程,在配置 apt 那里添加一个安装源,选择ftp 现先择 china 可以选择下面两个安装源:
5nnhW?@7<K NHu/*++= ftp.linuxforum.net 或 debian.cn99.com
{+dz_A E= 9<Q#Z 本人用的是网通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&Rqj~! qbQ`V u@ 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 & 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 <extmail.sql
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_{XQ8gT@ mail:/home/fy138/extman-0.15-20060518/docs# mysql -uroot <init.sql
=Qg"J 3A ( Uea_" 3、安装apache 2
Cq*:^ c& 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 目录下。
r@;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/
<U&QoZdVO ^B(sj*Fo B、配置 /etc/postfix/main.cf,如果你的main.cf 已存先改名再重新编辑一个,加入下面的内容。
M$ &Qx\ Cvd[=%~V0 ?`YM3to ###################BASE##################
*'WZHOg@ <` y 1" myhostname=mail.extmail.org
z_}q!@ht&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
Kk0@TUvB& 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& 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{&zp% z{ /fIHJg ND%1wr `u pwcheck_method:authdaemond
,{<9(&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[=& 出错邮件日志:
((~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&$?t%"F 1.对于postfix不做任何修改,而是在每次couier-authdaemon启动之后都创建
-fkueXA^ ?,Mo.<&M0 SZ2ldmlk[X ln -f /var/run/courier/authdaemon/socket /var/spool/postfix/var/run/courier/authdaemon/socket
XlWh< z})nA/ I} 的硬链接. 同时对于
[+Nu]-@ 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&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
&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&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");'
uk@#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=_ w@7 Trying 127.0.0.1...
$-H'O Y Connected to localhost.
8YrX<6X8A Escape character is '^]'.
ru9M@7xM_ 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
,XgQ@~nzpi mail from:<test@test.com>
D~VwF2 d 250 Ok
+?3k( b; rcpt to:<test@extmail.org>
z\},s& 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
rovLVc@P Connection closed by foreign host.
$B)-Hy73 mW7ezG!% mail.log 应该有如下记录
/XBNoj|xg % ?SO<BcC 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[47@o\ May 20 19:37:43 mail postfix/smtpd[1763]: connect from localhost[127.0.0.1]
uk.[;<eW 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 = 'test@extmail.org'
`: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, address=test@extmail.org, 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 test@extmail.org
OrS~LOj0zc May 20 19:38:47 mail postfix/smtpd[1763]: C2FF131B85: client=localhost[127.0.0.1], sasl_method=login, sasl_username=test@extmail.org
VL>1x V May 20 19:38:52 mail postfix/cleanup[1770]: C2FF131B85: message-id=20060520113836.C2FF131B85@mail.extmail.org
pd#rC>:- May 20 19:38:52 mail postfix/qmgr[1699]: C2FF131B85: from=test@test.com, size=328, nrcpt=1 (queue active)
T AYegH. May 20 19:38:52 mail postfix/virtual[1772]: C2FF131B85: to=test@extmail.org, 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& ^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 test@extmail.org
9&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{LuI@U retr 2
]cv&4/ +OK 423 octets follow.
GX0iJ]n Return-Path: test@test.com
"heT4 \ X-Original-To: test@extmail.org
94Ly$Jo & Delivered-To: test@extmail.org
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 test@extmail.org; Sat, 20 May 2006 19:38:36 +0800 (CST)
Y!1g7- ip Message-Id: 20060520113836.C2FF131B85@mail.extmail.org
$zU6TUvA! Date: Sat, 20 May 2006 19:38:36 +0800 (CST)
8#{p[L#/ From: test@test.com
hN$v~3 To: undisclosed-recipients:;
p^lsu )w`U~-I test
v^<JS[xu .
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], username=test@extmail.org
#vgRN~ May 20 19:43:32 mail courierpop3login: LOGIN: DEBUG: ip=[::ffff:127.0.0.1], password=test
&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 = 'test@extmail.org'
{~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, address=test@extmail.org, 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 test@extmail.org
BBr:>! May 20 19:43:32 mail courierpop3login: authdaemon: ACCEPT, username test@extmail.org
v}:?O`~J> May 20 19:43:32 mail courierpop3login: LOGIN, user=test@extmail.org, ip=[::ffff:127.0.0.1]
ygJ>9nDn May 20 19:43:46 mail courierpop3login: LOGOUT, user=test@extmail.org, ip=[::ffff:127.0.0.1], top=0, retr=411, time=14
5/N+bq8`Y 如果日志里出现:
ql!y-*eh n#S&{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)?>& 至此,一个支持虚似域的邮件系统已配置完成,下面继续配置杀毒,反垃圾邮件。
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#&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<WE( 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&o -o smtpd_client_restrictions=
jn6W 3&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
&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* :<G'X +({ B、修改目录的权限
C~xD! QQ&.mm { &'\KI mail:/etc/clamav# chown -R amavis:amavis /var/log/clamav/
_aF9eJeL^ mail:/etc/clamav# chown -R amavis:amavis /var/run/clamav/
H`>P&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<yhi_\ 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 U7.@ 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&sS~ 250-VRFY
dpm<r N 250-ETRN
1}'fd nn 250-AUTH LOGIN PLAIN
nDBJ.H5 250-AUTH=LOGIN PLAIN
A'C;a|e| 250 8BITMIME
)'-5GZ mail from:<test@test.com>
E&~`sH& 250 Ok
[ny7O[#a rcpt to:<test@extmail.org>
(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&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: message-id=20060520145157.8032C31B8B@mail.extmail.org>
,Z`N jn! May 20 22:52:18 mail postfix/qmgr[2900]: 8032C31B8B: from=test@test.com>, size=392, nrcpt=1 (queue active)
>V[,&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: message-id=VA02687-02@mail.extmail.org>
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), test@test.com> -> test@extmail.org>, quarantine virus-20060520-225218-02687-02, Message-ID: 20060520145157.8032C31B8B@mail.extmail.org>, Hits: -
oDt92(|V May 20 22:52:18 mail postfix/smtp[3370]: 8032C31B8B: to=test@extmail.org>, 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<Qyk .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 &jWd Group www-data
YR3E/ "[Shc> 改为
7ot]&_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 <Location "/extman/cgi">
-\` GYfC SetHandler cgi-script
t5[#Mj>7pv Options +ExecCGI
^c$mp AllowOverride All
/ Pym a_ </Location>
/C*Gi u hH x- i 7G@;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<B_U o81ip41' <Location "/extmail/cgi">
H7>GO02J9 SetHandler cgi-script
~t.6|{n Options +ExecCGI
|oHj,[1 AllowOverride All
Z8# MxsL </Location>
j ]u K< "`%0/huR5 B、重启apache
g(& 2J 7 bI mail:~# /etc/init.d/apache2 restart
8@i# 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 &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#&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&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< 用户名为:root@extmail.org 密码:extmail
}^$- NP*p '=\`5lEf 至此extmail/extman 已安装完成,至于extman 的图形日志安装请看
(PGpExhE Yl{~!v+ http://www.extmail.org/forum/read.php?tid=1524&fpage=1&toread=1
wRl$~$ keZz<Qo. 4、安装slockd
%}^z]gX:0 详细的安装过程请看
LlFJ;q Rf;x&La http://www.extmail.org/forum/read.php?tid=1463&fpage=1&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&8Qc 修改postfix 的/etc/postfix/main.cf 让他支持slockd
lvGE ^cJ lMP~dm}E 注意第一行是靠边的,第二行开始都最后前面都要留一个空格的位置,意思是告诉postfix 一行写不下,换了行。
$P@bG")W>k `R}C R'B & 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 随系统启动目前还不知道,如果你知道请告诉我。