热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

文章标题:Linux下安全高效Web邮件服务器。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
    利用浏览器通过web方式来收发电子邮件的服务或技术(WebMail),不需借助邮件客户端,可以说只要能上网就能使用极大地方便了用户对邮件的收发。对于不能熟练使用邮件客户端, 或者在网吧不便使用邮件客户端的用户来说,WebMail更是必不可少的选择。另外, 设定 pop3 server, smtp server 等对于某些使用者来说也有点困难。这时候 WebMail 就显出它的好处了。

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

一、 软件概述与下载:

    Email能够成为当今Internet上应用最广泛的网络服务,WebMail可谓功不可没。 在Linux下系统中MTA服务的软件有许多,常用Sendmail、Qmail、Postfix等软件,本文使用RHEL 4.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是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。和Sendmail相比Postfix更快、更容易管理、更灵活、更安全,同时还与sendmail保持足够的兼容性。Sendmail相比Postfix对比见表1。

表1 Sendmail与Postfix的对比


    Open Webmail 优点:

    良好的使用接口 、 多国语言 (目前共支持超过 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在安装系统时一起安装。

其他软件需要进行下载:
 
    #wget http://openwebmail.com/openwebmail/download/redhat/rpm/release/openwebmail-2.51-1.i386.rpm 
    #wget  http://distro.ibiblio.org/pub/linux/distributions/startcom/ML-4.0.4/updates/i386/perl-suidperl-5.8.5-12.1.1.i386.rpm 
    #wget  http://mirrors.ircam.fr/pub/dag/packages/perl-Text-Iconv/perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm 
    #wget  http://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进程
 
    #killall sendmail (停止所有的Sendmaail进程)
    sendmail: no process killed
    # rpm -ivh postfix-2.2.5-3.rhel4.i386.rpm

    (2)启动dovecot服务过程:

    # service postfix start
    Starting postfix: [ 确定 ]
    # service dovecot start
    启动 Dovecot Imap: [ 确定 ]
    现在可以使用邮件服务器发送邮件了,但是还不能下载邮件,因为新版redhat Linux中 dovecot代替了imap软件包,但是还没有绑定POP3和POP协议,下面修改配置文件: /etc/dovecot.conf,
    #protocols = imap imap3 
    protocols = imap imap3 pop3 pop3s
    auth_passdb =
    更改为:
    auth_passdb = shadow
    然后重新启动dovecot服务:
    # service dovecot restart
    停止 Dovecot Imap: [ 确定 ]
    启动 Dovecot Imap: [ 确定 ]

    (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)端口测试:

    # telnet mail.cao.net 25 (测试25端口)
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    220 mail.cao.net ESMTP Postfix
    quit
    221 Bye
    Connection closed by foreign host.
    # telnet mail.cao.net 110 (测试110端口)
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    +OK dovecot ready.
    quit
    +OK Logging out
    Connection closed by foreign host.

 

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


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
author-avatar
为佐殿回来而读书的天使
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有