我是新的 Ubuntu 管理员,想在我的服务器上启用 PHP mail() 函数。我已经让它工作了,但我想知道我的设置是否安全...
我的[完整]邮件解决方案如下:
1) 对于发往 @mydomain.com 的邮件,我使用通过域名主机的电子邮件转发功能 // 对于外发邮件,我在 Gmail 帐户上使用别名,该别名看起来就像是从 @mydomain.com 发送的
2) 对于我的网络服务器 (www-data) 生成的邮件(这些邮件几乎只用于发送密码重置),postfix 似乎可以成功处理。postfix 设置基本上如下,再加上我添加的一些 smtp_tls 规则,以便在可能的情况下在出站电子邮件上实现 TLS。
myorigin = $mydomain
mydestination =
mynetworks = 127.0.0.0/8
inet_interfaces = loopback-only
在进行此配置时我做了一些假设,即:
- 仅环回配置意味着除了我的本地主机之外,没有人可以通过 postfix 发送邮件
- 我不需要在这里指定relay_host
- 由于这仅是出站的,因此所有 smtpd_* 配置设置都是不必要的
- 由于通过 postfix SMTP 发送的所有请求都是通过控制用户输入(避免注入)的 PHP 脚本发送的,因此这是一种固有的安全设置。
我是否遗漏了什么?有什么方法可以让这个设置更安全?我认为 postfix 对于仅用于出站的服务器来说有点过头了,但我最近阅读了大量有关 postfix 配置的资料。发送邮件一个合理/更简单的替代方案?有没有更好的软件包(例如空邮件程序) 使用?
谢谢!
答案1
您可能遗漏了某些东西。
关于传递能力,邮件服务器需要做一些事情 - 比如正向和反向 DNS 记录(以及理想情况下的 SPF 记录)。还有可能相关也可能不相关的音量/声誉问题。我的建议 - 不要。配置 postfix 以中继到您的域的适当 MX。
通过适当的 PHP 脚本进行 SMTP 并非天生就不安全。反之亦然。可能存在其他攻击媒介。
Sendmail 的配置和管理比 Postfix 困难得多(我上一次使用它还是一个世纪前)。Postfix 的设计也考虑到了安全性。对于仅发送邮件的服务器来说,它是个不错的选择。