使用没有源约束的 nat MASQUERADE 有什么缺点吗(在典型的简单 VPS 设置中)

使用没有源约束的 nat MASQUERADE 有什么缺点吗(在典型的简单 VPS 设置中)

情况:一个 VPS 已经通过 nginx 提供网页服务。现在我要为这个 VPS 添加用于漫游设备的 OpenVPN。

VPN 指南的一个安装建议添加此 MASQUERADE 规则 -

iptables -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE

其中 10.8.0.0/8 是 VPN 虚拟地址。

然而,浏览一下,我看到了很多关于这个更普遍规则的例子——

iptables -A POSTROUTING -o eth0 -j MASQUERADE

对源地址没有任何条件。

如果没有不良副作用,我宁愿使用更通用的规则,这样在更改 VPN 配置时就不必担心它了。

我理解“小心谨慎”的原则,但真的有什么可担心的吗?

答案1

在您经过了除最后一位之外的所有网络堆栈之后,您调用了伪装,这是数据包出门前您要做的最后一件事。因此,这个数据包已经设法说服您的系统可以安全地向外发送。哪些来源可以做到这一点?要么您让东西通过您不想要的计算机转发,要么您会想出一个非常有限的集合 - 比如可能是 localhost 和您的 VPN。如果是这种情况,您的源约束已经早先应用,您不需要重复它。

答案2

拥有更通用的规则可能会引起性能问题。将 MASQUERADE 限制为仅具有特定源地址的数据包的规则就是这样。更通用的规则将应用于离开系统的所有数据包(包括本地生成的数据包),这可能会(也可能不会)增加 VPS 的负载。

相关内容