我们正在使用具有静态公共 IP 的 pfSense 防火墙。完全按照此处的说明将 TCP 端口 25 转发到 DMZ 上的邮件服务器。这对大多数发件人都很有效,并且电子邮件已成功转发到内部邮件服务器地址。
但是,一些合法发件人在防火墙的端口 25 上被阻止,而不是端口转发到电子邮件服务器。我知道 pfSense 即使在合法端口上也会阻止具有过期/不正确状态等的内容,但这是来自被阻止的已知电子邮件发件人的常规流量。状态表中不存在发件人的条目。我还查看了pfSense 端口转发故障排除指南,但没有运气。
我已经从有问题的外部发件人那里捕获了流量;它是带有 SYN 标志和良好标头校验和的 TCP 端口 25,肯定在外部接口被阻止,但看起来与正确转发的数据包没有什么不同。
这是被阻止发件人的日志条目:
pf: 2. 858929 rule 34/0(match): block in on fxp0: (tos 0x0, ttl 117, id 41529, offset 0, flags [DF], proto TCP (6), length 48) [blocked-sender-ip].34056 > [internal-dmz-email-ip].25: S, cksum 0x68f8 (correct), 3080958461:3080958461(0) win 65535 <mss 1460,nop,nop,sackOK>
还有一个看起来非常相似的成功发件人:
pf: 288804 rule 51/0(match): pass in on fxp0: (tos 0x0, ttl 111, id 34646, offset 0, flags [DF], proto TCP (6), length 48) [successful-sender-ip].2474 > [internal-dmz-email-ip].25: S, cksum 0xcf9c (correct), 1409725583:1409725583(0) win 65535 <mss 1460,nop,nop,sackOK>
知道这里发生了什么吗?
PFSense 有一个关于流量可以来自 WAN 接口的默认规则。
例如,您可以告诉它丢弃 WAN 上具有私有 IP 地址(192.168、10.0 或 172.0)的任何流量,因为在很多情况下,您永远不会在 WAN 上看到私有 IP。但是,在很多情况下,您也愿意(如果 pfSense 位于网络内部,而不是在边缘)。
它还将阻止未正式分配给任何人的 IP 范围,因为它们被认为永远不会在野外看到。
您可以在“配置”中的“高级”菜单下关闭这些选项(我认为是,在我的脑海中),或者可能在 WAN 配置屏幕中。
我将建议这两个选项是开始的地方,因为无论出于何种原因,流量都可能来自私有 IP 范围(邮件过滤器、病毒扫描程序等)但到达 WAN 端口,或者,一个新的块的 IP 范围已分配且 PFSense 未更新其列表。