iKuai爱快的IPv6防火墙设置
💡 在爱快路由3.7.0及以上版本开始支持 IPV6 协议的 ACL 规则。
⚠ 本篇配置防火墙的基本规则时全局禁入准出,特殊需要从公网连接的服务单独设置准入规则(当ACL规则冲突时允许的优先级高于阻断的优先级)。
IPv6裸奔现状
iKuai 路由器默认并没有开启防火墙,内网的 IPv6 设备确实是裸奔在互联网上的。
网页访问结果:
端口扫描结果:(5055是该设备的webui端口)
Pv6 的基本规则
(1) IPv6 地址的格式
- IPv6 地址由网络部分和主机部分两部分组成。
- IPv6 地址的标准写法为 "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx" (其中每个 x 是代表一个 4 位的十六进制数字。IPv6 地址范围从 0000:0000:0000:0000:0000:0000:0000:0000 至 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff).
- 通过省略前导零指定 IPv6 地址。例如,IPv6 地址 "1050:0000:0000:0000:0005:0600:300c:326b" 可写为 "1050:0:0:0:5:600:300c:326b".
- 通过使用双冒号(::)代替一系列零来指定 IPv6 地址。例如,IPv6 地址 "ff06:0:0:0:0:0:0:c3" 可写为 "ff06::c3". (一个 IP 地址中只可使用一次双冒号)。
- CIDR 表示法 "2408:821b:821c:821d::65b/64" 中地址后面跟着的 "/64" 指的是ipv6地址的前缀长度,类似于 IPv4 的子网掩码。
- 网络部分被称为网络前缀,用来唯一地标识着连入互联网的一个网络。网络前缀的长度被称为前缀长度或子网前缀,它与地址的网络部分相对应。在IPv6网络中,前缀长度通常为64位,这是建议的地址分配长度,也是最常用的网络前缀长度。
- 前缀长度由运营商指定。
防火墙设置
先加入两条规则,不允许公网通过IPv6访问本地,但允许本地通过IPv6访问公网(禁入准出)。
(1) 禁入:
- 【协议栈】:IPv6
- 【协议】:任意
- 【动作】:阻断
- 【方向】: 转发。(路由器本身可以单独设置是否开启远程管理(默认关闭),不必再设置 ACL)
- 进:内网或外网进路由。
- 转发:路由接收到内网或外网数据然后把数据进行转发动作。
- 【连接方向匹配】:原始方向。哪方发起连接哪方便为为原始方向,彼方为应答方向。
- 以下是我的一些猜测:这里一定要仅选"原始方向",不能选"关闭"或"双向"。因为如果包含了"应答方向"的话,即使内网设备出站放行,但远程服务器的"应答"若被阻断,也仍然无法正常上网。"连接方向"和"访问方"、"被访问方"有关,与"进接口"、"出接口"并没什么大关系,不一定"出接口"就是"被访问方。"
- 【进接口】和【出接口】:一般为 WAN 和 LAN,根据实际情况选择。
(2) 准出:
- 【协议栈】:IPv6
- 【协议】:任意
- 【动作】:允许
- 【方向】: 转发
- 【连接方向匹配】:关闭
网上的教程都是设置为"关闭",新规则默认选择的也是"关闭"。"关闭"具体是什么效果ikuai的官方文档里也没说。以下是可能的解释:
"关闭":这个设置可能意味着ACL规则对数据包的方向不做任何检查或匹配。换句话说,规则将会无视数据包的方向,只根据其它条件(如源IP地址、目标IP地址、协议类型等)来决定是否应用。在某些情况下,"关闭"也可能意味着ACL规则完全不会被应用,但这取决于具体设备或软件的设计。(by ChatGPT-4)
- 【进接口】和【出接口】:一般为 LAN 和 WAN,根据实际情况选择。
"准出"设置是否生效可以使用 IPv6 测试 (test-ipv6.com) 进行测试,能通过就是没问题。
准入特定端口
⚠ 建立规则需要目标服务的 IP 地址是确定的,但 ikuai 尚不支持静态 DHCPv6 也不支持 DHCPv6/EUI-64, 所以只能自谋出路了。目前来看设备使用"无状态(SLAAC)"获取的 IPv6 地址后缀还算稳定(在iOS上不行,重启会变),也可以与客户端手动设置的方式结合使用。
以允许外网访问某台服务器的 5055 (TCP) 端口为例:
- 【协议栈】:IPv6
- 【协议】:tcp
- 【动作】:允许
- 【方向】: 转发
- 【连接方向匹配】:关闭
- 【目的地址】:"::de62:94ff:fe1f:c19a/::ffff:ffff:ffff:ffff"
- 这是 IPv6 负掩码写法。负掩码的主要作用是用于 IPv6 地址的路由选择。
- 负掩码是一个全0的位串后面跟着一个全1的位串,全1的位串表示地址中不变的部分,所以使用这种写法前缀变化不会影响ACL规则的效果。
- 因此,若IPv6地址是"2408:821b:821c:821d:de62:94ff:fe1f:c19a/64",
- 只匹配"主机部分"的负掩码写法应该写为 "2408:821b:821c:821d:de62:94ff:fe1f:c19a/0000:0000:0000:0000:ffff:ffff:ffff:ffff".
- 因为掩码为'0'的部分对应的地址变化不影响效果,因此可以将地址中的那些位都写成零,再使用双冒号把那些0省略掉就变成了"::de62:94ff:fe1f:c19a/::ffff:ffff:ffff:ffff".
- 【目的端口】:"5055"
- 【进接口】和【出接口】:一般为 WAN 和 LAN,根据实际情况选择。
参考连接
- IPv6 测试 (test-ipv6.com)
- IPV6 Scanner | Online Port Scan
- ACL规则-爱快 iKuai-商业场景网络解决方案提供商 (ikuai8.com)
- 网络无限 篇二:爱快IPv6的使用及ACL配置_路由器_什么值得买 (smzdm.com)
- 爱快 IPv4/IPv6 ACL/防火墙设置 - 知乎 (zhihu.com)
- 爱快IPv6 ACL | r0yanx's Blog
- ipv6地址数中/32,/48,/64含义_ipv6斜杠后面的数字_啊我鹅一五与的博客-CSDN博客
- ipv6地址格式-阿里云开发者社区 (aliyun.com)
- IPv6地址的格式及子网划分方法(IPv6子网划分) 路由器 (luyouqi.com)