qmail的bug,允许开放中继到本地地址

Last login: Wed Jun 22 14:02:11 on ttys001 BASH$ telnet domain.com 25 Trying xxx.xx.xxx.xxx... Connected to domain.com. Escape character is '^]'. 220 hostname.com ESMTP helo 250 hostname.com mail from: <[email protected]> 250 ok rcpt to: <[email protected]> 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1) rcpt to: <[email protected]> 250 ok ***********<---------------------- OK??!? 

正如你所看到的,qmail阻止了将邮件发送到外部地址的尝试,但是没有任何问题,允许未经身份validation的用户将邮件发送到驻留在服务器上的本地地址。 如果有人想发送病毒,或者在服务器上阻塞电子邮件帐户,这可能会造成问题。

任何人都可以推荐一个解决这个? 我指出这是一个错误吗?

最好,Daniel

在将电子邮件发送到本地计算机上的帐户之前,SMTP从未要求用户进行身份validation。 这根本不是一个错误。 SMTP服务器如何接收电子邮件,以便将邮件传递到您正在托pipe电子邮件的域?

正如X-Istence所说的那样,这个问题根本上是假的。 没有这样的事情转发到本地托pipe的邮箱。 这是一个概念错误。 邮箱是远程的,在这种情况下,邮件必须被存储和转发(即中继)到邮箱,或邮箱是本地的,在这种情况下根本没有中继,因为系统是邮件。

rcpthosts定义了SMTP中继服务器( qmail-smtpd )将在信封收件人邮箱中接受哪些域(通常是)所有本地托pipe的域和允许中继邮件的所有域的联合。 它允许来自外部的消息被发送到本地托pipe的邮箱不是一个错误。 它按照devise工作。 如果您不希望外部世界能够向您发送邮件, 请不要运行SMTP中继服务器 。 运行SMTP中继服务器意味着您希望外部世界能够向您发送邮件。

授权的概念显然适用于您有用户数据库的本地用户,因此适用于SMTP提交,而不适用于SMTP中继。 如果你被老式的邮件注入协议弄糊涂了,认为SMTP中继在授权中进行交易(当然,你无法让用户数据库列出在南非或印度或法国的任意人员可能要发送邮件给你),那么你需要重新熟悉SMTP提交和SMTP中继之间的区别。 这是二十一世纪; 我们知道现在的服务分离。 我们不应该再使用OFMIP范例。