linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > linux网络与应用 > Linux服务器 >
栏目导栏
资料搜索
热门文章
·Linux网关设置
·WebLogic管理精华
·Webmin的下载与安装
·RedHat Linux 9.0 Samba配置详
·网吧LINUX游戏服务器加迅闪更新
·Linux下配置完整安全的DHCP服务
·Tomcat性能调整
·Linux下FTP服务器配置
·怎样设置域名的DNS服务器
·linux9.0+apache+php+mysql安装
·Eclipse+Tomcat+MyEclipse配置
·Linux服务器网卡驱动安装及故障
·Linux网络服务器配置详解
·FC5+Apache2+PHP5+MYSQL5环境配
·让linux系统支持ASP
最新文章
·Slackware EyooLinux服务器配置
·Linux系统下安装bind后配置实现
·Fedora Linux系统Samba服务器架
·服务器维护:RHEL 5系统下故障
·服务器应用:实现Linux与宿主机
·RED HAT AS4 U4下Gssftp服务的
·高手进阶:Redhat Linux上vsft
·Fedora Linux操作系统中TFTP的
·Ubuntu Linux操作系统安装配置
·Linux FTP服务器和SVN服务器的
·Linux操作系统下自带BIND的使用
·Linux系统下DNS服务器的架设
·Linux下Apache安装/增加mod_re
·虚拟磁盘Linux服务端测试及故障
·为网络启动和软硬件升级建立TF
Google
 
使用Postfix构建基于FreeBSD的邮件系统
[ 作者:  加入时间:2007-08-30 11:22:23  来自:Linux联盟收集整理 ]
本文简单介绍了基于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下均能正常操作。DYJLinux联盟
DYJLinux联盟
0、更新portsDYJLinux联盟
pkg_add –r cvsupDYJLinux联盟
rehashDYJLinux联盟
cvsup –h cvs.freebsdchina.org /usr/share/examples/cvsup/ports-supfileDYJLinux联盟
1、安装软件DYJLinux联盟
①安装cyrus-sasl2DYJLinux联盟
sasl2是smtp验证所需要的软件包,由于postfix安装时采用默认配置,使得sasl不支持courier-authdaemond,因此需要首先用指定的选项进行安装。DYJLinux联盟
cd /usr/ports/security/cyrus-sasl2DYJLinux联盟
make WITH_AUTHDAEMON=yes install cleanDYJLinux联盟
DYJLinux联盟
②安装expectDYJLinux联盟
cd /usr/ports/lang/expectDYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
③安装postfix,安装时选中[SASL2]、[MySQL]、[VDA],sasl2用于smtp验证,mysql用于存放数据表,vda用于支持虚拟投递。DYJLinux联盟
cd /usr/ports/mail/postfixDYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
④安装courier-imap,通过make config加上对mysql的支持。DYJLinux联盟
cd /usr/ports/mail/courier-imapDYJLinux联盟
make configDYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
⑤安装clamavDYJLinux联盟
cd /usr/ports/security/clamavDYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
⑥安装amavisd,安装过程中会自动把spamd也安装上。在make config中加入mysql支持。DYJLinux联盟
cd /usr/ports/security/amavisd-newDYJLinux联盟
make configDYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
⑦安装apache。安装完成后编辑httpd.conf将主目录设置为/usr/local/wwwDYJLinux联盟
cd /usr/ports/www/apache22DYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
⑧安装php。更新ports后的php安装方式有所变化,首先在make config需要选中[Apache]以编译apache模块,安装完成后在httpd.conf中修改2处配置:DYJLinux联盟
a、在DirectoryIndex中加入index.phpDYJLinux联盟
b、加入AddType application/x-httpd-php .phpDYJLinux联盟
cd /usr/ports/lang/php4DYJLinux联盟
make configDYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
⑨安装php4-extensions。根据需要选择模块,保证[MYSQL]、[PCRE]、[SESSION]被选中。DYJLinux联盟
cd /usr/ports/lang/php4-extensionsDYJLinux联盟
make configDYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
⑩安装postfixadmin。安装完成后将网页移动至/usr/www/data/DYJLinux联盟
cd /usr/ports/mail/postfixadminDYJLinux联盟
make install cleanDYJLinux联盟
mv /usr/local/www/postfixadmin /usr/local/www/data/DYJLinux联盟
DYJLinux联盟
○11安装squirrelmailDYJLinux联盟
cd /usr/ports/mail/squirrelmailDYJLinux联盟
make install cleanDYJLinux联盟
DYJLinux联盟
至此,所需软件全部安装完毕,下面将依次进行配置。DYJLinux联盟
DYJLinux联盟
2、配置文件DYJLinux联盟
①配置saslDYJLinux联盟
ee /usr/local/lib/sasl2/smtpd.confDYJLinux联盟
pwcheck_method: authdaemondDYJLinux联盟
log_level: 3DYJLinux联盟
mech_list: PLAIN LOGINDYJLinux联盟
authdaemond_path: /var/run/authdaemond/socketDYJLinux联盟
DYJLinux联盟
②配置mysql数据库DYJLinux联盟
chmod –R mysql:mysql /var/db/mysqlDYJLinux联盟
cd /usr/local/bin/DYJLinux联盟
./mysql_install_dbDYJLinux联盟
cd /usr/local/libexecDYJLinux联盟
./mysqld –user=mysql&DYJLinux联盟
cd /usr/local/www/postfixadminDYJLinux联盟
mysql –uroot –p < DATABASE_MYSQL.TXTDYJLinux联盟
DYJLinux联盟
③配置postfixDYJLinux联盟
使用和apache一样的用户来读取邮件目录,因为apache用户为www,id:80,所以要注意/usr/local/etc/postfix/main.cf中的用户id。DYJLinux联盟
mkdir –p /usr/local/virtualDYJLinux联盟
chmod –R www:www /usr/local/virtualDYJLinux联盟
ee /usr/local/etc/postfix/main.cfDYJLinux联盟
在最后添加:DYJLinux联盟
#======= BASE ==============DYJLinux联盟
#myhostname =DYJLinux联盟
#mydomain = example.comDYJLinux联盟
home_mailbox = maildir/DYJLinux联盟
#mydestination = $myhostnameDYJLinux联盟
#local_recipient_maps =DYJLinux联盟
#======= MYSQL =============DYJLinux联盟
virtual_gid_maps = static:80DYJLinux联盟
virtual_mailbox_base = /usr/local/virtualDYJLinux联盟
virtual_uid_maps = static:80DYJLinux联盟
virtual_minimum_uid = 80DYJLinux联盟
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cfDYJLinux联盟
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql/virtual_domains_maps.cfDYJLinux联盟
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_maps.cfDYJLinux联盟
#======= Quota ============DYJLinux联盟
message_size_limit = 5242880DYJLinux联盟
virtual_mailbox_limit_inbox = noDYJLinux联盟
virtual_mailbox_limit_override = yesDYJLinux联盟
virtual_maildir_extended = yesDYJLinux联盟
virtual_create_maildirsize = yesDYJLinux联盟
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_limit_maps.cfDYJLinux联盟
virtual_mailbox_limit = 52428800DYJLinux联盟
#======== SASL ================DYJLinux联盟
smtpd_sasl_auth_enable = yesDYJLinux联盟
smtpd_sasl_security_options = noanonymousDYJLinux联盟
broken_sasl_auth_clients = yesDYJLinux联盟
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination rejectDYJLinux联盟
#smtpd_sasl_local_domain = $mydomainDYJLinux联盟
smtpd_client_restrictions = permit_sasl_authenticatedDYJLinux联盟
DYJLinux联盟
几个配置文件:DYJLinux联盟
cd /usr/local/etc/postfix/DYJLinux联盟
mkdir mysqlDYJLinux联盟
cd mysqlDYJLinux联盟
DYJLinux联盟
1、ee virtual_alias_maps.cfDYJLinux联盟
user = postfixDYJLinux联盟
password = postfixDYJLinux联盟
hosts = localhostDYJLinux联盟
dbname = postfixDYJLinux联盟
table = aliasDYJLinux联盟
select_field = gotoDYJLinux联盟
where_field = addressDYJLinux联盟
DYJLinux联盟
2、ee virtual_domains_maps.cfDYJLinux联盟
user = postfixDYJLinux联盟
password = postfixDYJLinux联盟
hosts = localhostDYJLinux联盟
dbname = postfixDYJLinux联盟
table = domainDYJLinux联盟
select_field = descriptionDYJLinux联盟
where_field = domainDYJLinux联盟
DYJLinux联盟
3、ee virtual_mailbox_maps.cfDYJLinux联盟
user = postfixDYJLinux联盟
password = postfixDYJLinux联盟
hosts = localhostDYJLinux联盟
dbname = postfixDYJLinux联盟
table = mailboxDYJLinux联盟
select_field = maildirDYJLinux联盟
where_field = usernameDYJLinux联盟
DYJLinux联盟
4、ee virtual_mailbox_limit_maps.cfDYJLinux联盟
user = postfixDYJLinux联盟
password = postfixDYJLinux联盟
hosts = localhostDYJLinux联盟
dbname = postfixDYJLinux联盟
table = mailboxDYJLinux联盟
select_field = quotaDYJLinux联盟
where_field = usernameDYJLinux联盟
DYJLinux联盟
④配置courier-authdaemondDYJLinux联盟
cd /usr/local/etc/rc.dDYJLinux联盟
./courier-authdaemond.sh startDYJLinux联盟
chmod o+x /var/run/authdaemondDYJLinux联盟
cd /usr/local/etc/authlibDYJLinux联盟
DYJLinux联盟
ee authdaemonrcDYJLinux联盟
修改authmodulelist和authmodulelistorigDYJLinux联盟
authmodulelist="authmysql"DYJLinux联盟
authmodulelistorig="authmysql"DYJLinux联盟
添加DYJLinux联盟
version="authaemond.mysql"DYJLinux联盟
courier-imapDYJLinux联盟
DYJLinux联盟
ee authmysqlrcDYJLinux联盟
DEFAULT_DOMAIN   example.comDYJLinux联盟
MYSQL_CRYPT_PWFIELD   passwordDYJLinux联盟
MYSQL_DATABASE   postfixDYJLinux联盟
MYSQL_GID_FIELD   '80'DYJLinux联盟
MYSQL_HOME_FIELD   '/usr/local/virtual'DYJLinux联盟
MYSQL_LOGIN_FIELD   usernameDYJLinux联盟
MYSQL_MAILDIR_FIELD   maildirDYJLinux联盟
MYSQL_NAME_FIELD   nameDYJLinux联盟
MYSQL_OPT   0DYJLinux联盟
MYSQL_PASSWORD   postfixDYJLinux联盟
#MYSQL_PORT   0DYJLinux联盟
#MYSQL_QUOTA_FIELD   quotaDYJLinux联盟
MYSQL_SERVER   localhostDYJLinux联盟
MYSQL_UID_FIELD   '80'DYJLinux联盟
MYSQL_USERNAME   postfixDYJLinux联盟
MYSQL_USER_TABLE   mailboxDYJLinux联盟
DYJLinux联盟
这里用户也修改为80,注意中间不是空格,是TAB键,在Unix系统中,很多都是用TAB键的。也请特别注意其中的引号。DYJLinux联盟
DYJLinux联盟
⑤配置amavisdDYJLinux联盟
cd /usr/local/etc/postfixDYJLinux联盟
ee master.cfDYJLinux联盟
在文件最后添加DYJLinux联盟
smtp-amavis unix -      -       n       -       2  smtpDYJLinux联盟
   -o smtp_data_done_timeout=1200DYJLinux联盟
   -o smtp_send_xforward_command=yesDYJLinux联盟
   -o disable_dns_lookups=yesDYJLinux联盟
   -o max_use=20DYJLinux联盟
127.0.0.1:10025 inet n  -       n       -       -  smtpdDYJLinux联盟
   -o content_filter=DYJLinux联盟
   -o local_recipient_maps=DYJLinux联盟
   -o relay_recipient_maps=DYJLinux联盟
   -o smtpd_restriction_classes=DYJLinux联盟
   -o smtpd_delay_reject=noDYJLinux联盟
   -o smtpd_client_restrictions=permit_mynetworks,rejectDYJLinux联盟
   -o smtpd_helo_restrictions=DYJLinux联盟
   -o smtpd_sender_restrictions=DYJLinux联盟
   -o smtpd_recipient_restrictions=permit_mynetworks,rejectDYJLinux联盟
   -o smtpd_data_restrictions=reject_unauth_pipeliningDYJLinux联盟
   -o smtpd_end_of_data_restrictions=DYJLinux联盟
   -o mynetworks=127.0.0.0/8DYJLinux联盟
   -o smtpd_error_sleep_time=0DYJLinux联盟
   -o smtpd_soft_error_limit=1001DYJLinux联盟
   -o smtpd_hard_error_limit=1000DYJLinux联盟
   -o smtpd_client_connection_count_limit=0DYJLinux联盟
   -o smtpd_client_connection_rate_limit=0DYJLinux联盟
   -o receive_override_options=no_header_body_checks,no_unknown_recipient_checkDYJLinux联盟
DYJLinux联盟
ee main.cfDYJLinux联盟
在文件最后添加DYJLinux联盟
#============AMVISD=============DYJLinux联盟
content_filter=smtp-amavis:[127.0.0.1]:10024DYJLinux联盟
DYJLinux联盟
⑥配置clamavDYJLinux联盟
ee /usr/local/etc/clamd.confDYJLinux联盟
取消下列选项前的#号注释DYJLinux联盟
ScanOLE2DYJLinux联盟
ScanMailDYJLinux联盟
ScanHTMLDYJLinux联盟
ScanArchiveDYJLinux联盟
ScanRARDYJLinux联盟
DYJLinux联盟
⑦配置启动项DYJLinux联盟
ee /etc/rc.confDYJLinux联盟
添加下列条目DYJLinux联盟
sendmail_enable="NONE"DYJLinux联盟
postfix_enable="YES"DYJLinux联盟
apache22_enable="YES"DYJLinux联盟
mysql_enable="YES"DYJLinux联盟
courier_authdaemond_enable="YES"DYJLinux联盟
courier_imap_imapd_enable="YES"DYJLinux联盟
courier_imap_pop3d_enable="YES"DYJLinux联盟
amavisd_enable="YES"DYJLinux联盟
amavis_milter_enable="YES"DYJLinux联盟
clamav_clamd_enable="YES"DYJLinux联盟
clamav_freshclam_enable="YES"DYJLinux联盟
spamd_enable="YES"DYJLinux联盟
DYJLinux联盟
⑧重起电脑DYJLinux联盟
rebootDYJLinux联盟
DYJLinux联盟
⑨配置postfixadminDYJLinux联盟
cd /usr/local/www/data/postfixadminDYJLinux联盟
ee config.inc.phpDYJLinux联盟
$CONF['default_language'] = 'cn';DYJLinux联盟
$CONF['admin_email'] = 'postmaster@example.com';DYJLinux联盟
$CONF['domain_path'] = 'YES';DYJLinux联盟
$CONF['domain_in_mailbox'] = 'NO';DYJLinux联盟
DYJLinux联盟
通过http://localhost/postfixadmin/setup.php查看是否安装成功。DYJLinux联盟
进入http://localhot/postfixadmin/admin进入管理页面,建立虚拟域和用户。DYJLinux联盟
观察/usr/local/virtual下是否出现对应的域名目录和用户目录DYJLinux联盟
DYJLinux联盟
DYJLinux联盟
DYJLinux联盟
⑩配置squirrelmailDYJLinux联盟
cd /usr/local/www/data/squirrelmailDYJLinux联盟
./configureDYJLinux联盟
选择10. LanguagesDYJLinux联盟
设置如下DYJLinux联盟
1.  Default Language       : zh_CNDYJLinux联盟
2.  Default Charset        : gb2312DYJLinux联盟
保存退出DYJLinux联盟
进入http://localhost/squirrelmail/测试邮箱。DYJLinux联盟
DYJLinux联盟
DYJLinux联盟
注意:除了在authmysqlrc中DEFAULT_DOMAIN指定的域外,其他域用户登陆都需要输入完整的电子邮件地址。DYJLinux联盟
DYJLinux联盟
3、小结DYJLinux联盟
与Windows相比,FreeBSD的邮件系统安装配置较为烦琐,但其性能和灵活性则更为强大。由于FreeBSD完善的包管理机制,在安装过程中不必考虑各个软件包的依赖性和下载问题,这也是FreeBSD优于linux的地方。DYJLinux联盟
本文主要是从操作步骤上进行简单的介绍,跟随本文的步骤可以安装好邮件系统,但只有深入了解其运行原理和配置方法才能更好的运用。本文所使用的各个 ports中的pkg-descr中包含了官方网站的地址,除了cyrus的网站外,都提供了丰富的文档,这些文档是我们配置和使用的最终依据。DYJLinux联盟
构件邮件系统的过程中难免出现问题,解决问题的主要办法是查看日志文件。最重要的日志文件是/var/log/maillog, courier/sasl/postfix/amavisd/clamav等一系列软件都将日志信息写入该文件,为我们排除问题提供了重要依据。DYJLinux联盟
回字有四样写法,邮件系统也有不同的实现方法,采用postfix/vm-pop3d/openwebmail同样支持虚拟域和用户,而sasl2也带了自己saslauthd。在/usr/ports/mail和/usr/ports/security中提供了丰富的c/s、b/s软件,各位朋友可以尝试不同的组合,找到最适合自己的解决方案。
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息