如何通过发送垃圾邮件来防止滥用 SMTP?

信息安全 smtp 电子邮件欺骗
2021-09-10 06:19:20

我不是管理员,我只是创建了一个网站,而且我从托管服务提供商处购买的服务器上还有一个邮件服务器。我对邮件服务器的了解大部分来自互联网教程。

我正在使用 Open Panel(带有 Postfix),因为我未能正确配置 Exim。但我的问题还没有结束。

现在我可以看到我的邮件服务器可能(?)正在被其他人使用,因为在 /var/log/mail.log 文件中我可以看到很多未知的电子邮件地址,例如:

postfix/smtp[31747]: C1EF776612: to=<REGLEMENTATION@agirc-arrco.fr>, relay=mail2.gieprod.com[195.182.17.37]:25, delay=21527, delays=21525/0.01/1.8/0, dsn=4.0.0, status=deferred (host mail2.gieprod.com[195.182.17.37] refused to talk to me: 554-mail2.gieprod.com 554 Your access to this mail system has been rejected due to the sending MTA's poor reputation. If you believe that this failure is in error, please contact the intended recipient via alternate means.)

或者:

postfix/smtpd[31772]: NOQUEUE: reject: RCPT from smtp-sortant.sn.auf.org[213.154.65.69]: 550 5.1.1 <EmmanuelRoy@mydomain>: Recipient address rejected: User unknown in virtual mailbox table; from=<> to=<EmmanuelRoy@mydomain> proto=ESMTP helo=<smtp-sortant.sn.auf.org>

最后一个意思是没问题,还是其他意思?

这些不是我的电子邮件。而且它们有很多,正如我在日志中看到的那样,它们的“RCPT TO”命令通常需要 20 个电子邮件地址。有时会出现“Throttling”(?)句。他们将我的域名用于许多不同的假电子邮件地址作为“MAIL FROM”,例如 chevassucathy@mydomain、AKZwart@mydomain、MichaelLESKINEN@mydomain、SantinaZappulla@mydomain 等等。

昨天晚上我用它来清除电子邮件队列(我刚刚得知有类似队列的东西):

postsuper -d ALL

但是今天早上我可以看到队列中有新的未发送电子邮件。

所以,我想知道我是否可以以某种方式限制在我的服务器上使用 SMTP,比如:

  • 我可以限制从外部(非本地)使用 SMTP 到仅确定的 IP 号码?
  • 我不能允许以“MAIL FROM”的形式发送任何其他电子邮件地址,而不是与现有(设置)的电子邮件帐户相关?
  • 其他方法?

或者,我是否只能通过停止 SMTP 服务并在我真正想发送电子邮件时启动 postfix 来防止这种情况(当然非常不舒服)?

编辑:我试图在这个网站上做一个测试:http ://www.aboutmyip.com/AboutMyXApp/QuickServerTest.jsp

这是我得到的:

    >>> 220 name ESMTP Postfix (Debian/GNU)
    <<< EHLO u16544016.aboutmyip.com 
    >>> 250-name
    >>> 250-PIPELINING
    >>> 250-SIZE 10240000
    >>> 250-VRFY
    >>> 250-ETRN
    >>> 250-STARTTLS
    >>> 250-AUTH PLAIN LOGIN
    >>> 250-ENHANCEDSTATUSCODES
    >>> 250-8BITMIME
    >>> 250 DSN
    <<< MAIL FROM: 
    >>> 250 2.1.0 Ok
    <<< RCPT TO: 
    >>> 554 5.7.1 : Recipient address rejected: Relay access denied
    <<< QUIT 

    Connection test: PASS
    Reverse IP Lookup: WARNING - Reverse IP lookup test failed on your server. Some servers on the Internet may reject emails from this server.

    Open relay test: PASS

EDIT2:身份验证

我认为这是一种身份验证 - 这是/etc/postfix/sasl/smtpd.conf文件的内容:

pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path: /var/run/courier/authdaemon/socket

当我远程登录到 SMTP 服务器时,它似乎需要传递“auth plain [base64 with email address and pswd]”才能使用“MAIL TO”命令。

2个回答

乍一看,您的第一条日志行看起来像是您的邮件服务器正在尝试向虚假发件人发送退回邮件。

换句话说,您会收到带有虚假发件人的垃圾邮件。这会被拒绝,您的系统会尝试返回错误消息但失败。反弹被放入deferred队列中,以再次尝试。

短期解决方案确实是清除队列(但postsuper -d ALL deferred仅用于清除特定队列)。还要首先确保那里没有任何有用的电子邮件(mailqpostqueue -p)。

而且,您的服务器似乎在某种黑名单上,这可能是由于您的系统被垃圾邮件发送者滥用造成的,但也可能只是意味着您的主机在垃圾邮件方面声誉不佳(声誉系统有时通过 IP 块工作地址)。

另请参阅:https ://serverfault.com/questions/115161/fixing-my-mtas-poor-reputation

这里描述的问题几乎不属于预防的范畴。这是损害控制和一些取证。如何防止滥用 SMTP?阅读手册,了解您的系统或至少使用强化配置,经常升级和修补,查看日志。现在解决问题:

如果你遇到过这样的问题,首先要做的是损害控制:停止 smtp 服务器,备份。下一步是取证:检查这些邮件来自哪里?他们是如何做到这一点的?

在有问题的日志行(问题中的 C1EF776612)中找出邮件 ID,然后用 grep 查找它。(类似于 grep C1EF776612 /var/log/mail.log)。

检查第一行。客户端从哪里连接?

  • 是本地主机吗?你有一个本地问题。很可能您的一个网站被黑了。请注意,即使您没有从您的站点发布任何邮件,也很有可能发送邮件。此外,任何其他服务,甚至您自己的帐户都可能被黑客入侵并可以发送邮件。
  • 是其他主机吗?您的一个客户受到威胁或您是开放代理(上述问题中绝对不是这种情况)

如果您使用的是 milter(如 amavis),那么您的所有邮件都可能来自 localhost(即来自 milter)。在这种情况下,您应该检查 milter 日志行以获取原始消息 ID。以前的 grep 也应该显示这个。第二个 ID 上的第二个 grep 将显示真实来源。

确定攻击媒介后,您可以采取预防措施。有很多可能性,不幸的是,这个话题太广泛了,无法在这里涵盖。