有一个 IPv6 防火墙总开关就够了

2022-02-13 15:45:51 +08:00
 LnTrx

2022 年了,很多家用路由器还是没有 IPv6 防火墙的开关,这不应该。
但也有不少人希望路由的防火墙能像 IPv4 那样提供开放端口、控制映射等高级功能,楼主觉得大可不必。

原因如下:

  1. IPv4 下暴露端口最大的威胁是被人扫到,而 IPv6 的 SLAAC 和隐私扩展机制使得终端极难被外部暴力扫描发现(不含网关)。现代操作系统通常自带有防火墙,即使 IPv6 用户的主动访问被探测并发起回访,只要没有乱改配置风险也不大。

  2. SLAAC 和隐私扩展机制使得用户的 IPv6 地址是经常变化的,用户要么需要设法固定地址,要么就得不断调整防火墙配置,无论哪种都非常麻烦。(楼主还没找到可以根据终端 MAC 自动配置的方案,如有还请指出)

  3. 点对点直连才是互联网本来的样子。当用户被 IPv4 NAT 保护惯了,突然回到无阻碍直连的状态反而没有安全感,这才是反常。如果为了顺从过去的习惯,在网关默认屏蔽入站连接,那么当需要开放端口时就又得搞出一套适用于 IPv6 的打洞机制。应该没有人希望在 IPv6 时代还要折腾 UPnP 、NAT-PMP 、Hole Punching 之类的事情吧?

需要指出的是,在 IPv6 地址长期固定的服务端场景下,网关防火墙的精细控制还是有意义的。
如果有考虑不周的地方,欢迎交流讨论。

13690 次点击
所在节点    宽带症候群
65 条回复
v2tudnew
2022-02-14 20:15:08 +08:00
对了,虽然临时 IP 那种随机攻击的不会知道,但被访问端,中间设备(主要房东及各类公共 WIFI )都是知道的,我是不知道你哪来的自信说风险可控。
LnTrx
2022-02-14 23:06:28 +08:00
@v2tudnew
对,是可以 UDP 打洞,只不过各环节都要增加复杂度。比如在 BT 中,就需要一个没有防火墙的 peer 做中介。( https://libtorrent-discuss.narkive.com/HqyhMO7B/libtorrent-does-libtorrent-support-hole-punching )如果大家都指望打洞方案,那可连接性就可想而知了。
顺便一提,NAT-PMP 有支持 IPv6 的后继者( Port Control Protocol ),但不太清楚目前路由支持的情况。

参考之前的永恒之蓝,微软已经发更新之后 WannaCry 才开始传播,而且主要是内网扩散。IPv6 回访攻击要能实现,对漏洞的要求应该更高。相比之下,防止应用程序漏洞的作用倒相对大一点。如果某程序开了没有限制来源的公网访问端口、通过了系统防火墙的许可、出现了未修复的危险安全漏洞、没有配置打洞机制或防火墙例外,同时用户主动访问的网站或中间的网关被攻击者掌握,且攻击者进行了扫描并正好知道这个漏洞,那有白名单防火墙会更安全。
我的意思是说,网关白名单防火墙的方案对用户和开发者增加了太多复杂性,但提升的安全性不大。操作系统的防火墙依然存在,所以掀屋顶的比喻不是很恰当,要我看更像是把围墙拆了变街区。

你提公共 WIFI 的场景我有点不理解。如果你在考虑把设备放置于陌生网络中的风险,那更应该加强设备自身的防护(零信任思想),而不是依赖网关来营造“安全”的边界。
v2tudnew
2022-02-14 23:54:43 +08:00
@LnTrx #42
你自己举例的都不说直接暴露不安全了......临时 IPv6 主要目地是隐私问题。
你说永恒之蓝,那 Windows RID 劫持 这个漏洞呢,发现都长达十多个月了,还有很多都不记得了的漏洞。开发者不关心用户是否有安全问题我能理解,但鼓动关闭防火墙那又是另一回事了。
BT 真正的问题是无公网 IP 可用而不是用户会不会配置的问题,IPv4 的端口映射给新手也不会用还是得依赖自动映射,不如让厂商早点支持才是解决方法。

我很好奇你那不用 DDNS 又不能中继、打洞非要 IP (每次连接还得看 IP 是多少,然后复制粘贴,我感觉很神奇)输入连接,用户又是小白的软件到底是啥? BT 这个例子可不适合,这个不需要用户配置 IP 地址。
v2tudnew
2022-02-15 00:00:33 +08:00
>>操作系统的防火墙依然存在
问题是用户你给他个是否选择,他一定会选择是,那你说这个操作系统防火墙有用吗?
而且,那些啥智能设备有防火墙吗?你就这样直接暴露出来?
v2tudnew
2022-02-15 00:15:04 +08:00
算了,上面的当我没回好了,如果厂商真全这么搞,就交给时间验证吧。
LnTrx
2022-02-15 00:26:05 +08:00
@v2tudnew 没有绝对的安全,我的举例是在说明安全和方便的取舍问题
Windows RID 劫持是公网暴露端口就能被利用的漏洞么?我在说的是能使公网回访攻击产生危害漏洞出现的概率。我不是开发者,只是在实践中产生了对 IPv6 的防火墙策略的见解。

最后这个问题没看懂,什么叫“需要用户配置 IP 地址”,我什么时候提出过这个需求?
LnTrx
2022-02-15 00:45:46 +08:00
@v2tudnew 当然,你的见解也具有启发性。可以设想未来有一天,路由器和各类应用都广泛支持 PCP 机制,用户无需手动添加例外同时又可以进行管理,那默认禁止入站会是一个更优的选项。在这一天到来之前,我还是觉得有一个 IPv6 防火墙总开关就够了。
v2tudnew
2022-02-15 01:04:03 +08:00
我可没说绝对的安全性,路由器防火墙的存在是隔离私网与广域网的屏障之一。
永恒之蓝发现的快是因为它是破坏性的(没瞎的人都知道有问题)。

我也说说我的体验,用户配置难点在哪?路由器能检测出设备名称、MAC 地址吧,按名称\MAC (临时地址也有一样的 MAC )配置端口开放,这是功能没做好的问题。
默认禁止连入、允许应用自动配置,防御永远是被动的,适当过滤不必要的能减少很多麻烦,这才是意义上的取舍,毕竟要允许任意 IP 连接的应用就那么多,像联机、VOIP 一对一的少数靠打洞完全够了,v6 没有 CG NAT ,没那么多复杂场景。
LnTrx
2022-02-15 01:36:48 +08:00
@v2tudnew
我也是因为曾经想沿用 IPv4 的经验,发现配置异常繁琐才产生如此见解的。比如主帖里提到的“可以根据终端 MAC 自动配置的方案”,就是曾经试图寻找但未能实现的尝试。
只不过面临这样的困难,你我设想的路线不同。你的设想是强化私网与广域网的屏障,构造一个安全的内网,通过更多功能改善用户的体验。我的设想是取消网关上的安全边界,按照公网的标准防范,通过 IPv6 的隐私扩展和强化终端的建设来维护安全。现况与这两个设想都有一定的距离,未来会怎么发展,也只能交给时间了。
ppbaozi
2022-02-15 01:37:20 +08:00
防火墙又不是只用来做端口转发的,哪怕不存在 ipv4 的地址枯竭,不存在 nat ,openwrt ,ros 的 ipv4 防火墙就会比现在更简单么,并不会。

不要指望默认开放入站能成为主流,正经厂商,不可能给你默认开放入站,谁都不能保证有意外,出了事,他家的品牌都得掉价。恰恰相反,routeros 出厂给你整了 20 多条 ipv6 的默认防火墙规则,已经告诉了你什么才是重要的:安全

8-9 成以上的网民,压根不关心自己的端口有没有开放出去,他们连端口是什么都不知道,能正常上网就完事,谁关心开发者网路连通性好不好搞定。但是他们会共同关心的还是:安全。如果你跟他们说,网上任何人都有可能直接访问到你家的摄像头,你看他慌不慌就完事了。

现在应该说比以前任何时候都更注重数据安全、隐私保护。以前国产路由出厂密码都整些 123456 之流,现在都得让你自己设置,这才是进步。
baobao1270
2022-02-15 07:43:55 +08:00
第三点说的很对,IPv6 本来就是 IP 网络本来的样子。大多数人都已经习惯了有 NAT 的网络,不知道“路由”是什么东西,以为 LAN 本身就是带 NAT 的。

但是正是因为没有了 NAT ,所以以前那种“反正有 NAT 要什么防火墙” 的思路应该结束了。正是因为没有了 NAT ,所以才需要对防火墙进行精细的控制。这个与 UPnP 、Hole Punching 无关,IPv6 防火墙要做的是 iptables 之类的事情。

“在 IPv6 地址长期固定的服务端场景下,网关防火墙的精细控制还是有意义的。”这句话正是“开放端口、控制映射等高级功能”存在的意义啊。而且 IPv6 不固定不是 IPv6 的问题,是 SLAAC 的问题。对于小白需要的是快速配置、预制的防火墙规则和 SLAAC ;但是对于我们这些喜欢折腾的人来说,还是需要高级的防火墙功能和 DHCPv6 的。如果一个产品想要覆盖更多的用户,还是需要做这些功能的,尤其是面向“发烧友”的产品。正所谓“我可以不用,你不能没有”。

另外我觉得 SLAAC 本身也是面向大众的一个东西,对于喜欢折腾的人、还有需要对外提供服务的情况,使用 DHCPv6 才是正确的做法。把网络的安全交给 SLAAC ,无异于 IPv4 时代将网络安全交给 NAT 。
LnTrx
2022-02-15 13:04:46 +08:00
@baobao1270 我是觉得 NAT 反而让大家习惯于“安全”的内网,一定程度上忽视了终端安全的建设。这样在终端移动到陌生网络或在网关配置失误时反而会出现更大的危险。

自动化端口暴露的需求还是广泛存在的,要穿越的就是 ip6tables 。

家用场景的前缀总是会变,本来就要适配动态的 IP 报告机制,所以在这里我不当作“长期固定”。当然你表达的可能是“后缀长期固定”。正如前面所说的,在端口暴露自动配置机制还不怎么可用的现在执行白名单防火墙,配置的复杂度过高但安全提升不那么明显,对于有一定网络知识的用户也很折腾,不应该是推荐的最佳实践。所以我认为用户不必过于指望家用路由具有 v6 防火墙高级功能,但厂商把更多底层做成 UI 供高级用户选用,我并不反对。

大众使用 SLAAC 、喜欢折腾使用 DHCPv6 的分法我觉得可能不太合适。喜欢折腾的人家里还是有不参与到折腾的人和设备,统一改成 DHCPv6 反而削弱了隐私扩展,更何况还有故意不支持 DHCPv6 的 Android 。如果家里没有这样的设备,全部都是服务端,那直接固定后缀应该就可以了。当然,这种场景一般会用企业级路由器,也超出了本帖的讨论范围。
abc8678
2022-02-16 00:41:40 +08:00
求助,我刚开通 ipv6 访问,就源源不断有人尝试登录,消息都爆满了。有没有办法在 OpenWrt 路由器阻止外部访问,需要时远程开启?我有 zerotier 和向日葵。之前一直用 zerotier 连接 nas ,速度被压低了,或者穿透失败 有时屡试屡败,还是直接访问比较舒服。但我不是一直需要用,想用完就关。路由器 iptables 还没学会。关了入站数据,发现在外面还可以访问。关了转发数据,失联了。剩下个出站数据不敢改了。
LnTrx
2022-02-16 18:19:17 +08:00
@abc8678 我的群晖自从没了公网 IPv4 以后,仅有公网 IPv6 就没出过什么日志。看了下你发的其他帖子,还是建议去调查你 NAS 的地址是怎么被捅出去的。否则要么惶惶不可终日,要么使用非常不便,难以兼顾。
abc8678
2022-02-17 17:52:43 +08:00
@LnTrx nas 的哪个地址? mac 地址?
LnTrx
2022-02-17 23:24:53 +08:00
@abc8678 “手中的设备的 IPv6 地址” “是 ipv4 在访问我。我明明没有 ipv4 的公网”
cwek
2022-02-18 20:27:01 +08:00
@LnTrx 我认为物联网设备优先分配 ULA ,然后通过 NPTv6 做前缀转换 NAT ,由边界路由器做这些物联网的安全网关。
LnTrx
2022-02-18 23:49:57 +08:00
@cwek 我觉得这样可能不太好,会增加物联网设备跨子网联动的复杂度和延迟
cwek
2022-02-19 08:44:38 +08:00
@LnTrx 延迟影响不大,因为只是前缀转换。不过连通性影响的话,要看设备是否需要对外,通过前缀区分内外,只要对外连接,被锤是迟早的事。
LnTrx
2022-02-19 13:25:52 +08:00
@cwek 如果需要第三方借助打洞、或者不停包发保活,想做到低能耗低延时是困难的。对外连接总是有风险,但我前面也论述了,IPV6 下外网直连的攻击面会小很多,相比之下设备自身的风险更加凸显。我还不是太理解你的方案,增加了前缀转换的步骤,能提供什么防火墙给不了的功能?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/833550

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX