为什么Postfix接受来自它不负责的电子邮件的MAIL FROM

我正在testing一个后缀安装。 我注意到,如果我尝试从另一个不是我的域名( [email protected] )的虚构帐户发送邮件给我的本地用户( [email protected] ),邮件仍然会传送给我用户。

 MAIL FROM:<[email protected]> RCPT TO:<[email protected]> 

我不确定这是否是正常行为,或者是否会导致问题。 例如,我很担心用户可以使用服务器发送伪造的电子邮件,这些电子邮件并非真正源自他们声称是源自的电子邮件帐户。

PS我仍然处于学习postfix的早期阶段,所以不知道我的问题是否合理。


根据@ DerfK的评论,我testing了一个开放的中继(其中MAIL FROMRCPT TO不在这台服务器上),这就是我所得到的。 出于某种原因,它接受RCPT TO ,然后在我input主题之后说再见。 那么这是好还是坏?

 HELO test.mydomain.com 250 mail MAIL FROM:<[email protected]> 250 2.1.0 Ok RCPT TO:<[email protected]> 250 2.1.5 Ok Subject: testing for open relay 221 2.7.0 Error: I can break rules, too. Goodbye. Connection closed by foreign host. 

这是正常的行为。 其他SMTP服务器连接到您的SMTP客户端将邮件传递到您的域。

要解决这个欺骗问题,有SPF和DKIM。 你应该检查出来。

关于你的第一种情况:SMTP服务器接受它所负责的帐户的邮件是正常的,基本上就是这样工作,只需要设置SpamAssassin(最常用的免费解决scheme,支持SPF / DKIM检查)等垃圾邮件检查软件。

至于你的问题可能出现在邮件服务器设置的早期阶段,这里有一些与处理虚拟邮件有关的技巧。

普通用户在大多数情况下不会尝试欺骗他们的电子邮件。 更多的时候,这是垃圾邮件发送者的行为,这就是为什么你可以根据其内容过滤这种邮件。 更复杂的设置可以包括:

  1. RBL / DNSBL / RHSBL检查(可能会导致许多错误的拒绝,因为许多甚至有效的邮件发送者都会中断一些RFC)。
  2. 发件人地址validation(请参阅Postfix的地址validation自述文件 )。 这也可能会拒绝一些有效的邮件(基本上也是因为configuration错误,例如不允许使用空MAIL FROM: <> )。
  3. 灰名单 。 至于我的个人经验,由于垃圾邮件发送者的急躁,这打击了90%的垃圾邮件。 但是这会减慢有效邮件的传递,但是在大多数情况下这不是问题。
  4. SPF / DKIMvalidation(尽pipe不是强制性的支持它)。
  5. 各种自定义内容检查(包括已经提到的垃圾邮件检查器)。

如果我们谈论postfix,它会给出相当灵活的能力来限制哪些邮件是可以接受的。

关于你的更新:错误信息后缀给你只是说,你打破SMTP规格(没有Subject: SMTP命令,请参阅SMTP RFC,但您可能意味着Subject头是邮件正文的一部分,必须提供DATA SMTP命令)。 从您提供的抄本中,我无法可靠地判断您的后缀是否作为开放式中继,因为没有关于具有该SMTP会话的客户端的信息。

据我所知,基本的设置后缀允许中继邮件(也就是说,您可以指定任何邮件地址,不仅在postfix负责的域中):

  • 本地主机
  • 可信networking(通过mynetworks设置)

所以如果你从服务器telneted postfix它运行在那可能是好的。 如果来自互联网的任何地方,那么事情就是坏

你也可以仔细阅读SMTPD中继和访问控制,以加深对postfix中继访问主题的了解。

希望这可以帮助。

你忘记了数据! 我有这个问题。 你必须有命令数据,然后主题。 所以它解决了你的问题。 看起来像这样:

 HELO test.mydomain.com 250 mail MAIL FROM:<[email protected]> 250 2.1.0 Ok RCPT TO:<[email protected]> 250 2.1.5 Ok Data 354 End data with <CR><LF>.<CR><LF> subject: hello i love you, oh my god! Why do i forget data . 250 2.0.0 Ok: queued as E10601E09B1 quit 

Postfix必须接受来自不负责的域名的邮件。 否则,你将只有本地电子邮件。

一个开放的中继接受来自域不负责的域名邮件,这是不负责的地址。 在下表中:本地代表服务器负责的域; 远程表示服务器不负责的域; None表示空发件人:

 Source Destination Accepted ====== =========== ======== Local Local Yes Local Remote Yes Remote Local Yes Remote Remote NO None Local Yes None Remote NO 

validation远程域的方法很多,包括:标注,SPF,DMARC,白名单和黑名单。 这些都依赖于DNS。 灰名单是一种确保真正的邮件服务器发送邮件而不是垃圾邮件的技术。 Spamfilters这样的Spamassassin使用技术的组合来validation邮件,通常包括对上述testing打分,以及内容和标题。