我们的服务器托管各种域,其中一半使用 Google Apps 来处理电子邮件,另一半根本不使用任何域电子邮件帐户。但是,服务器上的网站和应用程序(例如 cron、防火墙)需要发送邮件。为此安装了 postfix(Ubuntu 10.04)。一切正常。
但是,分析日志后我发现有很多无法接收的电子邮件。主要是因为那些目前没有邮件的域仍然有一些垃圾邮件发送到他们的域。而且由于 DNS 指向此服务器,它们仍然出现在这里,占用资源并堵塞日志。因此有几个问题:
- 我可以简单地更改 DNS 并删除 MX 条目吗?我担心发送邮件会经常失败,因为外部垃圾邮件过滤器会检查有效的 MX 条目,并发现这些域甚至不应该发送邮件。(我仍然希望他们在发送时读取 @domain.com)。或者 SPF 记录应该解决这个问题吗?
- 我是否应该用更轻便/更适合发送邮件的软件来替换 Postfix?目前所有收件软件都未使用。
- 是否有其他方法可以使 Postfix 仅传出,并避免所有这些日志条目?
谢谢!
答案1
以下是我要做的事情:
对于使用 Google Apps 或其他第三方电子邮件服务的域,请为该域的电子邮件服务适当设置 MX 记录。如果域的 MX 记录指向其他地方,您的电子邮件仍会呈现到该服务器,我会觉得非常有趣。这意味着需要检查哪些电子邮件地址到达了您的服务器,以便进行进一步调查。
对于您的 Google Apps 客户端,如果您发现外发电子邮件(通过 PHP 服务器或其他方式从服务器发送)没有送达以与主机名相同的域结尾的电子邮件地址,请尝试以下操作:
例如,主机名为 getbunch.com 的服务器可能无法向[电子邮件保护]因为它认为该地址应该是本地的。实际上,它不是本地的。禁用本地传送将强制服务器将您的电子邮件发送到正确的位置。
对于没有电子邮件服务的域名,我只需删除 MX 记录即可。这应该可以防止电子邮件被提交到服务器进行投递。
您可以做的另一件事是使用以下命令阻止端口 25 iptables
:
/sbin/iptables -A INPUT -p tcp --destination-port 25 -j DROP
希望有帮助!
答案2
同意。在防火墙或本地机器上阻止端口 25。阻止 Postfix 监听除本地环回地址之外的任何内容也是一个好主意。
很久以前,我使用了一个小程序,它可以查看邮件池目录,并根据 cron 作业将电子邮件转发到外部 SMTP 服务器。它非常适合发送日志和其他系统电子邮件,并且不需要全程运行。不需要 PostFix 或 Sendmail。
我的 Google 能力不行了,现在找不到它。也许你的运气会好一些。