在将我的 Ubuntu 服务器 p2v 迁移到我与之堆叠的 OpenVZ 容器失败后,我想我会尝试基于 Ubuntu 9.10 的干净 OpenVZ 模板重新安装(来自 OpenVZ wiki)
当我尝试在 VM 机器上加载我的 iptables 规则时,我遇到了一些错误,我认为这些错误与未从 /vz/XXX.conf 模板模型加载到 VM 上的内核模块有关。
我一直在测试我发现的一些帖子,但我遇到了错误:
WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
FATAL: Could not load /lib/modules/2.6.24-10-pve/modules.dep: No such file or directory
iptables-restore v1.4.4: iptables-restore: unable to initialize table 'raw'
Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
我读到了模板没有加载所有 iptables 模块,所以我将模块添加到 VZ 虚拟机的 XXX.conf 中,如下所示:
IPTABLES="ip_tables iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc"
由于错误仍然存在,我读到我应该在虚拟机上再次构建依赖项:
depmod -a but this returned an error:
WARNING: Couldn't open directory /lib/modules/2.6.24-10-pve: No such file or directory
FATAL: Could not open /lib/modules/2.6.24-10-pve/modules.dep.temp for writing: No such file or directory
因此,我再次阅读了有关创建空目录并重做“depmod -a”的内容。
我现在没有得到依赖项错误,但得到了这个,我不知道如何继续:
WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
FATAL: Module ip_tables not found.
iptables-restore v1.4.4: iptables-restore: unable to initialize table 'raw'
Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
我知道虚拟机上的 iptables 规则必须不同,也许我们尝试应用的一些规则(来自我们的物理服务器)不兼容,但这些只是我希望能够进行的源 IP 和目标端口检查有可用的。我听说在 CentOS 模板上没有问题,所以我理解是与 VM 配置有关。
任何帮助将不胜感激。
我曾经问过同样的问题:) 事实证明,VE 中的 RAW 似乎至少需要 2.6.32-ovz。
不是直接的答案,但对于我的 openvz 机器,我将 iptables 规则放在主机上。然后他们在一个地方,无论如何都必须通过主机。您可能会发现这更容易和更清洁(但可能不是)。
根据这篇文章,需要在主机节点上进行一些设置。(以下文字大部分来自文章,但没有块引用,以使其更具可读性。)
首先,主机节点应该转发所有流量。以下命令使默认的 FORWARD 操作为 ACCEPT,然后刷新 FORWARD 链上的所有规则。
如果您想在容器内使用防火墙,请在启动容器之前加载这些模块:
如果不这样做,您将收到如下错误:“iptables: No chain/target/match by that name”
如果你想使用状态防火墙规则(你应该这样做!),你还需要确保 'ipt_state' 在你的 vz.conf 文件的 'IPTABLES' 选项中:
还要确保在主机上加载了“xt_state”模块: