我想在 Debian 上设置一个仅用于发送邮件的 SMTP 服务器,这样我的 Web 应用程序就可以通过它发送电子邮件。出于安全性和我自己设置的可定制性考虑,我不想使用其他主机。
我希望安装 Postfix 并仅在传出模式下配置它(我不希望它是中继)。所以我想问一个建议,如何以最佳方式做到这一点。Postfix 提供的用户、虚拟用户、端点和其他选项都不需要。我想我应该只将 Postfix 附加到某个主机名,这样我的 IP 地址就可以解析到它。
我也认为 Postfix 可能是一个有点复杂的解决方案。如果你知道更简单的工具,请告诉我。
答案1
在 Debian 上设置 Postfix 仅用于发送邮件:
dpkg-reconfigure postfix
(internet site
出现提示时选择)postconf -e 'inet_interfaces = 127.0.0.1'
/etc/init.d/postfix restart
inet_interfaces = 127.0.0.1
/etc/postfix/main.cf 将仅将 Postfix 绑定到本地主机,因此您的机器将不会接受传入的电子邮件。
答案2
虽然 Postfix 也可以使用,但我个人更喜欢 Exim。
我可以给你提供一套关于如何设置仅用于传出的 Exim 的快速说明。
- 确保主机名设置正确
- 安装
apt-get install exim4 exim4-daemon-light
- 在配置步骤中,按如下方式回答问题
- 邮件配置类型:互联网网站
- 系统名称:您的服务器的 fqdn
- 监听的 IP 地址:127.0.0.1(此地址无法接收邮件)
- 接受的其他目的地:空
- 中继域名:空
- 要中继的机器:空
- 保持 DNS 最小化:是
- 本地邮件递送方式:Maildir
- 是 拆分配置
一旦配置了 exim,你可以使用命令再次运行此设置dpkg-reconfigure exim4-config
如果您真的很偏执,您还可以在邮件服务器上设置一个快速 iptables 防火墙,并且根本不允许传入连接到端口 25。
答案3
无论您选择哪个邮件服务器,如果您阻止到端口 25 和 587 的传入连接,外部用户将无法通过它进行中继。
SMTP 服务器需要与端口 25 建立出站连接,但不需要接受来自其他主机的入站连接。
您可能希望接受来自的端口 25 连接localhost
,这对于在本地运行的任何 Web 应用程序来说都很方便;并且,作为额外的安全措施,确保服务器仅绑定到lo1
或本地主机接口(参见 James 的回答)。
答案4
我不确定我是否明白您在寻找什么,但默认情况下,Postini 可以满足您的所有要求。
只需确保您的 Internet 连接没有 SMTP 限制并且您的 DNS 正常工作。