具有虚拟域名和用户(Debian Etch,Postfix,MySQL,DoveCot,DSpam,ClamAV,Postgrey,RBL)的完整邮件服务器解决方案
本教程是Justin Refice的版权所有(c)2007。
它是从文件末尾列出的各种指南和原始材料得到的。
您可以根据知识共享许可2.5或更高版本免费使用本教程。
一,介绍
本指南介绍如何在Debian Linux中设置完整的电子邮件解决方案(所有代码均来自Debian Etch)。 我被要求为一家小公司设计安全,可扩展的便携式解决方案。 虽然该指南引用了许多“服务器”,但该公司仅拥有4台物理机器,Xen用于虚拟化整个解决方案。 本指南中没有讨论该系统的特定方面,尽管我将尝试将其纳入下一个版本。
只需下面使用的服务器名称的注释:如果不需要被互联网访问,不要让它成为。 以internal.example.com结尾的域名是内部NIC / IP地址...没有办法直接从互联网访问它们,也不应该存在。 任何仅具有internal.example.com域名的服务器都是纯内部服务器,无法从Internet直接访问。 所有非内部服务器都有两个NICS(这些可以是两个真正的NIC或虚拟的)。 第一个NIC可以访问互联网,并且是严格防火墙的。 第二个NIC可以访问内部网络,因此具有一点安全性。 有关如何设置这些NIC的详细信息不在本文档的范围之内,但我可能会将其更新为将来包含它们。
服务器的总体布局是:
主要MX:
NIC1 = Insecure / Internet = mx-1.example.com
NIC2 = Secure / Intranet = mx-1.internal.example.com
MTA:Postfix
Greylist过滤器:Postgrey
次要MX:
NIC1 = Insecure / Internet = mx-2.example.com
NIC2 = Secure / Intranet = mx-2.internal.example.com
MTA:Postfix
Greylist过滤器:Postgrey
SMTP + TLS&IMAPS:
NIC1 = Insecure / Internet = secure-mail.example.com
NIC2 = Secure / Intranet = secure-mail.internal.example.com
MTA:Postfix(+ TLS / SSL)
IMAP:Dovecot(IMAPS)
邮件传送服务器: postman.internal.example.com
MTA(lmtp):DSPAM
防毒软体:ClamAV
IMAP:Dovecot
数据库服务器: sql-1.internal.example.com
MySQL
文件服务器: files-1.internal.example.com
NFS
临时构建服务器: build.internal.example.com
<各种工具>
邮件的工作方式如下:
互联网邮件到您的域名:
邮件进入25端口的Primary MX或Secondary MX
2. MX查询MySQL服务器以查看邮件收件人和目的地是否有效:
一个。 收件人是未经授权的 - 邮件被拒绝(550错误)
b。 收件人被授权 - 邮件被允许继续
MX检查灰名单政策:
一个。 这是第一次尝试电子邮件 - 邮件被拒绝(重试)
b。 这不是第一次尝试邮件 - 邮件被允许继续
MX检查配额违规
一个。 用户的配额已满 - 邮件已退回
b。 用户有空间 - 邮件已发送
5. MX将邮件发送到内部传送服务器(通过LMTP)
6.内部传送服务器检查病毒/垃圾邮件
一个。 这是垃圾邮件 - 垃圾邮件标记,并给予LDA交货。
b。 这是一个病毒 - 邮件被拒绝
C。 这不是垃圾邮件而不是病毒 - 邮寄给LDA
7. LDA提供邮件
一个。 邮件被标记为垃圾邮件 - 已传送到Maildir中的“垃圾邮件”目录
b。 邮件未标记为垃圾邮件 - 已发送到收件箱。
来自您的域的Internet邮件:
用户在端口25上启动与SMTP中继的连接
SMTP继电器提供TLS:
一个。 用户不使用TLS - 邮件被拒绝
b。 用户使用TLS - 允许会话继续
3. SMTP中继提供AUTH(PLAIN):
一个。 用户不认证/失败认证 - 邮件被拒绝
b。 用户进行身份验证 - 会话按照惯例完成
远程用户通过IMAPS(安全IMAP)访问邮件
本地用户通过IMAP访问邮件
如果用户检测到错误的阳性SPAM检测,则将邮件转发到“ham- <username> @ <domain>。<tld>”
如果用户检测到错误的垃圾邮件检测,则将邮件转发到“spam- <username> @ <domain>。<tld>”
二, 重要笔记
所有这一切可能安装在Debian 4.0 Etch或Ubuntu Feisty Fawn中,因为两个系统都非常相似。 请注意,如果您使用默认版本的Dovecot和Postfix可能会有一些小问题,但是我会尝试在出现时注意它们。
如果您是Ubuntu用户,请注意,我不会在每个命令前使用“sudo”。 相反,我将使用命令“sudo -s”启动一个根shell。
在Ubuntu和Debian中安装软件非常简单,所以只要有可能,我们将使用apt-get
实用程序中的构建。 我们建立自己越少,维护的时间越短越好。
所以,让我们开始吧!