有没有哪位 Postfix 专家能帮助我确定未经授权的来源的电子邮件仍通过我的服务器发送?

有没有哪位 Postfix 专家能帮助我确定未经授权的来源的电子邮件仍通过我的服务器发送?

我有点担心,因为我运行着一个托管多个网站的小型服务器,并管理着几十个人的电子邮件。

不过,最近我收到了几条来自 spamcop 的通知,提醒我垃圾邮件已从我的服务器发送,当我不时查看日志时,我确实看到有很多邮件重复从我的服务器发送。大多数情况下,邮件会被目标服务器拒绝,但有时还是会通过。

不幸的是我不是 Linux 或 Postfix 专家,虽然我可以应付,但尽管我的机器被锁定得很安全,我还是不允许中继,当我检查在线 DNS/MX 工具时,它们倾向于报告我的服务器正常,所以我不确定现在该把它带到哪里,希望有人能给我一些指点。

我的 MAIL.INFO 日志中有很多这样的条目

Jan  2 08:39:34 Debian-50-lenny-64-LAMP postfix/qmgr[15993]: 66B88257C12F: from=<>, size=3116, nrcpt=1 (queue active)
Jan  2 08:39:34 Debian-50-lenny-64-LAMP postfix/qmgr[15993]: 614C2257C1BC: from=<[email protected]>, size=2490, nrcpt=3 (queue active)

Jan  7 16:09:37 Debian-50-lenny-64-LAMP postfix/error[6471]: 0A316257C204: to=<[email protected]>, relay=none, delay=384387, delays=384384/3/0/0.01, dsn=4.0.0, status=deferred (delivery temporarily suspended: host mx.fakemx.net[46.4.35.23] refused to talk to me: 421 mx.fakemx.net Service Unavailable)
Jan  7 16:09:37 Debian-50-lenny-64-LAMP postfix/error[6470]: 5848C257C20D: to=<[email protected]>, relay=none, delay=384373, delays=384370/3/0/0.01, dsn=4.0.0, status=deferred (delivery temporarily suspended: host mx.fakemx.net[46.4.35.23] refused to talk to me: 421 mx.fakemx.net Service Unavailable)

然后往往会出现连接超时的情况,所以从我看到的情况来看,即使我已禁用中继,仍有一些东西在通过并尝试发送。

因此,如果您能提供帮助,我将不胜感激,并且我可以提供任何进一步的日志/配置信息。

我认为 Main.CF 中的几行已经足够了,如下所示,也许我在这里遗漏了一些重要的东西:

# Requirements for the HELO statement
smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit
# Requirements for the sender details
smtpd_sender_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit
# Requirements for the connecting server
smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl, reject_rbl_client dnsbl.njabl.org 
# Requirement for the recipient address
#smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit
smtpd_recipient_restrictions = reject_unauth_pipelining,reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination,check_policy_service inet:127.0.0.1:60000,permit

# require proper helo at connections 
smtpd_helo_required = yes 
# waste spammers time before rejecting them 
smtpd_delay_reject = yes 
disable_vrfy_command = yes

谢谢

答案1

在限制的末尾加上permit是造成麻烦的原因。如果前面不允许使用 ,permit_mynetworks那么您就不想对提交到邮件队列的内容进行处理。permit从行尾删除这些条目*_restrictions,您会看到突然的改进。发生的事情是,一些垃圾邮件中继尝试“刚好符合要求”以通过限制列表( 前面的那些条目permit),因此当它遍历限制列表中要通过的测试列表时,它会点击 ,permit这指示 postfix 给它“竖起大拇指”,然后它继续处理并中继正在发送的垃圾邮件。

我假设(?)您permit在此处使用了语句来防止电子邮件被合法客户端阻止。不必担心关闭您的网络。这就是它的用途:它是“受信任”网络地址的列表,您将自动接受并转发邮件。开头的mynetworks条目告诉 postfix 立即允许在中定义的任何内容,此时它会停止处理列表中列出的步骤。这是因为测试列表是从左到右处理的,直到找到匹配项。 permit_mynetworksmynetworks*_restrictionspermit在每行末尾使用指示系统如果邮件通过了permit设置前面的所有其他测试,则无限制地允许邮件。

答案2

你几乎应该绝不使用permit。仅使用合格的许可指令(即,,permit_mynetworkspermit_sasl_authenticated)。

答案3

您以为您已禁用中继,但您真的禁用了吗?您必须发布配置文件中的信息,或者在 Google 上搜索“禁用中继”之类的内容以及您的 MTA 应用程序的名称,以找到示例锁定信息来强化您的系统。

否则,要么是您允许通过系统发送邮件的人感染了某种病毒并使用您的服务器发送垃圾邮件,要么是有人进入了您的服务器并使用脚本感染了它以中继垃圾邮件。

您是否检查过正在运行的异常服务?检查日志中是否存在 rootkit 或任何异常?您在服务器上还运行了哪些其他服务?您是否检查过是否有异常的传入 TCP 连接?您如何将系统锁定为仅授权用户,例如来自您自己的子网、特定密码(可能已被泄露)、仅授权 IP……?

相关内容