Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->网络应用 ->邮件服务器 ->Qmail ->正文

使用Postfix构建基于FreeBSD的邮件系统

来源:Linuxdby.com 作者:Webmaster 时间:2007-05-28 点击: [收藏] [投稿]
2006-6-23
作者:Firebat
QQ:7199023
MSN:firebat0@msn.com

本文简单介绍了基于FreeBSD的电子邮件系统的一种实现方法,使用postfix+sasl2+courier-imap+mysql +amavisd+spamd+clamav构建电子邮件系统后台和验证系统,使用apache+php+postfixadmin+squirrelmail构建webmail。整个系统建成后能够提供smtp/pop3/imap/webmail服务,并能够验证smtp登陆,过滤垃圾邮件和扫描邮件中的病毒。本文所介绍的方法在FreeBSD 5.4和FreeBSD 6.1下均能正常操作。

0、更新ports
pkg_add –r cvsup
rehash
cvsup –h cvs.freebsdchina.org /usr/share/examples/cvsup/ports-supfile
1、安装软件
①安装cyrus-sasl2
sasl2是smtp验证所需要的软件包,由于postfix安装时采用默认配置,使得sasl不支持courier-authdaemond,因此需要首先用指定的选项进行安装。
cd /usr/ports/security/cyrus-sasl2
make WITH_AUTHDAEMON=yes install clean

②安装expect
cd /usr/ports/lang/expect
make install clean

③安装postfix,安装时选中[SASL2]、[MySQL]、[VDA],sasl2用于smtp验证,mysql用于存放数据表,vda用于支持虚拟投递。
cd /usr/ports/mail/postfix
make install clean

④安装courier-imap,通过make config加上对mysql的支持。
cd /usr/ports/mail/courier-imap
make config
make install clean

⑤安装clamav
cd /usr/ports/security/clamav
make install clean

⑥安装amavisd,安装过程中会自动把spamd也安装上。在make config中加入mysql支持。
cd /usr/ports/security/amavisd-new
make config
make install clean

⑦安装apache。安装完成后编辑httpd.conf将主目录设置为/usr/local/www
cd /usr/ports/www/apache22
make install clean

⑧安装php。更新ports后的php安装方式有所变化,首先在make config需要选中[Apache]以编译apache模块,安装完成后在httpd.conf中修改2处配置:
a、在DirectoryIndex中加入index.php
b、加入AddType application/x-httpd-php .php
cd /usr/ports/lang/php4
make config
make install clean

⑨安装php4-extensions。根据需要选择模块,保证[MYSQL]、[PCRE]、[SESSION]被选中。
cd /usr/ports/lang/php4-extensions
make config
make install clean

⑩安装postfixadmin。安装完成后将网页移动至/usr/www/data/
cd /usr/ports/mail/postfixadmin
make install clean
mv /usr/local/www/postfixadmin /usr/local/www/data/

○11安装squirrelmail
cd /usr/ports/mail/squirrelmail
make install clean

至此,所需软件全部安装完毕,下面将依次进行配置。

2、配置文件
①配置sasl
ee /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path: /var/run/authdaemond/socket

②配置mysql数据库
chmod –R mysql:mysql /var/db/mysql
cd /usr/local/bin/
./mysql_install_db
cd /usr/local/libexec
./mysqld –user=mysql%26amp;
cd /usr/local/www/postfixadmin
mysql –uroot –p < DATABASE_MYSQL.TXT

③配置postfix
使用和apache一样的用户来读取邮件目录,因为apache用户为www,id:80,所以要注意/usr/local/etc/postfix/main.cf中的用户id。
mkdir –p /usr/local/virtual
chmod –R www:www /usr/local/virtual
ee /usr/local/etc/postfix/main.cf
在最后添加:
#======= BASE ==============
#myhostname =
#mydomain = example.com
home_mailbox = maildir/
#mydestination = $myhostname
#local_recipient_maps =
#======= MYSQL =============
virtual_gid_maps = static:80
virtual_mailbox_base = /usr/local/virtual
virtual_uid_maps = static:80
virtual_minimum_uid = 80
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql/virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_maps.cf
#======= Quota ============
message_size_limit = 5242880
virtual_mailbox_limit_inbox = no
virtual_mailbox_limit_override = yes
virtual_maildir_extended = yes
virtual_create_maildirsize = yes
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_limit_maps.cf
virtual_mailbox_limit = 52428800
#======== SASL ================
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject
#smtpd_sasl_local_domain = $mydomain
smtpd_client_restrictions = permit_sasl_authenticated

几个配置文件:
cd /usr/local/etc/postfix/
mkdir mysql
cd mysql

1、ee virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address

2、ee virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain

3、ee virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username

4、ee virtual_mailbox_limit_maps.cf
user = postfix

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Linux 架设 sendmail MAIL   下一篇:ExtMail Solution for FreeBSD

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号