我正在运行带有 Ubuntu 10.04 LTS 和 Plesk 12 的 vServer。我正在使用 Plesk 防火墙模块,到目前为止,它对我来说还不错。但是,现在我在服务器上设置了一个 OpenVPN 服务器。为了能够通过 VPN 将流量路由到外部,我需要将 NAT 规则添加到 iptables:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
问题是 Plesk 防火墙模块创建了一组自己的 iptables 规则,而我无法在 Plesk 本身中添加此特定规则。因此,我正在寻找任何方法使我的规则永久存在,这样当 Plesk 运行其脚本时它就不会被覆盖。我在考虑某种可以在 Plesk 更新 iptables 或类似内容后自动执行的脚本。
我也查看了 SQL 数据库,但防火墙模块的 psa 表似乎以某种自定义格式存储允许/拒绝规则。任何帮助都非常感谢!
答案1
总结
你不能/不应该。
好的,我会解释更多...
任何超出 Plesk 规定的处理方式的操作都会破坏它并使其失去支持状态。我曾经遇到过这种情况,并且有损坏的客户 VPS 可以证明这一点(以及在 Plesk 支持论坛上痛哭流涕,这是我永远的耻辱证据)。最好的办法是联系 Plesk 支持,看看是否有一些支持方法记录不全(或没有记录,视情况而定)。此外,预计它会在下次更新时中断。
如果您想做任何超出 Plesk 预定义规则和规定的事情,您需要成为系统管理员并开始在没有 Plesk 的情况下管理服务器。如果您的客户/客户抱怨,请找到新的客户或告诉他们他们不能做某些对于该场景必要的事情。
我也查看了 SQL 数据库,但防火墙模块的 psa 表似乎以某种自定义格式存储允许/拒绝规则。任何帮助都非常感谢!
这就是 Plesk 如此糟糕的原因。或者...一Plesk 糟糕的原因之一。约 100 亿美元的原因之一。
实际答案
过去处理过类似的事情后,您可能需要用自己喜欢的语言创建一个脚本,检查 iptables 规则中是否存在所需规则,如果不存在则插入该规则。每隔几分钟执行一次,然后坐下来等待混乱发生。