![允许从私有地址块进行 SMTP 中继时的安全性](https://linux22.com/image/749155/%E5%85%81%E8%AE%B8%E4%BB%8E%E7%A7%81%E6%9C%89%E5%9C%B0%E5%9D%80%E5%9D%97%E8%BF%9B%E8%A1%8C%20SMTP%20%E4%B8%AD%E7%BB%A7%E6%97%B6%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7.png)
允许SMTP Relay
从是否安全private address blocks
?
- 10.0.0.0/8
- 127.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
我的直觉是,这可能没问题,但我不确定这是否会让我的服务器容易受到攻击或类似攻击。基本上,一些黑帽会应用一些聪明的技巧,欺骗我,让我以为它已经收到了来自 的信封,从而有效地将其转变为开放中继,IP-forgery
这种可能性有多大?MTA
private address block
我的MTA
在 内运行docker container
,所以我担心所有连接(包括来自远程服务器的连接)都将被视为本地连接。但是,您可以从以下日志条目中看到 能够MTA
确定传入连接是远程的:
SMTP connection from [xxx.yyy.39.83]:43108 I=[172.18.0.2]:25 (TCP/IP connection count = 1)
一般来说,MTA
他们是如何收集这些信息的,是从连接中获取TCP
,SMTP headers
还是从中间获取?
答案1
更安全的设置是通常阻止未经身份验证的 SMTP,仅将那些无法身份验证的少数服务列入白名单 - 现在应该没有或几乎没有。
答案2
MTA 允许中继使用的 IP 地址通常取自 TCP 会话。在这种情况下(TCP 和现代系统),除非伪造者能够访问您和远程 IP 之间的网络基础设施,否则这些地址实际上是不可伪造的。但是您应该注意:
- 正如 Mikael H 所说,您应该考虑经过验证的 SMTP。
- 某些网络负载均衡器(例如 ELB)会将 TCP 源地址重写为其自己的地址。在这种情况下,您需要确保您的 MTA 和负载均衡器就如何传达真实的外部 IP 达成一致(搜索
ELB Postfix "Proxy protocol"
,这将是您的“中间”)。 - 如果您真的决心跨越所有 T,您可能需要限制私有地址进入您的网络和/或将白名单限制为您实际正在使用的 IP。