FreeBSD6.2 + Postfix +实现功能全面的邮件系统

上一篇 / 下一篇  2007-08-03 14:29:51 / 个人分类:MailTech

1dK'_;rL ioL0FreeBSD6.2 + Postfix + Cyrus Sasl2 + Courier-imap + Mysql + Extmail+实现功能全面的邮件系统  转载请注明来自http://www.muduo.net/?chunsheng

1o~/q? XM^0木铎校园 BBS 社区2iS"x9G-Sw

FreeBSD6.2 + Postfix + Cyrus Sasl2 + Courier-imap + Mysql + Extmail+实现功能全面的邮件系统
,Q-Pe Y4TM0主要参考:冯勇的 《在Freebsd上建立ISP级的邮件系统》下载:http://www.muduo.net/batch.download.php?aid=866

w1\U-@%b0木铎校园 BBS 社区(Zq }!t'|j1r;c

具体安装步骤参考 冯勇 先生的 《在Freebsd上建立ISP级的邮件系统》,这里只是针对本人安装过程中所遇到的问题或是需要注意的点进行描述

Mpla0nD$`rqv0木铎校园 BBS 社区#gY+U'q1Y'Q @

1,安装系统木铎校园 BBS 社区H2G"a r4fm'|Y
2,安装mysql
#C+P-`L$` K/s&W'@L3y$l03,安装apache:因为extmail和extman需要使用apache的cgi功能,同时extmail官方推介使用 apache+suexec的运行模式,所以,在ports安装apache的时候,木铎校园 BBS 社区pw.[J3f9i2D2k
 cd /usr/ports/www/apache22
9U\ nFf0CQ0 make SUEXEC_MODULES=yes SUEXEC_DOCROOT=/usr/local/www install clean木铎校园 BBS 社区 xYM'^C \*E,Sa
 这样会安装suexec模块,同时指定SUEXEC_DOCROOT的目录为 /usr/local/www ,如果你的extman和extmail的目录不在/usr/local/www下,请自行修改 SUEXEC_DOCROOT(如果在安装apache的时候没有指定SUEXEC_DOCROOT,则需要下载apache的源码自行编译,方法如下:
vYtxT;K0 tar zxvf apachexxx.tgz
g ^xd{4[Lf0 cd httpd2.2
FK"e O(l+a"A4Qh o!ct&q0 ./configure '--enable--enable-suexec' '--with-suexec-calle=nobody' '--with-suexec-docroot=/usr/local/www/' '--with-suexec-logfile=/var/log/httpd-suexec.log'
'm7w8vM6_d-bnAG:~0 make suexec木铎校园 BBS 社区 C |NzS
 make install-suexec (或直接copy suexec到已经安装的suexec的路径,chmod 4755 /some/path/suexec)木铎校园 BBS 社区W s$SV r*t
 以上部分请根据情况自行修改 
h]!L-i/^0木铎校园 BBS 社区%jE FN IKn`
4,解压extman到/usr/local/www木铎校园 BBS 社区3dW?%k{4Ol9{V
 cd /some/path/extman/docs木铎校园 BBS 社区cP.N6Q _"EO
 mysql -uroot -p < extmail.sql
o*F'PVq2}/F)~ Uv r0 mysql -uroot -p < init.sql
;M6Q5M3|NLS;t0 关于这两个sql所执行操作,请自行参考对应的sql文件,其主要作用是:木铎校园 BBS 社区M2ff*c\@sQ
 1)建立数据库结构,进行数据表初始化,供邮件系统使用
uza'S%qq1G0 2)建立相应的账户,指定其权限木铎校园 BBS 社区0~ g g\ZKi
5,安装Courier-imap
"F:_3h@ Nz0 在ports中安装时,指定其支持openssl及MySQL木铎校园 BBS 社区u_8H6Bj&Fu c
 修改rc.conf ,及/var/run/authdaemon的权限 : chmod a+x /var/run/authdaemond木铎校园 BBS 社区%F5R$wq{(e'J,B&e+C@C
 修改/usr/local/etc/authlib/authdaemonrc,及authmysqlrc文件
cvr'W,b1o;H Y0 注意authdaemonrc文件中 DEBUG_LOGIN=2的情况,默认的maillog文件(/var/log/maillog)中会记录用户登录的明文密码木铎校园 BBS 社区)G ?!T_Mk2C8k.q!@
6,安装Cyrus-SASL2
[h$Bb"O0 ports安装时需要注意 make WITH_MYSQL=yes WITH_AUTHDAEMON=yes install clean
t#H!Y ^f^,L0 其中WITH_AUTHDAEMON在该port的Makefile中没有,不知道为何这里要加入这个(??)木铎校园 BBS 社区 q0U&d[FeY TKbp
 创建/usr/local/lib/sasl2/smtpd.conf,并增加内容
c"\*w1cs;C+|EE07,安装Postfix
0[ Y$A~6~0 ports安装时选择:SASL2,TLS,MYSQL,VDA,过程中有两个问题,选择默认
:^Vqn6@#b3a{7bR GZ0 执行初始化操作
'C|Hf/\F0 配置随机启动
}"I$i1b%`0 如果有/etc/periodic.conf文件,修改其内容:
&KqR+Ef M-Re^0 daily_clean_hoststat_enable="NO"木铎校园 BBS 社区EM]%|c-sc4u s(z[th
 daily_status_mail_rejects_enable="NO"木铎校园 BBS 社区 W3p:_m*H9a
 daily_status_include_submit_mail="NO"
A7uDJI/{0 daily_submit_queuerun="NO"木铎校园 BBS 社区q!Y$vxk!h
 Postfix的配置文件在/usr/local/etc/postfix目录下,main.cf和master.cf
A`r ab5vlD.u0 请参考冯勇先生的进行修改
lv6mT \0cg3R08,重新安装maildrop木铎校园 BBS 社区QIu7q(yoT,a
 make WITH_AUTHLIB=yes install clean木铎校园 BBS 社区#k1]TVG:vN;q(} f
 然后authlib会出现OPTIONS的提示,选择AUTH_MYSQL木铎校园 BBS 社区(J$D7H a{
 木铎校园 BBS 社区9U0K$RP.U0H M E
9,修改 /usr/local/etc/postfix/master.cf木铎校园 BBS 社区 OVS8I}x^U
 修改maildrop一行为:
+gp-MX c2fT0maildrop  unix  -       n       n       -       -       pipe
LS'[7jHJ4s"F0  flags=DRhu user=vuser argv=/usr/local/bin/maildrop -d${user}@${nexthop} ${recipient} ${user} ${extension} ${nexthop}木铎校园 BBS 社区I V-fI R o
 注意两点:木铎校园 BBS 社区v*kI-Za
 user=vuser木铎校园 BBS 社区S a\e2li
 argv=/usr/local/bin/maildrop
;M!Ke^)W*R0]u)@Z0 argv为maildrop的路径
lX"D6hJ CE0 下面将详细解释user的设置:
?+Mbnw L{0 apache suexec要求cgi程序的文件属主同apache配置中的SuexecUserGroup一致,同时,extmail及extman的cgi在用户及管理员配置的时候生成的关于邮件(主要是domains及mail user及的Maildir及目录下的各种文件)的属主同SuexecUserGroup的配置,并且为其他组用户不能读写的权限,而这些文件除了extman及extmail要对其进行操作外,postfix中的maildrop也要对其进行操作,所以,apache suexec的SuexecUserGroup要同maildrop的用户一致。木铎校园 BBS 社区$p~-v)^ hN_

木铎校园 BBS 社区^u;]aH


dZ1N x \Uyw010,检查需要自动启动的程序,参考相应资料进行相应配置的修改,基本上这个邮件系统就可以用了木铎校园 BBS 社区2I1R0cQ%R~

木铎校园 BBS 社区N^8yh^iG uh

11,关于postfix的master.cf,简单的解释一下我遇到的问题

a&t2\O.Bmvb0

.T6j+EGRdH0readme_directory = no
;?!WWmO0smtpd_helo_required = yes
I i6~t1n | p9`0strict_rfc821_envelopes = yes木铎校园 BBS 社区+f O%YRw
#smtpd_etrn_restrictions =  permit_mynetworks,reject
:p YVM%]X0smtpd_etrn_restrictions =  reject木铎校园 BBS 社区#F9{,C;W x;~w

木铎校园 BBS 社区V}1`'R:QGud

local_recipient_maps =木铎校园 BBS 社区Z mY3H.[+^|3~)C
#mailbox_command = /usr/local/bin/deliverquota -w 90 ~/Maildir
5Spv|6@#i }0command_directory = /usr/local/sbin木铎校园 BBS 社区_%Y"_m _x$l@'b
local_transport = virtual木铎校园 BBS 社区.F.G\Y,A!f%E*OJ@&^*I

木铎校园 BBS 社区A&|K9y(W\9f;S

################MYSQL###############木铎校园 BBS 社区0hFm!{t:o
virtual_transport = virtual木铎校园 BBS 社区^i5`.GpS
#virtual_mailbox_base = /var/mail/木铎校园 BBS 社区.m.K9PikZg't
#virtual_transport= maildrop
Sm Dt,s(Z0#maildrop_destination_recipient_limit = 1
J[QXZ g7X#}0#maildrop_destination_concurrency_limit = 1
LinV4wN.fy0virtual_gid_maps = static:125木铎校园 BBS 社区C ]h*J-G,RAt._4p\
virtual_uid_maps =static:125
l!N a H#uIBE AD0virtual_mailbox_base = /data1/domains木铎校园 BBS 社区H$gL A1Uk Fp
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
XZ/TT2c.vypJ0virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf木铎校园 BBS 社区T4Wd^ [1B L
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf

H1p$o"d5] q_2@0^0木铎校园 BBS 社区{"K*R K d-q

###############Quota#############木铎校园 BBS 社区nS F"V$Tl
message_size_limit = 5242880
E4}Q%Y@0virtual_mailbox_limit_inbox = no木铎校园 BBS 社区|*PbPCB
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql_virtual_limit_maps.cf
B:Ew4cg$F_0virtual_mailbox_limit_override = yes木铎校园 BBS 社区;C#Hj8C'K:Y!Sz)G
virtual_maildir_extended = yes木铎校园 BBS 社区9P5sdQw
virtual_create_maildirsize = yes
#k:K7z4mfW%[3O6x0virtual_mailbox_limit = 52428800
#|3B/yl-R0virtual_mailbox_extended = yes木铎校园 BBS 社区JK'_'S7B*fU+g4zTt(J
virtual_maildir_limit_message = Sorry,the user's maildir has overdrawn his diskspace quota,please try again later.木铎校园 BBS 社区f9v0])W)I`4p U8Z

木铎校园 BBS 社区5h XM2o7UZ {P

##########SASL##########
3C5o"F4m%[W0smtpd_sasl_auth_clients = yes木铎校园 BBS 社区;ww"|5R*h$g?5@f
smtpd_sasl_auth_enable = yes木铎校园 BBS 社区5q0Z]x@ o5[
smtpd_sasl_security_options = noanonymous木铎校园 BBS 社区#\;{v S p'L(y8fd
broken_sasl_auth_clients = yes
,g!H w$_ r k0#smtpd_sasl_local_domain = $mydomain
;j1n\]9Y#}Y0smtpd_sasl_application_name = smtpd木铎校园 BBS 社区8N} _W+r*PZ8j

木铎校园 BBS 社区8r)iI5]_6m,I

#取得邮件系统中的发件列表,禁止不在列表中的用户发送邮件
X7Nv J[m`#]m0smtpd_sender_login_maps =木铎校园 BBS 社区 o[5|_@3w~ v+A
    mysql:/usr/local/etc/postfix/mysql_virtual_sender_maps.cf,
v7l:v:N!G[{0    mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf

%[t,?6T_8V0

I"|Bj9b6n0smtpd_reject_unlisted_sender = yes

B x1tcB!^.Fh0

9i/Sg B!d0#对发件人的限制,同时禁止不登陆即可发送到本域的邮件
H7bJ }/_!G0smtpd_sender_restrictions =
(n4M4W*WJ\0    permit_sasl_authenticated,
+p%YZ*}P3B[R3`0#    permit_mynetworks,木铎校园 BBS 社区 sZA#j!Bo/L5}m
    reject_unknown_sender_domain,
K f?T"^!M0    reject_non_fqdn_sender,木铎校园 BBS 社区,H{,VLCff
    reject_sender_login_mismatch,木铎校园 BBS 社区}#IGUj\,R])g
    reject_authenticated_sender_login_mismatch,
s? ]#x7^+Gs0    reject_unauthenticated_sender_login_mismatch,
Z$aQ'e YsK&N0    reject

wsYmB ^#];H0木铎校园 BBS 社区3v)y$w5H$} i

# permit_mynetworks
S:?%{6dmd(e0smtpd_client_restrictions = permit_sasl_authenticated
fKyVB!m0smtpd_recipient_restrictions = permit_sasl_authenticated,木铎校园 BBS 社区 ER,E)[,{-r
#                     permit_mynetworks,
#],J|`0hM0                      reject_multi_recipient_bounce,
2N+y-z5l%I"x Y0                      reject_non_fqdn_sender,
?I$a`0^3v j,G0                      reject_unknown_sender_domain,
e(wMcn~ c(k0                      reject_unknown_recipient_domain,
.Wb,[%I^8q#M@;b0                      reject_non_fqdn_recipient,木铎校园 BBS 社区l*eLx3P`-Y!S8~b
                      reject_unauth_destination,
i:W@:^,B\[0                      reject_unauth_pipelining,
qR?@1~*F [c0                      reject_invalid_hostname,木铎校园 BBS 社区rz{A4j7F6@S5bG

木铎校园 BBS 社区\ZBs"J

                      reject_rbl_client cbl.anti-spam.org.cn,
0Cp"T/AA1q mq0                      reject木铎校园 BBS 社区-t B [giM

木铎校园 BBS 社区0WM&Y-|#jI

 木铎校园 BBS 社区+n0P xFKJQ,\+J/B


TAG: extmail imap mail pop3 postfix sasl

引用 删除 Guest   /   2007-08-03 16:37:41
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

关于作者