![从接收标头中隐藏服务器 IP(通过 sendgrid 的 STMP)](https://linux22.com/image/676325/%E4%BB%8E%E6%8E%A5%E6%94%B6%E6%A0%87%E5%A4%B4%E4%B8%AD%E9%9A%90%E8%97%8F%E6%9C%8D%E5%8A%A1%E5%99%A8%20IP%EF%BC%88%E9%80%9A%E8%BF%87%20sendgrid%20%E7%9A%84%20STMP%EF%BC%89.png)
我使用 PHP-CMS 通过 SMTP 发送电子邮件。问题是我想保护我的服务器免受 DDoS 攻击,所以我安装了 CloudFlare,并且我想隐藏我的真实服务器 IP。当用户通过 PHP-CMS 收到电子邮件时,他们可以在电子邮件标头 (Received:) 中看到 IP。我该如何隐藏此信息?
我使用 sendgrid 发送电子邮件,我认为这会隐藏我的服务器 IP,但这根本不起作用。
答案1
您可以将 SMTP 端口从 CMS 主机转发到 MTA 主机,这样您的 PHP 就可以确保邮件在本地提交。但它们将通过 提交到远程 MTA 127.0.0.1
。在 CMS 主机上停止本地 MTA 并启动此命令:
ssh -f -N -L 25:127.0.0.1:25 [email protected]
标题Received
将仅包含 MTA 的 IP 和提交者的 127.0.0.1,而不包含 CMS 的 IP。
答案2
只需将防火墙入站流量限制为仅来自 cloudflare、通过跳转框进行 ssh 或配置像 openvpn 这样的持久 vpn。
此外,sendgrid 的一项安全/滥用要求是将您的 IP 发布在标头上,除非您自己托管并清理收到的标头,否则您将无法避免这种情况。