因此,我尝试在我的 Linux VPS 上设置 Shorewall 防火墙。该 VPS 运行的是 ubuntu 12.10。当我输入$ shorewall
check 时,出现此错误。
iptables: No chain/target/match by that name.
ERROR: Log level INFO requires LOG Target in your kernel and iptables
所以我运行 iptables -L 并得到
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我尝试查看其他帖子,发现有一个类似的帖子,但它对我没有帮助。我使用的内核是 2.6.32-042stab079.5
有人知道我需要做什么来解决这个问题吗?我见过一些关于更改内核配置的方法,但我不知道该怎么做或要更改什么。
答案1
您使用的是基于 OpenVZ 的 VPS。与所有基于容器的虚拟化一样,您只能使用主机提供的内核模块。
您的选择是:
- 联系主机并请求他们向您提供必要的内核模块。
- 使用不是基于容器而是基于完全虚拟化或半虚拟化的 VPS,例如 Xen、KVM 或 VMware。
答案2
托管您的 VPS 的主机不提供必要的内核模块。在 CentOS 上,如果您想在 iptables 中使用 -j LOG,则需要能够加载 ipt_LOG.ko。您可以联系您的托管商来澄清这一点
答案3
转到 /etc/sysconfig/iptables 并添加您正在使用的链名称......如下所示
:前进 - [0:0]
这里不要使用 Forward,而要使用链名。