Linux Postfix 架构初学者简介
Postfix 是用于电子邮件路由和传递的邮件传输代理。这是其工作原理的详细解释。
熟悉电子邮件架构对于能够响应邮件系统的各种安全和性能问题至关重要。当检查邮件系统和邮件体系结构时,我们发现最重要的安全问题之一是邮件传输代理 (MTA)。
Postfix 是最安全且可配置的邮件传输代理之一。以下是您需要了解的有关 Postfix 及其架构的所有信息。
什么是后缀?
Postfix 是一款免费邮件传输代理,于 1998 年发布,名称为 VMailer。它采用C编程语言编写,可以在许多Unix和Linux系统上流畅运行。它不使用 POP 和 IMAP 等协议。如果您想使用此类服务,则需要使用一些额外的邮件客户端软件。
Postfix系统架构概述
下图描述了Postfix的工作系统。
由于邮件客户端和服务器针对许多不同的用户,因此管理员熟悉这些系统的体系结构非常重要。安全性和性能的可能损失可能会导致重大问题。
Postfix 背后运行着一个非常全面的系统。它使用相互交互的各种守护进程。每个守护进程承担不同的职责和任务。它们在不同的安全上下文中工作,并根据创建的事务具有不同的规则。
另外,主程序控制着各个守护进程的运行状态。在某些情况下,这些守护进程可能根本不运行,因为它们也预先配置了关闭时间。
传入的新消息交易
考虑到消息在 Postfix 系统中遵循的路径,可以通过三种不同的方式发生这种情况。其中之一是QMQP,它使用qmqpd守护进程。另一个是SMTP。 SMTP 比 QMQP 更流行,并使用 smtpd 守护进程。第三种方式是Sendmail程序。
Sendmail的工作系统如下:
首先,Sendmail 将邮件转发到 postdrop 程序,您可以在上面的 Postfix 图中看到。
拾取守护进程将传入消息转发到清理守护进程。在此阶段,从 Sendmail、smtpd 和 qmqpd 发送的消息在公共点相遇并遵循相同的路由。
清理守护进程处理已用消息的重写。在这里,当清理作业完成时,消息将被发送回队列。最后,队列管理器收到传入消息的通知。
预定消息的传送
队列管理器 (qmgr) 负责消息的传递。它的作用是确定消息如何到达收件人。
如果您考虑消息所采用的路径,就会发现队列管理器的责任区域是从清理守护程序结束处到队列末尾的整个区域。 Postfix 系统认为无法投递的邮件被退回,所有这些都是由队列管理器以及退回守护进程完成的。
队列管理器有一些目录用于不同的目的。新消息遵循的路径分别是传入队列和活动队列。活动队列包含准备传递的消息。
如果传递失败,它会将消息放入延迟队列中。当消息在这里时,它会被定期扫描。在此阶段,如果该队列系统想要重新发送消息,则将消息重新发送到活动队列。
在队列之间检查和移动消息取决于两种不同的情况。重要的是,自消息到达队列以来已经过去了多少时间,以及重试之间的实际时间差是多少。在这些情况下,消息与系统做出的决策一起在队列之间移动。
消息处理如何与 Postfix 工具一起工作?
Postfix 可以使用许多程序和代理。这些系统终止消息在整个队列中的路径并做出最终响应。
例如,smtp 使用 smtpd 将消息转发到其他主机。这里smtp指的是SMTP客户端,smtpd指的是SMTP协议。 lmtp 和 lmtpd 之间也是如此。不要将此处描述的 SMTP 和 LMTP 客户端(smtp 和 lmtp)与 smtpd 和 lmtpd 混淆。
另一方面,本地传递代理负责将消息转发给在系统上拥有普通帐户的用户。此外,此工具还支持 .forward 文件的别名。因此,用户可以自行设置是否发送消息。
在一个系统中,如果用户拥有虚拟消息框的真实帐户或 shell 帐户,则消息是虚拟传递的。
有时 Postfix 提供的标准分发代理还不够。在这些情况下,可以开发自己的中介机构。通过这样做,您可以使用管道守护程序通过标准输入流向您的传递进程提供消息正文。
如果您想开发一个通过某种网络协议接受消息的传递代理,spawn 守护进程将为您提供帮助。
配套平台
使用 Postfix 的优点之一是您可以将其与其他支持的程序一起使用。您可以使用许多不同的程序来检查、测试或调试系统。
其中一些计划是:
mailq:使用此程序,可以查看队列中邮件的信息
postalias:使用postalias,可以重新生成别名文件并查询别名查找表
postmap:它经常用于 Postfix 调试。它允许您重建索引数据库文件并查询您选择的查找表。
postqueue:您可以使用此程序清理消息队列。为此,请将延迟队列中的所有消息移至活动队列。但你必须小心使用它。虽然对性能不佳的服务器执行清理似乎合乎逻辑,但它可能会损坏系统,因为它会给活动队列带来更多负载。
postsuper:它允许你干扰消息队列中的消息。您可以删除或重新排列队列中的消息。
Postfix 是一个易于使用的邮政服务器
Postfix 可以轻松地运行在许多不同的操作系统上,例如 Linux、Unix、BSD 和 AIX。此外,在基于 Ubuntu 的 Linux 发行版上,标准邮件传输代理是 Postfix。尽管 Postfix 是作为 Sendmail 的替代架构而开发的,但您可以轻松地将它与 Sendmail 一起使用。
您还可以使用其他 Postfix 兼容软件获得防病毒过滤、垃圾邮件过滤、发件人策略框架、特定于域的用户名、IMAP 和 POP3 支持等服务。
如果您正在为 Linux 桌面寻找可靠且方便的电子邮件客户端,那么您很幸运。 Linux 有许多不同的电子邮件客户端可供免费下载。