当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Linux下安全高效Web邮件服务器

Linux服务器
手把手安装FreeBSD5.4服务器操作系统
SAMBA服务器配置实例分析
在FreeBSD5.0上配置DNS服务手记
在FreeBSD6.0中设定FTP服务器
Linux网络环境使用新闻组客户端
Linux配置安装Domino服务器
Linux下安全高效Web邮件服务器
Linux与Windows共享建最简Samba
Linux下TCP网络服务器实现源代码
打造基于Linux的VPN服务器
linux服务器-架设安全的CVS服务器
在LINUX系统上建立FTP加密传输
ApacheWeb服务器的完全安装指南
linux服务器-FreeNAS服务器初探
centos配置apache、php、jdk、resin
VSFTPD服务器安装配置
应用程序跟踪对性能改变进行量化分析
构筑LAMP框架之apache
Apache和Subversion搭建安全CVS
Linux架设支持Mysql的动态Web服务器

Linux服务器 中的 Linux下安全高效Web邮件服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 120 ::
收藏到网摘: n/a

利用浏览器通过web方式来收发电子邮件的服务或技术(WebMail),不需借助邮件客户端,可以说只要能上网就能使用极大地方便了用户对邮件的收发。对于不能熟练使用邮件客户端,或者在网吧不便使用邮件客户端的用户来说,WebMail更是必不可少的选择。另外,设定pop3server,smtpserver等对于某些使用者来说也有点困难。这时候WebMail就显出它的好处了。

ebMail就是使用者透过浏览器连到web服务器,而由webserver上的程序负责作收信/送信的动作.使用者直接透过browser作读信/写信等操作,信件其实并不存在使用者的计算机上.因此无论使用者用的是哪一部计算机,只要可以连上网络,都可以使用读到之前与新收到的信件。另外一个好处是WebMail不容易因为读取含有病毒的档案而导致中毒,更不会发生个人邮件系统中毒后,寄送大量病毒信件给其它亲朋好友的这种惨剧。

一、软件概述与下载:

Email能够成为当今Internet上应用最广泛的网络服务,WebMail可谓功不可没。在Linux下系统中MTA服务的软件有许多,常用Sendmail、Qmail、Postfix等软件,本文使用RHEL4.0+Postfix+dovecot+Apache+OpenWebMail制作一个集POP和WebMail等功能的电子邮件系统。下面讲述如何把Linux机器配置成一个基于Web的电子邮件系统。这个电子邮件系统可以用于一个小团体或者组织之中。当然如果你家里有一个互联网连接(比如ADSL),那么它也可以用安全的方式远程检测你的电子邮件。

Postfix是一个非常优秀的MTA,她素以高效、安全的特点而著称。Postfix是作者在UNIX上所见过的MTA中在反垃圾邮件(Anti-Spam或Anti-UCE)方面做得最好的一个,甚至有很多公司在Postfix代码的基础上进行二次开发而推出反垃圾邮件网关产品。MTA的反垃圾邮件功能,实际上就是在MTA处理过程中对会话进行过滤。这个过滤不但过滤了发往自身的垃圾邮件,而且还防止了自身被恶意利用发送垃圾邮件。Postfix实现了目前所有主要的MTA过滤技术。postfix是WietseVenema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。和Sendmail相比Postfix更快、更容易管理、更灵活、更安全,同时还与sendmail保持足够的兼容性。Sendmail相比Postfix对比见表1。

表1Sendmail与Postfix的对比


OpenWebmail优点:

良好的使用接口、多国语言(目前共支持超过30种语言)、多组图示,多组布景,可以依个人喜好自订背景、在线更改密码(必需记得原来的密码)、与Outlook接近的多媒体信件显示能力、多种字集内码自动转换、支援HTML信件编写、拼字检查(英文字典字数可能不足)、支持草稿暂存、可动态切换写信字集内码、POP3外部邮件、邮件规则(可建立过滤规则)、信件“搬移/复制/删除/下载”功能、信箱“建立/重整/更名/删除/下载”功能、通讯簿、全文检索、自动清除垃圾桶N天以上邮件。openwebmail缺点:由于openwebmail使用perl脚本语言编写的,执行速度可能不如php。OpenWebmail主页提供许多格式的软件,请根据Linux发行版本选择合适的软件包。

本文使用rpm格式。

本文设定一台Linux服务器配域名:cao.net,i

p地址:192.168.1.253,

邮件主机:mail.cao.net。

所有需要安装的软件:cyrus-sasl、dovecot、httpd、perl-Text-Iconv、perl-suidperl、perl-Compress-Zlib、perl-CGI-SpeedyCGI。其中Postfix、sendmail+cyrus-sasl+dovecot+httpd+perl在安装系统时一起安装。

其他软件需要进行下载:

#wgethttp://openwebmail.com/openwebmail/download/redhat/rpm/release/openwebmail-2.51-1.i386.rpm
#wgethttp://distro.ibiblio.org/pub/linux/distributions/startcom/ML-4.0.4/updates/i386/perl-suidperl-5.8.5-12.1.1.i386.rpm
#wgethttp://mirrors.ircam.fr/pub/dag/packages/perl-Text-Iconv/perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
#wgethttp://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el4/en/i386/RPMS.dries/perl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm

二、postfix的安装与启动过程:

(1)杀掉所有Sendmail进程

#killallsendmail(停止所有的Sendmaail进程)
sendmail:noprocesskilled
#rpm-ivhpostfix-2.2.5-3.rhel4.i386.rpm

(2)启动dovecot服务过程:

#servicepostfixstart
Startingpostfix:[确定]
#servicedovecotstart
启动DovecotImap:[确定]
现在可以使用邮件服务器发送邮件了,但是还不能下载邮件,因为新版redhatLinux中dovecot代替了imap软件包,但是还没有绑定POP3和POP协议,下面修改配置文件:/etc/dovecot.conf,
#protocols=imapimap3
protocols=imapimap3pop3pop3s
auth_passdb=
更改为:
auth_passdb=shadow
然后重新启动dovecot服务:
#servicedovecotrestart
停止DovecotImap:[确定]
启动DovecotImap:[确定]

(3)修改postfix邮件服务器配置文件:

#myhostname=host.domain.tld
更改为:
myhostname=mail.cao.net
#mydomain=domain.tld
更改为:
mydomain=cao.net
#myorigin=$mydomain
更改为:
Myorigin=cao.net
#inet_interfaces=all
更改为:
Inet_interfaces=all
#mydestination=$myhostname,localhost.$mydomain,localhost,$mydomain,mail.$mydomain,www.$mydomain,ftp.$mydomain
更改为:
mydestination=$myhostname,localhost.$mydomain,localhost,$mydomain,mail.$mydomain,www.$mydomain,
ftp.$mydomain
#mynetworks=host
更改为:
mynetworks=host

(4)端口测试:

#telnetmail.cao.net25(测试25端口)
Trying127.0.0.1...
Connectedtolocalhost.localdomain(127.0.0.1).
Escapecharacteris'^]'.
220mail.cao.netESMTPPostfix
quit
221Bye
Connectionclosedbyforeignhost.
#telnetmail.cao.net110(测试110端口)
Trying127.0.0.1...
Connectedtolocalhost.localdomain(127.0.0.1).
Escapecharacteris'^]'.
+OKdovecotready.
quit
+OKLoggingout
Connectionclosedbyforeignhost.

(5)安装防范病毒软件

F-ProtAntivirus软件包安装和配置过程:

Wegthttp://files.f-prot.com/files/linux-x86/fp-linux-ws.rpm

安装F-ProtAntivirus软件包前,请先启动SpamAssassin服务器:
MattSergeant、CraigHughes和JustinMason于发布的SpamAssassin(SA)。目前最新版本是3.0.2,它是较为流行的反垃圾邮件软件,据SpamAssassin供应商Deersoft的统计,目前大约有3万台Unix服务器上使用了SpamAssassin。SpamAssassin利用Perl语言来对邮件内容进行规则匹配,从而达到判断过滤垃圾邮件的目的。它的判断方式是基于评分的方式,也就是说如果这封邮件符合某条规则,则给与一定分值;当累计的分值超过了一定限度时,则判定该邮件为垃圾邮件。对Sendmail、Qmail、Postfix和Exim等各种邮件平台都适用。SpamAssassin的安装过程比较简单。
#servicespamassassinstart(启动SpamAssassin服务器)
Startingspamd:[确定]
#rpm-ivhfp-linux-ws.rpm(安装F-ProtAntivirus软件包)
升级的F-ProtAntivirus病毒库的操作:
#cd/usr/local/f-prot/tools/
#./check-updates.pl(升级命令)
***************************************
*F-ProtAntivirusUpdater*
***************************************
Nothingtobedone...
MailScanner软件包安装和配置过程:
Wegthttp://www.sng.ecs.soton.ac.uk/mailscanner/downloads.shtml
#mvMailScanner-4.50.5-1.rpm.tar.gz/tmp/source/(移动文件到/tmp/source/目录中)
#cd/tmp/source/(进入source目录中)
#tar-zxvfMailScanner-4.50.5-1.rpm.tar.gz(MailScanner解压过程)
#cdMailScanner-4.50.5-1(进入MailScanner软件解压目录)
#./install.sh(执行MailScanner软件的安装命令)
更改incoming、quarantine两个目录相关用户和组的使用权限:
#chownpostfix.postfix/var/spool/MailScanner/incoming
#chownpostfix.postfix/var/spool/MailScanner/quarantine
修改/etc/MailScanner/目录下的MailScanner.conf文件,修改详细内容以下:
详细内容:
RunAsUser=
RunAsGroup=
更改为:
RunAsUser=postfix
RunAsGroup=postfix
IncomingQueueDir=/var/spool/mqueue.in
OutgoingQueueDir=/var/spool/mqueue
更改为:
IncomingQueueDir=/var/spool/postfix/hold
OutgoingQueueDir=/var/spool/postfix/incoming
MTA=sendmail
更改为:
MTA=postfix
VirusScanners=none
更改为:
VirusScanners=f-prot
AlwaysIncludeSpamAssassinReport=no
更改为:
AlwaysIncludeSpamAssassinReport=yes
UseSpamAssassin=no
更改为:
UseSpamAssassin=yes
RequiredSpamAssassinScore=6
更改为:
RequiredSpamAssassinScore=4
SpamAssassinUserStateDir=
更改为:
SpamAssassinUserStateDir=/var/spool/MailScanner/spamassassin
SpamAssassinInstallPrefix=
更改为:
SpamAssassinInstallPrefix=/usr/bin
SpamAssassinLocalRulesDir=
更改为:
SpamAssassinLocalRulesDir=/etc/MailScanner
修改/etc/postfix/目录下的header_checks文件,新增加以下一行内容到文件中,详细内容如下:
/^Received:/HOLD
修改/etc/postfix/目录下的main.conf文件,详细内容如下:
#header_checks=regexp:/etc/postfix/header_checks
更改为:
header_checks=regexp:/etc/postfix/header_checks
停止Postfix服务器,因为启动MailScanner服务时会自动启动Postfix服务器:
启动MailScanner服务器和设置开机时自动启动:
#serviceMailScannerstart
StartingMailScannerdaemons:
incomingpostfix:[确定]
outgoingpostfix:[确定]
MailScanner:[确定]
#chkconfig--level33MailScanneron

(6)病毒检测测试:

从网站(http://www.eicar.org/anti_virus_test_file.htm)下载一个测试病毒文件:eicar.com。编写一封测试邮件(附件中带上的eicar.com文件)。系统检测到邮件病毒,见图1。

图1病毒检测界面
查看maillog日志,请确认日志中是否存在以下相近的信息:

详细内容:
Jan812:11:08mailMailScanner[9199]:VirusScanning:F-ProtfoundvirusEICAR_Test_File
Jan812:11:08mailMailScanner[9199]:VirusScanning:F-Protfound1infections
Jan812:11:08mailMailScanner[9199]:InfectedmessageE73EE13C07C.07685camefrom
Jan812:11:08mailMailScanner[9199]:VirusScanning:Found1viruses
Jan812:11:09mailMailScanner[9199]:Requeue:A9D6413C085.39DDEto6414713C089
Jan812:11:09mailMailScanner[9199]:Uninfected:Delivered1messages

如出现以上的日志信息就代表您的F-ProtAntivirus+MailScanner-4.31.6-1架设已经成功啦,

(7)如果希望邮件服务器每次启动都能自动运行,可以用服务设置功能。以root权限运行命令:
#redhat-config-services

图2邮件服务器自动启动

打开如图2所示的窗口,在dovecot服务选项加上勾,然后重新启动系统,这样系统会启动邮件服务。

三、安装配置Web邮件服务器

(1)软件安装

#rpm-ivhperl-5.8.5-12.1.i386.rpm
#rpm-ivhperl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm
#rpm-ivhperl-Compress-Zlib-1.34-1.2.el4.rf.i386.rpm
#rpm-ivhperl-suidperl-5.8.5-12.1.1.i386.rpm
#rpm-ivhperl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
#rpm-ivhopenwebmail-2.51-1.i386.rpm

(2)初始化配置文件

运行命令:
#/var/www/cgi-bin/openwebmail/openwebmail-tool.pl――init
根据屏幕提示修改配置文件,见图3。

图3屏幕提示要修改配置文件


(3)修改配置文件

#cd/var/www/cgi-bin/openwebmail/etc/

使用编辑器手工建立dbm.conf文件,主要包括以下内容:
dbm_ext.db
dbmopen_ext.dbm
dbmopen_haslockno

(4)重新初始化配置文件

#/openwebmail-tool.pl–init

系统询问是否发送站点包括选择不发送(按“n”按钮),见图4。

图4重新初试化设定


(5)修改其他文件

把/var/www/cgi-bin/openwebmail/etc/openwebmail.conf文件中字段:
#domainnamesauto
更改为:
domainnamescao.net#更改为自己定义的域名#
default_languageen
更改为:
default_languagezh_CN.GB2312#更改为简体中文版介面#
把/var/www/cgi-bin/openwebmail/etc/defaults/openwebmail.conf文件中的字断:
smtpserver127.0.0.1
更改为:
smtpserver192.168.1.253#更改smtp服务器的地址#
authpop3_serverlocalhost
更改为:
authpop3_server192.168.1.253#更改pop3服务器的地址#
把/var/www/cgi-bin/openwebmail/etc/defaults/dbm.conf文件中的字断:
dbmopen_extnone
更改为:
dbmopen_ext.db
dbmopen_haslockno
更改为:
dbmopen_haslockyes
smtpserver192.168.1.253#添加smtp服务器的地址#

(6)再次运行openwebmail-tool.pl文件

然后在浏览器输入:http://localhost/var/www/cgi-bin/openwebmail/openwebmail.pl即刻进入见图5。
图5openwebmai的登录界面
至此,Webmail邮件服务器设定就完成了!

四、openwebmail的系统基本设置和管理

(1)基本工作界面设定

图5是中文Openwebmail工作界面。

图5中文Openwebmail工作界面


图5是基本设置选项,它允许你改变许多设定以适合你的邮寄需求。假如你是初次使用OpenWebmail,你应当先进入设定控制画面,而不是直接到收件箱。

首先点击配置按钮进行设置选项的单元。包括:个人信息,外观设定,读信相关设定,邮件操作设定,回信设定,邮件过滤设定,日程表设定,其他设定。见图6。

图6Openwebmail的配置界面


个人信息主要内容见下表。


外观设定可以让你改变颜色、格式、大小、图片和其他的显示设定。主要内容见见下表。


读信相关设定相当简单,改变收信的方法只要确定方块勾选或是不勾选就可以了。你可以依据你的使用喜好和最适屏幕宽度来设定。见下表。


邮件操作设定关于邮件的执行行为设定(例如移动或是复制)。见下表。


回信设定是关于信件回复时的方式,见下表。


邮件过滤设定决定如何过滤邮件。见下表。


日程表设定见下表。


其他设定收集一些设定项目,不一定会被归类在一起的项目。见下表。


(2)Openwebmail的使用非常简单,在的首页的“帮助”中有200页的常见操作信息。中文帮助界面见图7。

图7Openwebmail的帮助中心


如果你无法在帮助中找到您所需要的答案,或是在安装OpenWebmail需要协助,请连到下列网站...
OfficialOpenWebmailSite
SourceForge.netWebmailForum
FreshMeat.netOpenWebmailForum

(3)openwebmail的日志文件的定期地清理

日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理以免造成磁盘空间的不必要的浪费。同时也加快了网管员查看日志所用的时间,因为打开小文件的速度比打开大文件的速度要快。要使系统重新使用空的日志文件,可以执行操作:
修改文件/etc/logrotate.d/syslog,在文件尾加入以下内容:
/var/log/openwebmail.log{
postrotate
/usr/bin/killall-HUPsyslogd
endscript}

五、增强Web邮件服务器的安全


(1)Web服务器的安全

由于使用了ApacheWeb服务器,所以要为其配置SSL库。这些库提供了SSL需要的功能。在你查看电子邮件时,需要有一个安全的Web服务器来保护你的密码,以及所有流到Web服务器的信息。这样可以避免别有用心的人通过监听会话来获取密码。由于Apache服务器安全不是本文关注重点,所以具体步骤请查看相关文档。

(2)保护postfix服务器

本文中openwebmail是基于postfix邮件服务器的,所以要保护postfix服务器。

1、通过阻止IP地址或主机名方式访问邮件服务器来拒收邮件:
在main.cf配置文件中使用以下行定义网络地址“
#mynetwork=192.168.1.0/24
表示除非客户端的ip地址符合$mynetworks参数定义的范围则接受该客户端的连接请求,才转发该邮件。

2.在postfix中添加RBL功能
RBL(RealtimeBlackholeList)是实时黑名单。国外有一些机构提供RBL服务,它们把收集到的专发垃圾邮件的IP地址加入他们的黑名单,我们只要在postfix中加入RBL认证功能,就会使我们的邮件服务器在每次收信时都自动到RBL服务器上去查实,如果信件来源于黑名单,则postfix会拒收邮件,从而少受垃圾邮件之苦。通常在mail.cf加入
map_rb1_domains=mail-abuse.org
smtp_client_restrictions=reject_map1_rb1
其中第一行设置需要联系得到的RBL列表的所有主机,接着设置需要进行应用的限制。然后存盘,从新启动postfix服务器。

3、通过化装隐藏内部邮件地址
如果网络中有发送邮件的中央邮件服务器,它为主机提供许多服务。那么必须隐藏邮件地址的主机名称部分。例如在一台名为pc-joe.yourcompany.com服务器上有一个用户名称是joe,当joe通过Postfix网关发送邮件时,他的地址显示为:[email protected]。对外隐藏内部主机名称是一个很好的安全策略,相关配置文件下列选项:
masquerade_domains=$mydomain
masquerade_exceptions=root

上面代码第一行表示:对所有域进行化装,通过变量$mydomain来完成。这意味[email protected]以后作为[email protected].出现。上面代码第二行表示:不对root用户进行化装。

4.使用header_checks&body_checks
要使用header_checks或body_checks請在main.cf手工建立:
header_checks=regexp:/etc/postfix/header_checks
body_checks=regexp:/etc/postfix/body_checks

5.拒绝找不到DNS资源记录中MX/A记录的主机的邮件
这个机制是查寻寄件者的主机地址,再使用这个位置去做DNS查寻,一般在垃圾邮件发送者会随意造一个主机名称以企图蒙骗过关,对于这种手法实只要使用一个设定既可。在main.cf加上一行:
smtpd_sender_restrictions=reject_unknown_sender_domain

(3)升级openwebmail版本

早期的openwebmail版本存在一些安全隐患,所以要使用2.3以后版本。过程和安装相同。另外由于openwebmail功能强大包含系统信息也比较多,所以,您必须要了解到这个软件有可能会产生一些安全上的漏洞的。建议您随时注意openwebmail官方网站:http://openwebmail.com/,这里不定期的会有一些安全技术公告,可以帮助您的web邮件服务器使用更加安全。

六、加速邮件服务器

(1)使用speedcgi来加速

针对Openwebmail速度慢的缺点,可以使用speedcgi来加速。
#rpm-ivhperl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm

接着执行命令:“speedy_convert”,这个命令会自动设定已安装的OpenWebMail以便让其以SpeedyCGI方式执行。

(2)启动HTTP资料压缩传送

从OpenWebMail2.10版本开始,新增支持HTTP数据压缩传送功能,对于透过调制解调器联机或是使用PDA上网的使用者来说,这个功能能够大幅地降低传输网页数据所需的时间.要让这个功能正常动作,必须先在您的openwebmailserver上安装Compress-Zlib模块,方法如下:
#wgethttp://openwebmail.com/openwebmail/download/packages/Compress-Zlib-1.33.tar.gz
tar-zxvfCompress-Zlib-1.33.tar.gz
cdCompress-Zlib-1.33
perlMakefile.PL
make;makeinstall

此时在登录openwebmail时会出现“HTTP资料压缩传送”选项。这样可以加速邮件服务器运行速度。

上一页[1][2][3][4][5]