笔记:这个问题仍未解决——答案已被自动接受。
我有一台 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... 可以吗?
答案1
我仅在 Ubuntu 上测试过,但您可以尝试以下操作:
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
如果此操作有效,您可以通过添加以下内容使其永久生效/etc/sysctl.conf
:
net.ipv6.conf.all.disable_ipv6=1
答案2
最好的解决方案是设置一个涵盖 v6 的 iptables 配置。
除此之外,大多数守护进程都会让您指定要绑定的接口地址,默认为全部。明确列出您想要的 v4 地址,然后它们不会在 v6 地址上留下开放端口,如果您以后获得任何端口的话。不过,传出连接仍然会首选 v6 地址。
答案3
有一个相当简单的方法可以防止 IPv6 受到攻击。
不要让不应该向世界开放的服务监听。至少简单地强制服务绑定到特定的 IPv4 地址应该可以确保它们不会监听 IPv6。netstat -tupl
可以帮助解决这个问题。
防火墙应该存在有两个原因:* 使用以下方式保护服务:有限的访问世界(TCP 包装器在这里也有帮助)* 保护你免受自己犯的错误的影响
答案4
在这里冒点风险,但主机提供商不会交流是否有任何潜在的内核更改,例如对客户而言?您是否经历过任何让您认为这种情况会在没有提前通知的情况下发生的事情(内核升级等)?此外,他们是否甚至将 IPv6 流量路由到/从其网络路由?最好只是向支持人员表达您的担忧,然后从那里开始。