基于Linux与Postfix的邮件系统架设_第1页
基于Linux与Postfix的邮件系统架设_第2页
基于Linux与Postfix的邮件系统架设_第3页
基于Linux与Postfix的邮件系统架设_第4页
基于Linux与Postfix的邮件系统架设_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于linux与postfix 的邮件系统架设一. extmail solution 结构3二. 硬件配置4三. 操作系统安装4四. 下载extmail solution软件包26五. 配置postfix mta27六. 配置courier-authlib29七. 安装maildrop30八. 配置apache31九. 安装extmail32十. 安装extman - web后台33十一. 配置mailgraph_ext36十二. 配置cyrus-sasl 认证37十三. 安装courier-imap39十四. 反病毒/内容过滤配置40十五. 安装clamav43一. extmail solu

2、tion 结构extmail solution 是一个基于优秀开源软件的电子邮件系统解决方案,核心部件包括了postfix, amavisd-new, clamav, extmail 和extman, courier系列软件。是一个功能相对比较齐全的免费电子邮件系统。以下是其主要的特性列表: 支持smtp/pop3/http协议 支持smtp认证及esmtp 可支持大容量邮箱(大于1gb) 高速web界面访问邮箱 完整的web管理后台 在线服务端病毒过滤 内建内容过滤 smtp行为识别垃圾邮件 支持大量反垃圾邮件技术 图形化邮件日志分析 支持别名/多域/域管理员等 支持网络磁盘/pop3邮件

3、支持读/写html格式邮件 支持定制模板及多语言 整个邮件解决方案由如下软件组成:功能模块内容备注操作系统(os)centos 4.3centos和rhel是一样的,而且升级免费邮件传输代理(mta)postfix 2.3snapshot使用2.3 snapshot,虽然不是最新但是对一般人而言足够用了数据库/目录服务mysql 4.1可选openldap或netscape ldap,本文以mysql为蓝本邮件投递代理(mda)maildrop 2.0.x支持过滤和强大功能web帐户管理后台extman 0.16-pre1支持无限域名、无限用户pop3 服务器courier-imap只使用po

4、p3部分,对于大部分企业而言完全足够webmail 系统extmail 0.24-pre8支持多语言、全部模板化,功能基本齐全防病毒软件(anti-virus)clamav 0.88最热门的开源杀毒软件smtp阶段反垃圾邮件工具spam locker 0.083基于smtp行为识别的antispam软件,大量可选插件内容过滤器amavisd-new 2.40content-filter软件,支持与clamav/sa的挂接内容级别的反垃圾邮件工具spamassassin著名的sa,可以支持大量规则,但速度慢smtp认证库cyrus sasl 2.1x标准的sasl实现库,可以支持courier

5、authlib其他数据认证库courier authlib 0.57authlib是maildrop, courier-imap等服务的关键部件日志分析及显示mailgraph_ext在extman中已经包含了web 服务器apache 2.0.xcentos 自带二. 硬件配置要流畅地运行邮件系统,建议的硬件配置如下: 物理内存:256m+ 推荐512m 交换区:2倍物理内存大小 cpu:piii 1g+ 推荐p4 主板:推荐intel原装 网卡:100m/1000m 推荐3com/intel 三. 操作系统安装本文档支持redhat enterprise 4.x 及centos 4.x版本

6、。要注意的是安装系统时,只安装如下的组件: web server 要注意必须选中httpd-suexec软件包,否则下文的配置将失效 mysql数据库 注意必须选中mysql-server, libdbi-dbd-mysql, perl-dbd-mysql等模块,否则extmail将无法连接mysql vim编辑器 强烈建议安装vim-enhanced软件包,它支持main.cf彩色高亮语法分析 其余的xwindows, 打印,kde/gnore, 服务器配置工具,网络工具,开发包等全部都不要选上。安装完毕进入操作系统后,建议禁止root直接登陆,并增加一个非root帐户,例如叫sysadmi

7、n。这样要以root权限操作的话,必须先以sysadmin身份登陆再su到root执行。方法:centos4.3安装步骤图解以下将以详细的图解来介绍如何安装centos4.3centos启动光盘的启动画面,直接回车即可。 系统提示“是否需要校验cd媒质”,请选择“skip”。 选择“english”作为安装界面的语言。 安装类型请务必选择“custom”,以便之后详细选择要装的软件包。 磁盘分区设置请选择“manually partition with disk druid”(手工分区)。 如图,我们将/,/usr,/var,/var/spool/postfix等单独分成一个分区,注意:如果磁

8、盘大小允许,请将/var/spool/vscan目录也单独成一个分区,该目录主要存放被过滤的临时邮件。 配置网卡及子网掩码,记得点选“activate boot”。 配置网关及dns,请将离你的服务器最近dns服务器ip地址填入“primary dns”。 防火墙配置时,打开防火墙(选enable firewall),并放行常规的服务(服务列表全选),最重要的是记得打开selinux(选active) 时区选“上海”。 输入root帐户密码,建议使用较长的密码,并混杂数字与字母及特殊字符。 进入软件组的选择对话界面后,我们只选择editors组。 其次选择是web server及ftp ser

9、ver组。 再次选择mysql database组,并点击右边的details 在details对话框里,确保libdbi-dbd-mysql,mysql-server,perl-dbd-mysql等模块都被选中。extmail依赖这些软件包。 最后,确认一下所做的选择。其他没有被提到的软件模块/组全部都去掉。总共软件大小有814mb左右。 点next后,安装系统提示必须要准备好centos的第1,2,3张光盘。 系统进行初始化,磁盘分区等。系统安装到后面时,需要换安装盘。请将盘2及盘3按提示放入光驱。 安装完毕后,出现祝贺完成的界面,点reboot重新启动。 如无意外,系统进入登陆提示符界面

10、。至此,centos4.3的安装就结束了。 以root身份登进系统后,增加一个非root帐户,名称为sysadmin,密码按您的需求设置一个即可。接下来我们要禁止root直接登陆,编辑/etc/ssh/sshd_config 修改以下配置为: permitrootlogin no 然后重新启动sshd:/etc/init.d/sshd restart这样禁止了root直接登陆。配置selinux自从rhel4/centos4以后,系统默认打开了selinux支持,简单说selinux就是一个强制性的安全机制,但是它也带来了不少麻烦,为了避免编写烦琐的policy规则,本文档将屏蔽掉selinu

11、x对mysql及httpd的保护。方法如下:setsebool httpd_disable_trans=1setsebool mysqld_disable_trans=1操作完毕后,重新启动mysql及apache,并将如下命令加入/etc/rc.d/rc.local以便服务器启动后能自动生效:/usr/sbin/setsebool httpd_disable_trans=1/usr/sbin/setsebool mysqld_disable_trans=1/etc/init.d/mysqld restart/etc/init.d/httpd restart四. 下载extmail solut

12、ion软件包基本假定整个系统的安装全过程都要求以root身份执行,如果机器没有访问外部网络的能力,则事先下载好extmail solution软件包,并用ftp以sysadmin帐户的身份,上载到服务器。下载软件包我们统一将软件包下载到/root目录里。 su - rootcd /rootwget /source/extmail-solution-linux-0.1.tar.gz校验下载的文件必须校验确认过没损坏才能使用。命令如下:wget /source/md5sum.es_linux-0.1cat md5s

13、um.es_linux-0.1md5sum extmail-solution-linux-0.1.tar.gz 一个可能的结果:# cat md5sum.es_linux-0.1168eced41c0cac0ed9f981e791f3783b extmail-solution-linux-0.1.tar.gz# md5sum extmail-solution-linux-0.1.tar.gz168eced41c0cac0ed9f981e791f3783b extmail-solution-linux-0.1.tar.gz由于软件包不断的变更,所以上述结果和您的结果可能不一致,请以下载的md5s

14、um为准解压目前最新的extmail-solution软件包版本号为0.1,软件包文件名为:extmail-solution-linux-0.1.tar.gz,下载回来后,在/root目录解开:tar xfz extmail-solution-linux-0.1.tar.gz 此外,我们假设本次安装默认域是,主机名为:,extmail solution的文件目录是/root/extmail-solution-linux-0.1/重要步骤:我们进入/root/extmail-solution-linux-0.1/目录,该目录下包括如下文件/目

15、录: conf/docs/rpms/src/readme其中rpms目录是本文的重点,里面包含了所需要的全部rpm包,src目录则是存放webmail, anti-spam等相关软件的源码,而readme则是说明文件,docs目录则是本文档相关的html及图片。下文所涉及的操作,绝大部分都是发生在/root/extmail-solution-linux-0.1目录里,请确保当前目录为:/root/extmail-solution-linux-0.1五. 配置postfix mta删除冲突软件,sendmail,需要执行: rpm -e -nodeps sendmailmysql有关软件:cen

16、tos4.x/ redhat el4.x 都自带mysql-server,请用户自行安装好,包括mysql-client和devel等包安装postfixrpm -ivh -nodeps rpms/postfix-2.3.20050716-1hzq.i386.rpm 配置postfix简化postfix配置: postconf -n /etc/postfix/main2.cfmv /etc/postfix/main.cf /etc/postfix/main.cf.oldmv /etc/postfix/main2.cf /etc/postfix/main.cf再编辑main.cf:vi /etc

17、/postfix/main.cf增加如下内容: # hostnamemynetworks = myhostname = mydestination = $mynetworks $myhostname# bannermail_name = postfix - by smtpd_banner = $myhostname esmtp $mail_name# response immediatelysmtpd_error_sleep_time = 0sunknown_local_recipient_reject_code = 45

18、0# extmail config herevirtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cfvirtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cfvirtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cfvirtual_transport = maildrop:编辑mysql_virtual_alias_maps.cfvi /etc/

19、postfix/mysql_virtual_alias_maps.cf内容如下: user = extmailpassword = extmailhosts = localhostdbname = extmailtable = aliasselect_field = gotowhere_field = address编辑mysql_virtual_domains_maps.cfvi /etc/postfix/mysql_virtual_domains_maps.cf内容如下: user = extmailpassword = extmailhosts = localhostdbname = e

20、xtmailtable = domainselect_field = descriptionwhere_field = domain#additional_conditions = and backupmx =0 and active =1编辑mysql_virtual_mailbox_maps.cfvi /etc/postfix/mysql_virtual_mailbox_maps.cf内容如下: user = extmailpassword = extmailhosts = localhostdbname = extmailtable = mailboxselect_field = mai

21、ldirwhere_field = username#additional_conditions = and active = 1六. 配置courier-authlib安装courier-authlib运行如下命令安装相关软件包rpm -ivh rpms/libtool-libs-1.5.6-4.el4.1.c4.3.i386.rpmrpm -ivh rpms/courier-authlib-0.57-1hzq.i386.rpmrpm -ivh rpms/courier-authlib-devel-0.57-1hzq.i386.rpmrpm -ivh rpms/courier-authlib

22、-mysql-0.57-1hzq.i386.rpm编辑/etc/authlib/authmysqlrc文件,并将其内容清空,然后增加如下内容:mysql_server localhostmysql_username extmailmysql_password extmailmysql_socket /var/lib/mysql/mysql.sockmysql_port 3306mysql_opt 0mysql_database extmailmysql_user_table mailboxmysql_crypt_pwfield passwordmysql_uid_field uidnumber

23、mysql_gid_field gidnumbermysql_login_field usernamemysql_home_field homedirmysql_name_field namemysql_maildir_field maildirmysql_quota_field quotamysql_select_clause select username,password,uidnumber,gidnumber, concat(/home/domains/,homedir), concat(/home/domains/,maildir), quota, name from mailbox

24、 where username = $(local_part)$(domain)存盘退出后启动courier-authlib:/etc/init.d/courier-authlib start 如一切正常,命令行将返回如下信息:starting courier authentication services: authdaemond 修改authdaemon socket目录权限如果该目录权限不正确修改,maildrop及postfix等将无法正确获取用户的信息及密码认证: chmod 755 /var/spool/authdaemon/ 七. 安装maildrop注意事项:1.如果您需要重新

25、编译maildrop软件包,首先必须获得其源码rpm包,其次必须先装好courier-authlib及其devel软件包,否则编译maildrop之后将无法打开authlib支持。2.maildrop rpm包安装时,会自动创建vuser用户及vgroup用户组,专门用于邮件的存储,vuser:vgroup的uid/gid都是1000,这与一般的邮件文档中提及用postfix用户存邮件不一样。因为postfix用户的uid一般都低于500,而suexec模块编译时对uid/gid的要求是要大于500,因此显然用postfix用户不能满足,会导致报错。其次,如果用maildrop作为投递(mda

26、),以postfix身份投递的话,postfix mta也会报错的。安装maildroprpm -ivh rpms/maildrop-2.0.1-1hzq.i386.rpmrpm -ivh rpms/maildrop-man-2.0.1-1hzq.i386.rpm配置master.cf为了使postfix支持maildrop,必须修改/etc/postfix/master.cf文件,注释掉原来的maildrop的配置内容,并改为: maildrop unix - n n - - pipe #flags=drhu user=vmail argv=/usr/local/bin/maildrop -

27、d $recipient flags=drhu user=vuser argv=maildrop -w 90 -d $user$nexthop $recipient $user $extension nexthop配置main.cf由于maildrop不支持一次接收多个收件人,因此必须在main.cf里增加如下参数:maildrop_destination_recipient_limit = 1最后重新启动postfix即可八. 配置apache编辑httpd.conf: vi /etc/httpd/conf/httpd.conf在730行左右,屏蔽掉adddefaultcharset: #a

28、dddefaultcharset utf-8 使apache开机默认启动:chkconfig level 3 httpd on 虚拟主机设置编辑/etc/httpd/conf/httpd.conf文件,在最后一行加上:namevirtualhost *:80include conf/vhost_*.conf编辑/etc/httpd/conf/vhost_extmail.conf,里面定义虚拟主机的相关内容,包括主目录,以及extmail和extman的相关配置,suexec的设置等。 # virtualhost for extmail solutionservername mail.extma

29、documentroot /var/www/extsuite/extmail/html/scriptalias /extmail/cgi/ /var/www/extsuite/extmail/cgi/alias /extmail/ /var/www/extsuite/extmail/html/scriptalias /extman/cgi/ /var/www/extsuite/extman/cgi/alias /extman/ /var/www/extsuite/extman/html/# suexec configsuexecusergroup vuser vgroup重新启动a

30、pache: /etc/init.d/httpd restart注意:此时重新启动apache会产生以下警告信息,可不必理会starting httpd: warning: documentroot /var/www/extsuite/extmail/html/ does not exist 九. 安装extmail建立/var/www/extsuite并复制源码到该目录,相关命令: mkdir /var/www/extsuitecp -r src/extmail-0.24-pre8 /var/www/extsuite/extmailcd /var/www/extsuite/extmailcp

31、 webmail.cf.default webmail.cfcd $oldpwd注意:上面命令行中最后一个cd $oldpwd是返回原始路径(即extmail solution软件包根目录)编辑webmail.cf用vi打开/var/www/extsuite/extmail/webmail.cf,并按2次esc键以确保进入命令模式,然后输入: :1, $ s#/var/www/cgi-bin#/var/www/extsuite#g上述命令的作用是将默认路径从/var/www/cgi-bin下换到/var/www/extsuite下,处理完毕后,修改webmail.cf里的其他参数,主要变动的内

32、容见下: sys_user_lang = zh_cnsys_user_charset = gb2312sys_mfilter_on = 1sys_netdisk_on = 1sys_mysql_user = extmailsys_mysql_pass = extmailsys_mysql_db = extmailsys_g_abook_type = filesys_g_abook_file_charset = gb2312其中sys_mfilter_on及sys_netdisk_on 设置为1是为了打开网络磁盘和过滤器。全局地址本默认为ldap格式,现在也改为文本格式,并将地址本的转换编码改为

33、gb2312 更新cgi目录权限由于suexec的需要,必须将extmail的cgi目录修改成vuser:vgroup权限:chown -r vuser:vgroup /var/www/extsuite/extmail/cgi/ 十. 安装extman - web后台在extmail-solution软件包根目录下执行:cp -r src/extman-0.16-pre1 /var/www/extsuite/extman/配置webman.cf用vi编辑/var/www/extsuite/extman/webman.cf,并连按2次esc,确保进入命令模式,然后输入如下命令: :1, $ s#

34、/var/www/cgi-bin#/var/www/extsuite#g处理完毕后修改sys_charset及sys_lang参数为: sys_charset = gb2312sys_lang = zh_cn其他参数基本上可以使用默认值。 更新cgi目录权限由于suexec的需要,必须将extman的cgi目录修改成vuser:vgroup权限:chown -r vuser:vgroup /var/www/extsuite/extman/cgi/ 确认mysql状态在执行mysql操作前,必须确认它已被正确安装并启动,可以用rpm命令查询mysql server的安装情况,用ps ax的办法查

35、看进程列表是否有mysqld进程:rpm -aq|grep -i mysql-server 正常情况下应该可以看到mysql-server被安装:mysql-server-4.1.12-3.rhel4.1 如果没有,则表示没有安装好mysql-server,可以从本软件包rpms目录里安装,也可以找安装光盘安装:rpm -ivh rpms/mysql-server-4.1.12-3.rhel4.1.i386.rpm 安装完毕后必须初始化mysql,然后重新启动/usr/bin/mysql_install_db/etc/init.d/mysqld start正常情况下将启动成功:starting

36、 mysql: ok 然后用ps命令来检查mysqld是否正确运行:ps ax|grep mysqld 正常情况下应出现如下的结果:433 pts/0 s 0:00 /bin/sh /usr/bin/mysqld_safe -defaults-file=/etc/f -pid-file=/var/run/mysqld/mysqld.pid466 pts/0 sl 0:00 /usr/libexec/mysqld -defaults-file=/etc/f -basedir=/usr -datadir=/var/lib/mysql -user=mysql -pid-file=/var/run/m

37、ysqld/mysqld.pid -skip-locking -socket=/var/lib/mysql/mysql.sock 如果mysql没正确启动,请检查/var/log/mysqld.log里面的出错提示,进行处理:tail /var/log/mysqld.log 数据库初始化执行以下命令导入mysql数据库结构及初始化数据,注意必须逐行输入以下命令,root密码默认为空,不可直接用鼠标复制两行命令直接输入,否则会报错!mysql -u root -p /var/www/extsuite/extman/docs/extmail.sqlmysql -u root -p /etc/rc.

38、d/rc.localecho /usr/local/mailgraph_ext/qmonitor-init start /etc/rc.d/rc.local使用方法等待大约15分钟左右,如果邮件系统有一定的流量,即可登陆到extman里,点“图形日志”即可看到图形化的日志。具体每天,周,月,年的则点击相应的图片进入即可。十二. 配置cyrus-sasl 认证rhel4/centos4的cyrus-sasl默认没有打开authdaemon的支持,为了使用集中认证的authlib,必须打开这个支持。为此我们必须删除系统的cyrus-sasl软件包,替换成打开了authdaemon支持的sasl软件

39、包。首先要删除系统老的cyrus-sasl:rpm -e -nodeps cyrus-sasl 然后安装新的支持authdaemon的软件包rpm -ivh rpms/cyrus-sasl-2.1.19-5.el4.i386.rpm postfix的smtp认证需要透过cyrus-sasl,连接到authdaemon获取认证信息,编辑/etc/postfix/main.cf,增加如下内容:# smtpd related configsmtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_

40、non_fqdn_hostname,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unauth_destination,reject_unauth_pipelining,reject_invalid_hostname,# smtp auth config herebroken_sasl_auth_clients = yessmtpd_sasl_auth_enable = yessmtpd_sasl_local_domain = $myhostnamesmtpd_sasl_security_options = noanonymou

41、s其次用vi编辑/usr/lib/sasl2/smtpd.conf,确保其内容为:pwcheck_method: authdaemondlog_level: 3mech_list: plain loginauthdaemond_path:/var/spool/authdaemon/socket存盘退出后,重新启动postfix:/etc/init.d/postfix restart 测试smtp认证通过以下命令获得的用户名及密码的base64编码:perl -e use mime:base64; print encode_base64(testextmail.or

42、g)dgvzdeblehrtywlslm9yzw=perl -e use mime:base64; print encode_base64(test)dgvzda=然后本机测试,其过程如下(蓝色的文字是我们输入/发送到postfix的)telnet localhost 25trying .connected to localhost.localdomain ().escape character is .220 esmtp postfix - by ehlo demo.domain.tld250-mai

43、250-pipelining250-size 10240000250-vrfy250-etrn250-auth login plain250-auth=login plain250-enhancedstatuscodes250-8bitmime250 dsnauth login334 vxnlcm5hbwu6dgvzdeblehrtywlslm9yzw=334 ugfzc3dvcmq6dgvzda=235 2.0.0 authentication successfulquit221 2.0.0 bye最后出现235 authentication successful

44、表明认证成功了。十三. 安装courier-imap用以下命令安装courier-imap的rpm包,默认的courier-authlib及courier-imap都会增加系统自启动设置,因此下一次服务器启动将自动启动相应的authlib及pop3服务rpm -ivh rpms/courier-imap-4.1.0-1hzq.i386.rpm 配置courier-imap由于courier-imap的imap目录是按utf-7编码的,extmail目前还没有正式支持imap目录,因此需要屏蔽imap,只提供pop3服务。而就目前的使用情况来看,imap使用的非常少,绝大部分outlook/fo

45、xmail用户都习惯使用pop3而非imap。vi /usr/lib/courier-imap/etc/imapd将如下这行配置:imapdstart=yes 替换成为:imapdstart=novi /usr/lib/courier-imap/etc/imapd-ssl再将如下配置:imapdsslstart=yes 替换成为:imapdsslstart=no 然后重新启动courier-imap:/etc/init.d/courier-imap start 测试pop3请按如下步骤输入pop3命令测试其是否正常工作,注意蓝色的信息是我们输入到pop3服务器的telnet localhost 110trying .connected to localhost.localdomain ().escape character is .+ok hello there.user +ok password required.pass test+ok logged in.list+ok pop3 clients that break here, they violate std53.quit+ok bye-bye.connection closed by foreign host.十四. 反

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论