首先:请原谅我的英语使用不佳。
几年来,我一直遇到 pf 中的“匹配所有 Scrub(无 DF)”规则问题。我不知道这里发生了什么。
我会尽量说得清楚和简单。pf.conf 已极度缩短,以适合本论坛帖子。
这是我的 pf.conf:
set skip on lo0
match in all scrub (no-df)
block all
block in quick from urpf-failed
pass in on em0 proto tcp from any to 213.125.xxx.xxx port 80 synproxy state
pass in on em0 proto tcp from any to 213.125.xxx.xxx port 443 synproxy state
pass out on em0 from 213.125.xxx.xxx to any modulate state
HTTP 和 HTTPS 运行良好。直到法国的一位客户(Wanadoo DSL)无法查看 HTTPS 页面!我责怪他的提供商,并没有对这个问题进行调查。
但后来……我买了一台 Android 三星 Galaxy SII(沃达丰)来监控我的服务器。几个小时后,我走出电话店:我的服务器上没有 HTTPS 连接!我以为我的服务器坏了,很快就开车回到办公室。但它们已经恢复了。
我发现禁用规则
match in all scrub (no-df)
解决了问题。Android 手机(Vodafone NL)和 Wanadoo DSL FR 现在可以使用 HTTPS。
但现在我不再需要擦洗了。这不是我想要的。
这里有谁知道发生了什么吗?我不知道。启用清理会导致某些 ISP 无法加载 HTTPS 网页,但并非所有 ISP 都无法加载。
在 systat 中,我奇怪地确实看到了状态创建和从那些 ISP 接收到的数据包......
仍然很困惑。我使用的是 OpenBSD 5.1/amd64 和 OpenBSD 5.0/i386。我的办公室有两个 ISP(一个 DSL 和一条电缆)。两者都有影响。
这很容易重现。我希望有人有遇到过这个问题的经验。
问候,
坦率
答案1
据我在pf.conf 手册页您可能需要将规则更改为:
match in all scrub (no-df random-id)