基于Linux与Postfix的邮件系统架设.doc

上传人:仙人指路1688 文档编号:2388144 上传时间:2023-02-17 格式:DOC 页数:46 大小:821KB
返回 下载 相关 举报
基于Linux与Postfix的邮件系统架设.doc_第1页
第1页 / 共46页
基于Linux与Postfix的邮件系统架设.doc_第2页
第2页 / 共46页
基于Linux与Postfix的邮件系统架设.doc_第3页
第3页 / 共46页
基于Linux与Postfix的邮件系统架设.doc_第4页
第4页 / 共46页
基于Linux与Postfix的邮件系统架设.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《基于Linux与Postfix的邮件系统架设.doc》由会员分享,可在线阅读,更多相关《基于Linux与Postfix的邮件系统架设.doc(46页珍藏版)》请在三一办公上搜索。

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 http:/www.extmail.org/source/ExtMail-Solution-Linux-0.1.tar.gz校验下载的文件必须校验确认过没损坏才能使用。命令如下:wget http:/www.extmail.org/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.org,主机名为:mail.extmail.org,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 = 127.0.0.1myhostname = mail.extmail.orgmydestination = $mynetworks $myhostname# bannermail_name = Postfix - by extmail.orgsmtpd_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、il.orgDocumentRoot /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 /var/www

38、/extsuite/extman/docs/init.sql链接基本库到Extmail由于ExtMan的体系与ExtMail比较类似,因此ExtMan需要使用ExtMail中几个基础perl 模块,在extman的源码包里,包含了一个叫buildlink.sh 的小脚本,该脚本完成了这些链接的工作,使用方法: cd /var/www/extsuite/extman/libs/Ext./buildlink.sh build /var/www/extsuite/extmail/libs/Extmkdir /tmp/extmanchown -R vuser:vgroup /tmp/extmancd

39、$OLDPWD操作完毕后,需要建立刚才导入mysql的testextmail.org帐户的Maildir,请输入如下命令:cd /var/www/extsuite/extman/tools./maildirmake.pl /home/domains/extmail.org/test/Maildirchown -R vuser:vgroup /home/domains/extmail.orgcd $OLDPWD注意事项:上面命令行中最后一个cd $OLDPWD是返回原始路径(即ExtMail Solution软件包根目录)由于RedHat发行版中包含了一个叫tmpwatch的工具,该工具会定期扫

40、描/tmp/下的文件,如果这些文件很久都没被使用,将被删除,因此如果后台长期不使用,/tmp/extman目录有可能被tmpwatch删除,所以要么定期登陆后台,要么修改 webman.cf将临时目录修改到另一个地方。此处暂以/tmp/extman默认值为例。 上述导入初始化SQL时,默认的uidnumber/gidnumber都是1000,这和vuser:vgroup 的uid/gid一致,是因为maildrop投递时会从数据库里取uidnumber/gidnumber,而在master.cf里已经定义好了投递时的运行身份(vuser:vgroup),所以这两个字段的内容必须为1000,否则

41、将出现投递错误,例如报0x06等错误。测试authlib在命令行下执行:/usr/sbin/authtest -s login testextmail.org test 结果如下:Authentication succeeded. Authenticated: testextmail.org (uid 1000, gid 1000) Home Directory: /home/domains/extmail.org/test Maildir: /home/domains/extmail.org/test/Maildir/ Quota: 5242880Encrypted Password: cr

42、yptuywiuN.XggXXcCleartext Password: test Options: (none)这样表明ExtMan的正确安装,数据库也正确导入,courier-authlib能正确连接到mysql数据库最后访问http:/mail.extmail.org/extmail/,如无意外,将看到webmail的登陆页,不过此时还没有加正式的用户,所以不能登陆,包括testextmail.org也不行。必须要登陆到http:/mail.extmail.org/extman/ 里增加一个新帐户才能登陆.ExtMan的默认超级管理员帐户是rootextmail.org,密码是extmai

43、l,登陆成功后,建议将密码修改,以确保安全。登录后,可以添加任何域.十一. 配置Mailgraph_ext自ExtMan 0.14-pre2 开始,系统集成了Mailgraph_ext插件,该插件使extman具备图形化显示邮件日志的能力。mailgraph_ext融合了mailgraph和queuegraph两个软件包,除增加了更多的日志分析及图形显示能力外,还重写了web模块,集成到ExtMan后台里,这样邮件日志将只能给经过授权的用户查看,提高了安全性。mailgraph_ext及Extman都需要安装rrdtool工具必需的软件包- Perl 5.6+ (建议5.8以上)- rrdto

44、ol 及rrdtool的perl包,地址: http:/people.ee.ethz.ch/oetiker/webtools/rrdtool/- File:Tail (还需要Time:HiRes模块)RHEL/CentOS一般自带了perl-Time-HiRes(1.5x)所以以下的rpm安装也许会报错(提示冲突),可以不必理会。如果想安装本文所带的新版Time-HiRes模块,可以用如下命令删除系统自带的包:rpm -e perl-Time-HiRes -nodeps 安装依赖包/RRDtoolrpm -ivh RPMS/rrdtool-1.2.12-1hzq.i386.rpm RPMS/perl-rrdtool-1.2.12-1hzq.i386.rpmrpm -ivh RPMS/perl-Time-HiRes-1.72-1hzq.i386.rpmrpm -ivh RPMS/perl-File-Ta

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号