首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > 其它邮件服务器软件 > Linux下架设安全的Web邮件服务器 > 正文

Linux下架设安全的Web邮件服务器

出处:赛迪网 作者:赛迪网 时间:2007-4-23 15:32:13
 我们讲述如何把Linux机器配置成一个基于Web的电子邮件系统。这个电子邮件系统可以用于一个小团体或者组织之中。当然,如果你家里有一个Internet连接(比如DSL),那么它也可以用安全的方式远程检测你的电子邮件。

  我们使用的软件是带有mod_ssl和PHP4的Apache,还有Webmail软件Aeromail。之所以选择这一组合,是因为它们的开发和维护都非常活跃,安装非常简单,功能也非常丰富。

  假设系统上还没有安装Web服务器或者SSL库。首先要安装基本的邮件服务器、IMAP服务器,并且确保它们只接收本地连接。接着,要构建一个强大的Web服务器,它支持SSL(加密套接字协议层)连接和PHP脚本语言。接下来,安装用于在一个Web页面上显示邮件的软件就非常简单了。

  下面是要下载的文件表:

  -rw-r--r-- 1 jose jose 22841 Nov 19 15:18 aeromail-1.40.tar.gz

  -rw-r--r-- 1 jose jose 2847497 Oct 25 19:14 apache_1.3.14.tar.Z

  -rw-r--r-- 1 jose jose 1866035 Oct 25 13:27 imap.tar.Z

  -rw-r--r-- 1 jose jose 748253 Oct 25 19:15 mod_ssl-2.7.1-1.3.14.tar.gz

  -rw-r--r-- 1 jose jose 2086131 Sep 24 11:46 openssl-0.9.6.tar.gz

  -rw-r--r-- 1 jose jose 2225976 Nov 5 13:31 php-4.0.3pl1.tar.gz

  之所以选择这些版本是因为它们提供了大部分的功能,并且非常稳定。在自己架设服务器时,建议最好使用最新的可用版本,并且随时关注补丁的发布。

  现在有了所需要的软件就可以开始工作了。应该说,整个配置过程不会花太多的时间,在本文中,我们把所有的文件都置于同一个目录之下(/webmail),而Apache则安装于缺省的目录之下,即/usr/local/apache/htdocs。

  安装前的准备

  我们要在电脑中安装一个软件包用于实现监听服务。一般来说,Linux工作站在安装过程中不会安装该软件。这个程序就是inetd服务器,它可以监听一些邮件收发的后台程序。在Red Hat 6.2的安装中,包含该程序的RPM文件是inetd-0.16-4.i386.rpm。在Red Hat 6.2中,下面的步骤将完成inetd后台程序的安装:

  # rpm -ivh inetd-0.16-4.i386.rpm

  # /usr/sbin/inetd

  # /sbin/chkconfig inetd on

  构建IMAP服务器

  IMAP(Internet Message Access Protocol)是用户从不同的计算机访问邮件的一种方式。它的工作方式是在一台中央计算机上存储信息,并且允许用户访问信息的一个拷贝。你可以让本地工作站和服务器同步,此外也可以为邮件创建一个文件夹,并且具有完全的访问权限。这一点和POP3不同。

  首先,下载文件,并且将其解压缩:

  $ tar -zxvf imap.tar.Z

  然后进入新建的目录中并且编译IMAP服务器。因为使用的是Linux,所以这个过程非常简单:

  $ cd imap-2000

  $ make slx

  (输出结果省略)

  安装新的IMAP服务器也非常简单,只需将其放到合适的位置即可:

  # cd imapd

  # cp imapd /usr/sbin/imapd

  现在要告诉计算机如何监听imapd连接,以及如何处理这些连接。首先,编辑inetd配置文件inetd.conf:

  # vi /etc/inetd.conf

  修改经常要读取的行:

  #imap stream tcp nowait root /usr/sbin/tcpd imapd

  将其改为:

  imap stream tcp nowait root /usr/sbin/tcpd imapd

  也就是去掉行前的“#”号,告诉inetd该行不是注释行。然后告诉inetd重新读取这些配置。我们通过向inetd进程发送HUP信号来达到这一目的。首先要得到进程的ID号:

  # ps -ax   grep inetd

  7699 ? S 0:00 inetd

  此处的7699指的是inetd的进程ID号,当然你自己配置时ID号可能会不同。下面告诉inetd重新读取配置文件:

  # kill -HUP 7699

  最后,要确保inetd拒绝任何不速之客。在现实中,很多黑客喜欢通过突破imapd服务来突破系统,为此,我们限制该服务器仅限于连接本地机器。这就意味着只有本地的Web服务器可以连接它。我们通过编辑以下文件来实现这一目的:

  # vi /etc/hosts.deny

  在其中加入用于IMAP程序的一行:

  imapd:ALL

  接下来编辑允许连接的文件:

  # vi /etc/hosts.allow

  并且在文件的未尾加上下面的内容:

  imapd: 127.0.0.1

  到此为止,第一部分的安装就完成了。
  配置SSL库

  下面要为安全的Web服务器编译所需的库。这些库提供了SSL需要的功能。在你查看电子邮件时,需要有一个安全的Web服务器来保护你的密码,以及所有流到Web服务器的信息。这样可以避免别有用心的人通过监听会话来获取密码。

  编译和安装库的过程非常简单。从包含所需文档的目录开始,首先解开文档:

  $ tar -zxvf openssl-0.9.6.tar.gz

  然后,要配置和编译库。配置过程很方便,系统可以自动找出所需信息,编译过程也是自动进行的。

  $ cd openssl-0.9.6

  $ ./config

  (输出结果省略)

  $ make

  (输出结果省略)

  下面,以root的身份在缺省目录下安装软件。因为使用OpenSSL的程序通常认为它位于默认位置(/usr/local/ssl),因此最好不要对其进行更改。

  #make install

  现在就完成了所需库的安装。其它的程序也可以使用这些库了。

  支持PHP4

  下面是本例中最耗时间的一个过程,但是实现起来也不是很困难。我们要构建一个强大的Web服务器,它要支持PHP4脚本语言,并且可以通过SSL进行安全连接。要做到这一点,首先要把这些部件和服务器软件结合起来,然后编译它。

  首先解开在安装过程中所需的源代码:

  $ tar -zxvf Apache_1.3.14.tar.gz

  $ tar -zxvf mod_ssl-2.7.1-1.3.14.tar.gz

  $ tar -zxvf php-4.0.3pl1.tar.gz

  注意,在此mod_ssl有两个版本号,即2.7.1和1.3.14。这是因为其中有一些针对Apache的补丁和附加的代码。我们一定要使用和Apache源代码相对应的版本,否则将无法正常工作。

  首先要做的事情是把这些来自mod_ssl的源代码补丁应用到Apache中。在这个过程中,只需指明Apache源代码所处的位置即可:

  $ cd mod_ssl-2.7.1-1.3.14

  $ ./configure --with-Apache=../Apache_1.3.14

  $ cd ..

  在这一步骤中,要注意是否有错误提示,否则它很有可能和下面步骤的错误混杂在一起。如果的确有错误提示,那么请检查mod_ssl的版本是否和所用的Apache版本一致。

  下面,要对Apache源代码的目录树进行预配置。这样做的目的是为了让PHP源代码知道所有有关Apache系统的信息。

  $ cd Apache_1.3.14

  $ ./configure --prefix=/usr/local/Apache --without-confadjust

  $ cd ..

  现在就已经完成了PHP在Apache中的安装。在这个部分,要编译PHP的大部分模块,因此可能要花一些时间。此外,还要PHP能够支持IMAP客户端功能。该功能是基于Web的电子邮件系统所需要的。

  $ cd php-4.0.3pl1

  $ ./configure --with-Apache=../Apache_1.3.14 --with-imap=../imap-2000

  现在开始安装:

  $ make install

  $ cd ..

  现在已经做好了编译Apache服务器的准备。它要能够支持SSL和PHP4,因此要在配置时告诉它要包括这些部分,还要指明SSL库的位置,也就是上述安装OpenSSL的位置。

  $ cd Apache_1.3.14

  $ SSL_BASE=/usr/local/ssl ./configure \ --enable-module=ssl --without-

  confadjust \ --activate-module=src/modules/php4/libphp4.a

  这里需要注意的是,libphp4.a还不存在,但这一步要确保它被编译进服务器中。下面就可以编译和安装Web服务器和SSL证书了。

  $ make

  $ make certificate

  这一步骤可以为服务器生成一个交互式的证书。这用于和Web终端之间用密码的信息交流中。与此同时,还要回答以下问题:

  Signature Algorithm ((R)SA or (D)SA) [R]: R

  (omitted)

  1. Country Name (2 letter code) [XY]: China

  2. State or Province Name (full name) [Snake Desert]: BeiJing

  3. Locality Name (eg, city) [Snake Town]: BeiJing

  4. Organization Name (eg, company) [Snake Oil, Ltd]: Home

  5. Organizational Unit Name (eg, section) [Webserver Team]: Parents

  6. Common Name (eg, FQDN) [www.snakeoil.dom]: friend.dsl.isp.com

  7. E-mail Address (eg, name@FQDN) [www@snakeoil.dom]: friend@isp.com

  8. Certificate Validity (days) [365]: 365

  STEP 3: Generating X.509 certificate signed by Snake Oil CA [server.crt]

  Certificate Version (1 or 3) [3]: 3

  (输出结果省略)

  Encrypt the private key now? [Y/n]:n

  (输出结果省略)

  最后,可以安装整个服务器、配置和证书:

  #make install

  为了能够读懂PHP文件(该过程由服务器处理),需要编辑配置文件。同时,还要强迫Webmail终端使用SSL。

  # cd /usr/local/Apache/conf

  # vi httpd.conf

  首先更改服务器,使它可以解释PHP文件。我们只需去掉下列行前面的“#”即可:

  AddType application/x-httpd-php .php3

  AddType application/x-httpd-php-source .phps

  AddType application/x-httpd-php .php

  AddType application/x-httpd-php-source .phps

  虽然PHP4是向后兼容的,但是如果处理PHP3文件,将不能够正确解析,所以就只把它作为一般的PHP文件来处理。也就是说把上述第一行的“3”删去。

  接下来要设置服务器,以确保在读取电子邮件时需要SSL。这是避免在网络上使用普通文本传送密码。通过添加下列几行来实现这一功能。

  

  SSLRequireSSL

  

  保存好配置文件,再进行下一个部分的安装和设置。
  安装Aeromail

  现在就可以安装Webmail软件了。在本例中,选择的是Aeromail。之所以选择它是由于它简单、易于安装和设置。

  首先将文件包解压缩至Web文档目录之下:

  # cp aeromail-1.40.tar.gz /usr/local/Apache/htdocs/

  # cd /usr/local/Apache/htdocs/

  # tar -zxvf aeromail-1.40.tar.gz

  # cd aeromail

  下面来编辑Aeromail配置文件:config.inc。

  #vi config.inc

  这里面要做的最重要改变就是当退出登录或者取消登录时对页面进行重定向。应该把它定向到自己的Web服务器上。要做到这一点,只需下面的行即可:

  $SERVER_REDIR = "http://the.cushman.net/";

  其它的变量,比如每一屏显示的信息数、颜色主题等都是可以配置的。配置文件中的注解可以帮助你找到这些相关的内容。

  测试服务器

  现在要进行一些测试。首先要启动服务器:

  # /usr/local/Apache/bin/Apachectl startssl

  将看到如下内容:

  Apachectl startssl: httpd started

  如果没有看到上述内容,那么可能是什么地方出现了问题。最好的办法是查看诊断日志文件,该文件位于../logs/error_log。

  现在来看一看是否在监听两个新的端口。使用netstat来查看这些内容:

  # netstat -na   grep LISTEN

  tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN

  tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN

  很显然,有两个正在监听的套接字,80/TCP和433/TCP端口。现在我们要连接到服务器,并且测试安全Webmail连接。启动一个浏览器(Netscape、Konqueror等),并且在其URL中输入服务器名,本例中为friend.dsl.isp.com,而安全的Aeromail站点的URL应该是:https://friend.dsl.isp.com/aeromail/
  接下来要做的是接受证书。对于Netscape,需要有几个步骤,现简述如下:

  首先出现的是一个突出窗口,提示该站点是加密的,Netscape并不能识别这一签字权。点击“Next”继续。

  1.第二步将告诉一些有关证书的内容,如果点击“More Info”钮,那么可以看到更多的相关信息。在此点击“Next”钮继续。

  2.接下来要选择是否接受证书以及接受多长时间,一般都选择第三项,即“Accept this certificate forever”,之后点击“Next”。

  3.接下来选择是否在每次提交信息时都会有一个警告。应该说这非常有用,但这也是很让人讨厌的。我一般都喜欢忽略警告并且不让它弹出,所以只需选择“Next”继续。

  4.现在可以点击“Finish”来完成这个过程了。

  我们可以从三个地方知道正在使用安全的连接。首先是URL以https://开头,而不是以http://开头。此外,在顶部的按钮条上有一个突出的小锁图标,在浏览器的左下角也有一个突出的小锁图标。

  5.如果没有看到这些内容,那么就需要进行诊断了。可以查看一些地方:首先确信在监听着80/TCP和443/TCP端口用于一般和SSL Web连接。其次是确信用于Web服务器的SSL引擎正常工作。最后,确保确处于连机状态。

  使用Aeromail

  现在已经连接到了服务器上,这时会弹出一个认证窗口。这是平常使用的用户名和密码,它将使用SSL加密连接来传送。

  6.现在,就已经工作在一个完全安全的Web服务器下了。使用这一服务器可以保护诸如电子邮件连接等很多Web事务。

  一旦认证通过后,软件就会读取邮箱,并且准备一个Web页面。这是通过PHP软件来实现的,它连接到IMAP服务器,并且读取文件夹中的信息。

  7.信息以收到的时间为序进行排列,最新的信息显示在顶部。显示的内容有主题、发件人、收到时间以及信件大小。信息前面的选择框用于信息的选择,以便进行删除或者移动操作。顶部的环状箭头用于检测是否有新的邮件。底部的复选框用于选中所有显示在本页的信息,数字表示信息的页数。我们可以通过编辑config.inc文件里的$MSG_COUNT变量来改变每屏显示的信息数量。从图7的页面,我们可以看出它和平时使用的263等Webmail系统基本相同,只是功能要少一些。
  
  到目前为止,我们已经配置好了一个小的、安全的Webmail服务器。它可以让你在世界的任何一个地方访问你的邮件。此外,这个服务器还可以扩展一些其它的功能,这就需要你在使用的过程中自己来发现了。
相关文章 热门文章
  • TurboMail如何搭建与外网通信的局域网邮件服务器
  • 在多种邮件服务器共存环境中如何管理Exchange 别让不同的邮件服务器及客户端把您难倒
  • 终结邮件服务器攻击 采取措施阻止拒绝服务攻击和目录收集攻击
  • 帮您选择一款最好的免费邮件服务器
  • 企业应如何防范邮件服务器被盗用来发送垃圾邮件
  • 七个免费邮件服务器软件
  • Exchange邮件服务器通信故障排故思路
  • postfix+dovecot+postfixadmin+mysql架设邮件服务器
  • FreeBSD上建立一个功能完整的邮件服务器(POSTFIX)
  • CentOS5.1上安装基于postfix的全功能邮件服务器(二)
  • CentOS5.1上安装基于postfix的全功能邮件服务器
  • CentOS安装配置Postfix邮件服务器
  • Coremail邮件系统FAQ
  • 用Windows 2003配置邮件服务器
  • Windows Server 2003也能提供邮件服务
  • 自己电脑做SMTP服务器不求人
  • ArgoSoftMail使用详解(1)
  • 不花一分钱轻松打造自己的电子邮局
  • 如何安装一个hotmail的邮箱系统
  • 利用twig架设WebMail系统
  • ShareMail使用手册
  • ArGoSoft Mail Server安装手册
  • 局域网内部邮件服务器架设指南
  • ArgoSoftMail使用详解(2)
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号