注意:这个问题仍未解决 - 答案已被自动接受。
我有一个 Debian Lenny VPS,它运行由 Parallels/Virtuozzo 虚拟化。目前,网络接口没有 IPv6 地址——这很好,因为我没有ip6tables
配置。
但我假设,有一天我会醒来,ifconfig 会显示接口的 ipv6 地址——因为我无法控制内核或其模块——它们在托管公司的控制之下。这将使服务器完全容易受到来自 IPv6 地址的攻击。
禁用 IPv6(对于接口或整个主机)的最佳方法是什么?通常我会简单地禁用内核模块,但在这种情况下这是不可能的。
更新
也许我应该补充一点,我可以iptables
正常使用一切(我是 VPS 上的 root),但由于 Virtuozzo 的工作方式(共享内核) ,我无法更改内核或加载内核模块。
lsmod
总是什么都不返回。
我不能打电话ip6tables -L
(它说我需要 insmod,或者必须升级内核)。
我不认为,改变/etc/modprobe.d/aliases
会产生任何影响,或者是吗?
网络配置?
我想,也许我可以从 /etc/network/... 关闭 IPv6。这可能吗?
我只在 Ubuntu 上对此进行了测试,但您可以尝试以下方法:
如果这似乎可行,您可以通过将以下内容添加到以下内容使其永久化
/etc/sysctl.conf
:最好的解决方案是设置一个涵盖 v6 的 iptables 配置。
否则,大多数守护程序将允许您指定要绑定的接口地址,默认为 all。明确列出您想要的 v4 地址,然后他们不会在 v6 地址上留下开放端口,如果您以后得到任何地址。不过,传出连接仍然更喜欢 v6 地址。
有一种相当简单的方法可以防止 IPv6 受到攻击。
没有不应该向世界开放的服务监听。至少简单地强制服务绑定到特定的 IPv4 地址应该确保它们没有监听 IPv6。
netstat -tupl
可以帮助解决这个问题。防火墙应该存在有两个原因: * 保护对世界的访问受限的服务(TCP 包装器在这里也有帮助) * 保护您免受自己的错误
我相信目前在 Debian Lenny 中禁用 IPv6 的最佳方法是在其中创建一个
/etc/modprobe.d
名为ipv6.conf
with的文件blacklist ipv6
,然后depmod -ae
以 root 身份运行,然后是update-initramfs -u
.debian.org wiki 上有一篇关于此的文章:http ://wiki.debian.org/KernelModuleBlacklisting
祝你好运!
——杰德
在这里冒险,但主机提供商不会向其客户传达任何像这样的潜在内核更改吗?您是否经历过任何事情(内核升级等)会让您相信这会在没有事先通知的情况下发生?此外,他们是否甚至将 IPv6 流量路由到/来自他们的网络?最好只是表达您对支持并从那里开始的关注。
我现在无法在 debian 上测试它,但在 Redhat 上你可以修改 /etc/sysconfig/network 文件并添加“NETWORKING_IPV6=no”
不确定这是否会有所帮助,但OpenVZ(Virtuozzo 开源)似乎不支持 IPv6。
阻止 ip6tables 中的所有内容不能解决您的问题吗?它还允许您随时实现 ipv6 iptables,而无需再次启用 ipv6。
另一种选择是配置一些完全虚假的 IPv6 设置,因此即使提供商启用它,它也根本无法在此系统上运行(是的,它非常笨拙,但它可以防止任何人使用 IPv6 做任何事情你的系统)。
祝你好运,
——杰德
ip route del ::/0
删除将有效中断 IPv6 连接的默认路由。