《基于FreeBSD和Postfix的反垃圾邮件系统5.1(PowerUP补充版V2.0)精品资料.doc》由会员分享,可在线阅读,更多相关《基于FreeBSD和Postfix的反垃圾邮件系统5.1(PowerUP补充版V2.0)精品资料.doc(76页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于FreeBSD和Postfix的反垃圾反病毒邮件系统与web mail安装.(PowerUP补充完善版.,20070131)前 言本文介绍使用FreeBSD+Postfix+Cyrus-sasl+Courier-imap+Webmail+spamassassin+Clamav+mailscanner+maildrop来架构一个具有多域名,webmail、防病毒、防垃圾邮件、web管理界面的邮件系统。 Jacky, $Revision: 5.1 杨廷勇 QQ:187159779 Copyright 2004、2005、2006欢迎转载,保留版权和出处http:/www.thismail.or
2、g 系统主要采用MailScanner+clamav+Spamd来对病毒过滤和垃圾邮件过滤。新增加对smtpd,imap,pop3,webmail的登录控制新增加简单的邮件分组新增邮件监控加强对垃圾邮件的过滤增加系统黑名单 本文在FreeBSD 4.10、5.3、5.4、5.5、6.0、6.1上安装测试通过,采用MailSanner来对邮件过滤和垃圾邮件过滤,配置更容易,并且降低了系统开消。让系统更加稳定,经过严格病毒邮件测试成功率达到了98%。垃圾邮件过滤基本上达到了95%的成功率。 本人水平有限,如有错误之处请发邮件到scyz2,本人不对本文档对你的系统造成的损失负任何连带责任。目 录第一
3、章 系统基础知识介绍.21.1 什么是FreeBSD?.21.2 postfix简介.31.Tmail介绍.3第二章 操作系统FreeBSD安装.52.1 安装前的准备.52.2 正式安装.5第三章 更新ports9123.1 安装CVSUP.123.2 更新ports树.13第四章 软件安装.134.1 安装perl.134.2 安装mysql.134.3 安装apache22.144.4 安装mod_php5.154.5 安装php5的扩展.154.6 安装openssl.174.7 安装phpMyAdmin.174.8 设置数据库.184.9 安装cyrus-sasl2.314.10 安
4、装postfix2.324.11 安装Courier-imap.334.12 安装MailScanner334.13 安装maildrop.34第五章 软件系统配置.355.1 配置cyrus-sasl.355.2 配置postfix.355.3 配置Courier-imap395.4 安装Tmail管理工具.405.5 登录测试.415.6 垃圾邮件和病毒邮件过滤设置43第六章 安装webmail.47附录、常见问题汇总.49第一章 系统基础知识介绍1.1 什么是FreeBSD?我想大家都知道 Microsoft Windows 是一套作业系统,FreeBSD 也是一套作业系统。FreeBS
5、D 是一个可以在 Intel 相容个人计算机、DEC Alpha 或 PC98 架构的计算机上执行的 UNIX 作业系统。大家应该听过另一套UNIX的作业系统 Linux,FreeBSD 也是一套免费的作业系统。它可以让我们的个人计算机变成先进的工作站,更稳定的提供你所需的网络服务。BSD UNIX 系统可以说是网络作业系统的始祖,FreeBSD 是众多 BSD UNIX 分支中的一个,它继承了 BSD 系统的高性能与可靠性。自从1993 年 FreeBSD 推出 1.0-RELEASE 以来,FreeBSD 开发团队便致力于系统的调校,使其发挥绝佳的效能。在 FreeBSD 团队的统筹努力下
6、,使它比起其它免费的 UNIX 作业系统更有结构。在 FreeBSD 上有许多支援的免费软件,这些软件大都已移植收录于 FreeBSD ports 中,使得我们在安装软件时变得十分轻松。FreeBSD 支援 32 位元、64 位元的许多不同平台,具有高效能核心架构、动态函式库共享、绝佳的网络功能,比起其它商用 UNIX 系统毫不逊色。在 FreeBSD 上的应用软件相当的多,也都可以免费取得,由于 FreeBSD 的稳定性高且功能强大,因此许多大型网站都以它为作业平台,其中最知名的就是 YAHOO!。YAHOO! 是一个流量相当大的入口网站,他们选择以 FreeBSD 为作业平台,由此可知 F
7、reeBSD 的优异性。1.2 postfix简介Postfix是一个非常优秀的MTA,她素以高效、安全的特点而著称。Postfix是作者在UNIX上所见过的MTA中在反垃圾邮件(Anti-Spam或Anti-UCE)方面做得最好的一个,甚至有很多公司在Postfix代码的基础上进行二次开发而推出反垃圾邮件网关产品。MTA的反垃圾邮件功能,实际上就是在MTA处理过程中对会话进行过滤。这个过滤不但过滤了发往自身的垃圾邮件,而且还防止了自身被恶意利用发送垃圾邮件。Postfix实现了目前所有主要的MTA过滤技术。postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传
8、输代理)软件。和Sendmail相比Postfix更快、更容易管理、更灵活、更安全,同时还与sendmail保持足够的兼容性。1.3 Tmail介绍在各种Internet服务中,电子邮件已成为最多的一种服务,随着越来越多的人使用这种服务,原始的电子邮件系统已经不堪重负,经常出现系统崩溃、信件丢失、垃圾邮件和病毒邮件泛滥等状况。集中突出的表现在以下几个方面:、基于单服务器的单进程邮件系统,发送效率低、可靠性差。如sendmail。、SMTP、POP3、IMAP、用户认证、邮件存储等程序和数据固化,无法实现负荷分散和数据分布存储。 如Exchange, Lotus Mail, iMail等,这些邮
9、件系统都无法经受百万封/日投递量的考验。、当今网络安全问题在电子邮件系统方面表现尤为突出:既要防止黑客的攻击,又要 防范针对邮件系统的病毒邮件蔓延;既要防止垃圾邮件泛滥,又要堤防内部敏感资料的泄漏。这些问题在3、5年前还不是很突出,但是仅仅过了几年,就对传统的电子邮件系统提出一个又一个考验。、许多邮件系统管理、配置复杂。Sendmail的配置文件sendmail.cf 非常难懂,以 至于出现了生成配置文件的工具;Exchange功能比较多,但是配置起来决不轻松;、Lotus Mail 仅仅实现一个内外部邮件路由,需要做许多配置,稍一疏忽,就会铸成大错。、绝大部分邮件系统的商业版本,不提供二次开
10、发接口,如果想开发基于邮件系统的深层次应用,只能采用外挂模式,效率比较低。、传统的电子邮件系统虽然也在不断升级,从某种程度上缓解了一些较为突出的矛 盾,但是受旧的技术架构所限,注定不能解决根本问题。在这种现实情况下,一方面,传统电子邮件系统越来越成为信息沟通的“瓶颈”;另一方面,随着中国加入WTO,中国各行各业面临前所未有的机遇、挑战、竞争,“企业信息化”越来越迫切,“电子政府”的投入也越来越大。、这一切,都对电子邮件系统提出更高的要求,也赋予更多的内涵。电子邮件系统越来越成为信息“沟通、交流、协作”的基础平台,越来越成为新生产工具和新生产力的代表。经过数年的潜心开发,以杨庭勇为首的四川成都乐
11、驰软件有限责任公司推出了全新的Tmail邮件系统,彻底全面解决了这些问题,无论是从系统稳定性、安全性上,还是功能性、易用性都有了重大的突破,使用户真正得到一个安全、稳定的系统,为您的电子邮件应用带来全新的感受。Tmail邮件系统主要解决这样几个问题:1、以小巧的邮件系统核心取代大而全的邮件系统,在高可靠性、安全性的前提下,保证邮件高速、并发投递。、以高度模块化实现高度扩展性。从几个邮箱到上千万邮箱的集群系统搭建,快速方便。、服务器端通过Mailet API实现功能扩展,可以很容易实现Mail2SMS, Mail2Fax 等功能扩展和应用系统集成。、人性化设计、精美的操作界面、傻瓜化管理体现在产
12、品的每一个细节中。、采用多机分布式处理结构设计,通过适当增加计算机的数量或提高单台计算机的性能即可满足不同的用户量要求。、模块化的功能设计,可以根据不同的应用环境和服务要求选择合适的软件功能模块进行搭配;不同的模块可以运行在不同的主机上,完成相应的功能采用多进程/多线程混合编程技术,既能在最短的时间内响应大量用户的并发访问,也能尽量降低对系统资源的消耗。、集中控制的用户身份验证服务器,各UAS之间既能实现负载分担同时也互为备份。单副本的邮件存储技术,为广泛开展的邮件列表服务提供最高效的实现方案。、提供进程级的服务质量保证,能限定各服务进程占用系统资源的数量,保证各并发服务能有效地共享系统资源。
13、、完善的可管理特性,提供基于Web的图形化系统管理员、企业管理员界面,支持远程管理。、标准的PHP应用服务器技术,分布式结构,无单点故障,轻松实现负载均衡、开放的应用程序接口,采用标准的PHP和UTF-8编码技术,便于系统维护和定制,便于实现与其他应用的集成。、内部采用UNICODE(UTF-8),支持多语种卓越的安全防护体系,保证邮件安全和个人邮件隐私:强大的反垃圾邮件机制、提供DoS、TrapIt、并发连接数限制、邮件大小等防范机制、提供SMTP AUTH支持、支持数字签名、加密传输和存储,提供SSL、S/MIME、PKCS12、Entrust等安全支持。Tmail4.12+Webadmi
14、n2.0新特性:后台:1.后台增加域名详细信息2.增加用户详细信息3.增加黑白名单4.增加简单用户组5.增加限制pop、stmp、imap、webmail的权限6.增加邮件网关功能7.增加用户邮件监控功能8.增加管理员备份数据功能9.增加查看明文密码功能前台:1.新增自动转发备份2.新增自动回复3.文件管理后台通过后台配额4.解决自动回复的问题5.解决不能在桌面页中显示用户名的问题6.解决写邮件时html编辑器加载过慢的问题7.解决垃圾邮件箱参数无效的错误第二章 操作系统FreeBSD安装.安装前的准备 你必须拥有FreeBSD.2的ISO文件,如果没有的话去,请大家去ftp.freebsdc
15、hina.org 或者其他FTP上面下载。对于新手我还是建议先看一遍FreeBSD的使用手册再开始学习FreeBSD理论很重要。.正式安装第一步光盘启动 设置你的服务器从光盘启动,使用默认的方式安装,10秒后系统默认从1.Boot FreeBSDdefault以默认选项安装,当然如果不想等待可以按回车键直接确认。 FreeBsd 光盘启动画面第二步sysinstall界面确认之后会进入自检,然后就进入了sysinstall一个简单面实用的图形安装界面。第二个Standard是标准安装,初学者经常用到这个,而且一般的教程也先介绍安装他,而在选择安装时会选ALL。因为我们是最小化安装,所以我们选择
16、第四个(Expree下的)Custom定制安装方式随后我们就会进入到定制安装界面。第三步分配硬盘空间选择第三个选项3 Partition进行磁盘的分配按键自动分配,按键完成返回 第一个会要求按快捷键选择你所需要的操作系统,我试过了如果没有其他的引导程序选择第三个是不行的,而且我想如果有其他的操作系统也必须要经过一些设置才可以使FreeBSD正常的选择启动。第四步分区 选择4 Label这一步分区,同样的按键,然后按完成自动分区返回。自动分区会将硬盘分成根目录/、swap /var /tmp /usr 五个区,如果系统将来作为正式生产使用,建议手动按需分区,具体分区要求及方法请参考本节最后说明。
17、第五步定制安装:首先选择5 Distribution进入下一级 然后选择Minimal最小化安装 第六步选择安装介质进入5 Media我们选择CD/DVD(以后大家也可以试着使用FTP等其他方式安装)第七步提交安装 选择OK回到上一级选择Commit确认安装第八步安装及确认确认安装,不过如果是多系统安装的话,请先保存好您的重要数据。 因为是最小化安装,所以安装很快,安装完成后会询问你是否要做一些改变,选择否。第九步重新启动选择否之后,一路取消,到sysinstall界面,然后选择Exit Install,弹出一个对话框提示你取出CD安装盘,选择YES计算机重新启动。第十步登陆界面 如果重启后出
18、现login登陆界面,那么恭喜你,一个FreeBSD.2的最小化安装就成功了输入管理员账号root就可以进入使用FreeBSD了。当然,如果要正常使用这个系统,还要进行一系列的配置,如安装网卡、设置网络、增加用户及安装相关应用软件等。注意:在系统安装过程中,如果作为生产使用,分区方面一定要注意,默认的mail目录在/var下,最好是设置一个独立的mail分区来存放用户的邮件数据,因为默认的VAR分区读写频繁,数据存放在这样的分区中是很危险的;另外注意放置mail目录的分区,应该分配最大空间给它使用。第三章 更新ports3.1 安装CVSUP(在之前需要先安装ports,否则会提示找不到por
19、ts目录)mail# cd /usr/ports/net/cvsup-without-guimail# make install clean安装过程中由于依赖的关系,它会自动安装gettext,会出现下面的选项。以下是我的选择。 Options for gettext 0.14.5_2 X EXAMPLES install example files X HTMLMAN install man pages in HTML format 如按以上方法不能成功安装cvsup,可尝试按如下方法:#setenv PACKAGEROOT ftp:/ftp.jp.freebsd.org #pkg_add
20、-r cvsup-without-gui(按这个步骤安装不会安装gettext,但下面安装HTTP时会安装。)设计/etc/make.conf 添加 MASTER_SITE_OVERRIDE=ftp:/ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/$DIST_SUBDIR或者MASTER_SITE_OVERRIDE?=.freebsd.org/$DIST_SUBDIR/或者MASTER_SITE_OVERRIDE?=.freebsd.org/$DIST_SUBDIR/选速度最理想的保留。3.2 更新ports树(更新日期2006-12-16)
21、编辑ports-supfilemail# ee /usr/share/examples/cvsup/ports-supfile第51行*default host=CHANGE_THIS.FreeBSD.org改为:*default host=cvsup2.freebsdchina.orgmail# /usr/local/bin/cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfileParsing supfile portsConnecting to Cvsup2.FreeBSDConnected to Cvsup2.FreeBSDServer
22、 software version: SNAP_16_1hNegotiating file attribute supportExchanging collection informationEstablishing multiplexed-mode data connectionRunningUpdating collection ports-all/cvsShutting down connection to serverFinished successfully出现上面的提示,表示更新成功。第四章 软件安装4.1 安装perl-5.8.8mail# cd /usr/ports/lang/
23、perl5.8mail# make install clean4.2 安装mysql-5.0.27mail# cd /usr/ports/databases/mysql41-servermail# make install clean(要是担心以后出现乱码:make WITH_CHARSET=gb2312 WITH_XCHARSET=all install clean)在rc.conf中加入Mysql的启动参数mail# echo mysql_enable=YES /etc/rc.conf启动mysqlmail# /usr/local/etc/rc.d/mysql-server startSt
24、arting mysql.查看mysql是否启动成功mail# sockstat -4 | grep 3306mysql mysqld 1510 3 tcp4 *:3306 *:*出现上面的端口表示mysql启动成功立即修改数据库ROOT密码:mysqladmin -u root password passwd 如果提示找不到mysqladmin,就进入mysql/bin执行。Mysql的root密码也可以这样改: 1.以root登陆 mysql;SETPASSWORDFORroot=PASSWORD(new_password);2. usemysql updateusersetPasswor
25、d=password(newpassword)whereUser=root; flushprivileges; 注意大小写。4.3 安装httpd-2.2.3mail# cd /usr/ports/www/apache22mail# make install clean重新启动Apache之前要对httpd.conf作相应更改如servername等,否则启动时会报错如:httpd: Could not reliably determine the servers fully qualified domain name, using for ServerName在rc.conf中加入apach
26、e的启动参数mail# echo apache22_enable=YES /etc/rc.conf启动apachemail# /usr/local/etc/rc.d/apache22 startStarting apache.查看apache是否启动成功mail# sockstat -4 | grep 80www httpd 10679 16 tcp4 *:80 *:*www httpd 10678 16 tcp4 *:80 *:*www httpd 10677 16 tcp4 *:80 *:*www httpd 10676 16 tcp4 *:80 *:*www httpd 10675 16
27、 tcp4 *:80 *:*root httpd 10674 16 tcp4 *:80 *:*出现上面的80端口表示apache启动成功为了提高安全性,接下来可做点优化工作:#ee /usr/local/etc/apache22/httpd.conf/查找 :#Listen 12.34.56.78:80 /行,将该行下面的内容修改为Listen 125.208.15.3:80 /此处为您服务器的IP地址/再往下找. Options Indexes FollowSymLinks/改为Options FollowSymLinks/别说我没告诉你.163都会有这种错误.被黑客目录浏览到配置文件.到时
28、候死了没我的事./ESC退出保存4.4 安装php-5.1.6mail# cd /usr/ports/lang/php5mail# make install clean以下是我的选择 Options for php5 5.1.6_3 CLI Build CLI version CGI Build CGI version X APACHE Build Apache module DEBUG Enable debug SUHOSIN Enable Suhosin protection system X MULTIBYTE Enable zend multibyte support(不要勾选) IP
29、V6 Enable ipv6 support REDIRECT Enable force-cgi-redirect support (CGI only) DISCARD Enable discard-path support (CGI only) FASTCGI Enable fastcgi support (CGI only) PATHINFO Enable path-info-check support (CGI only) mail# echo AddType application/x-httpd-php .php /usr/local/etc/apache/httpd.confmai
30、l# echo AddType application/x-httpd-php-source .phps /usr/local/etc/apache/httpd.conf以上的apache都要改成apache22才对。安装完成后可检查/usr/local/etc下有没有自动生成php.ini文件,如没有则cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini另外按这个方法安装的Zend不能解析老大的wenadmin,正确的方法是在上面安装php时不要钩选MULTIBYTE Enable zend multibyte support。编辑htt
31、pd.conf加入index.phpDirectoryIndex index.html index.html.var index.php#注:在DirectoryIndex这里加入index.php,是为了让apache支持首页为index.php的首页文件4.5 安装php5的扩展mail# cd /usr/ports/lang/php5-extensionsmail# make install clean Options for php5-extensions 1.0 X BCMATH bc style precision math functions X BZ2 bzip2 librar
32、y support X CALENDAR calendar conversion support X CTYPE ctype functions X CURL CURL support DBA dba support DBASE dBase library support X DOM DOM support EXIF EXIF support FILEINFO fileinfo support FILEPRO filePro support FRIBIDI FriBidi support X FTP FTP support X GD GD library support GETTEXT get
33、text library support GMP GNU MP support X HASH HASH Message Digest Framework X ICONV iconv support IMAGICK ImageMagick support X IMAP IMAP support INTERBASE Interbase 6 database support (Firebird) LDAP OpenLDAP support MBSTRING multibyte string support X MCRYPT Encryption support X MHASH Crypto-hash
34、ing support MING ming shockwave flash support MSSQL MS-SQL database support X MYSQL MySQL database support MYSQLI MySQLi database support NCURSES ncurses support (CLI only) ODBC unixODBC support OPENSSL OpenSSL support PANDA panda support PCNTL pcntl support (CLI only) X PCRE Perl Compatible Regular
35、 Expression support PDF PDFlib support (implies GD) X PDO PHP Data Objects Interface (PDO) PGSQL PostgreSQL database support X POSIX POSIX-like functions PSPELL pspell support READLINE readline support (CLI only) RECODE recode support X SESSION session support SHMOP shmop support X SIMPLEXML simplexml support SNMP SNMP support SOAP SOAP support SOCKETS sockets support X SQLITE sqlite support SYBASE_CT Sybase database support SYSVMSG System V message support SYSVSEM System V semaphore support SYSVSHM