关键词:爱快 IPv4 / IPv6 ACL / 防火墙 端口转发 设置 安全
相关概念
引用自爱快帮助文档,不完全理解也没有关系,可以在实践中加深概念理解。
- 协议栈:支持选择IPV4或IPV6,在爱快路由3.7.0及以上版本支持。
- 协议:这条ACL规则所走的协议的类型。
- 动作:允许或阻断;
- 方向: 进或转发;
- [进]:内网或外网进路由。
- [转发]:路由接收到内网或外网数据然后把数据进行转发动作。
- 连接方向匹配:
- [原始方向]:匹配主动发起方发起访问时的报文。
- [应答方向]:匹配被访问方应答时的报文。
- 源地址:转发与进动作的起始地址。
- 目的地址:转发与进动作的结束地址。
- 源端口:允许或阻断的起始端口。
- 目的端口:特定目标的端口。
- 进接口:数据来源口。
- 出接口:目的出口。
IPv4与IPv6的不同
IPv4在爱快系统中设置了端口转发以后,被转发的端口通过任何公网IP都能访问,不太安全,但总得来说只限制在转发的端口范围内。
而IPv6不存在端口转发的概念,只要在爱快系统中启用了IPv6,那么内网的设备都有全球唯一的IPv6地址,不需要什么设置就能从公网访问。而爱快默认就没有启用IPv6防火墙,意思就是有IPv6地址的设备是几乎完全暴露在公网环境中的,极不安全。
当然,ISP大概率封掉了一些常见的端口。
IPv4的ACL/防火墙设置
IPv4要设置ACL/防火墙,由于NAT的存在,只需要针对设置了端口转发/UPNP/DMZ的端口/设备来设置。可以参考这篇教程,可以限制SSH/WEBUI/RDP的访问来源IP,提高安全性。
注意,如要设置ACL,要先设置好端口转发,然后只针对需要提高安全性的转发端口来设置ACL(BT/PT软件IPv4的监听端口只转发不设置ACL)。
IPv6的ACL/防火墙设置
ACL中
允许
的优先级高于阻断
。
爱快在3.7.0新增了IPv6 ACL/防火墙的功能,由此终于可以放心的开启IPv6了。爱快3.7.7新增了IPv6分组和MAC分组功能,不过还有BUG,在3.7.8终于稳定了,可以导入分组了简化设置了。
导入IPv6分组
下载 ipv6group.csv ,然后在爱快 “网络设置 -> 终端分组设置 -> IPv6分组” 处导入。如果下载不下来,可以前往我放在Github上的仓库 https://github.com/devome/files/tree/master/zxipv6wry clone后使用,在该仓库中,你也可以查阅中国完整的IPv6数据及分省数据。
需要注意的是,由于爱快分组名称的字数有限制,所以“联通”包含“联通”和“网通”,“移动”包含“移动”和“铁通”,“鹏博士”包含“鹏博士”和“长城宽带”。还有部分IPv6数据暂不清楚其分配到什么省份,所以归类为“未知省份”,请在选择来源IPv6分组时根据你的实际需要进行选择。
设置MAC分组
爱快3.7.7也新增了MAC分组功能,如果你想设置的设备的IPv6地址后缀部分不固定,可以通过MAC来放行IPv6流量,这时,你需要将后面需要设置的设置的MAC地址根据需要形成一个或多个分组,请自行在爱快 “网络设置 -> 终端分组设置 -> MAC分组” 处设置。
ACL规则
默认规则
注:第一条阻断规则的连接方向为原始方向
,第二条允许规则的连接方向为关闭
。并且由于目前爱快的IPv6 ACL还无法针对性的打开指定本地设备的ICMP协议,所以这样操作以后会默认禁止从公网ping本地的IPv6地址。爱快默认允许,所以上图中第二条规则不设置也可以。
然后再对有安全性要求的端口/IP来针对性的开放权限。以下举几种情况:
WEBUI/HTTPS/HTTP/SSH/RDP等
假如8080,20000,30000-30004
这几个端口都是同一台设备上运行的WEBUI/SSH/RDP控制端口,只允许你所在省份电信和联通的IPv6地址访问。这个设备有两个IPv6地址(比如一个是DHCPv6分配的,一个是设备自己通过EUI-64自行设置的),分别为:
2400:d0a0:38ba:abde:abbb:c1f:fea5:6c4c/64
2400:d0a0:38ba:abde::add/64
设置方式有两种形式,一种是“后缀匹配”,如下图所示(注:后缀式/负掩码写法是一个全0的位串,后面跟着一个全1的位串,表示地址中不变的部分。):
另一种形式是 “MAC匹配”,如下图所示(实际上根据下面的说明,这种外网访问内网的MAC匹配过滤是无法生效的,建议只对内网访问外网使用MAC地址匹配过滤):
重要提示
根据 爱快官方人员的说明:IPv6外网主动访问内网,无法做目的mac匹配,只能做后缀匹配也就是IPv6地址匹配。因为外网主动访问的,内网的此终端IPv6地址对应的mac地址,无法立马拿到(这个就涉及内核的发包细节了)。如果是内网主动向外访问,源主机对应的mac地址路由能第一时间就能拿到。
BT/PT的监听端口
假如33333,44444
这两个端口是BT/PT下载软件的下载监听端口,由于上面最开始添加的默认规则阻断了其他公网IPv6访问本地,现在需要将33333,44444
在IPv6上暴露出去。假如下载软件的IPv6地址是:
2400:d0a0:38ba:abde:42:aff:fe00:fc/64
同上文所述,后缀匹配(下图仅示意了tcp协议,一般BT/PT需要同时监听tcp和udp协议,而爱快目前不能同时设置tcp+udp,只能分成两条规则,请自行再增加一个udp的规则):
完全暴露某台设备
因为某些原因(比如PCDN),假如需要将某些IPv6完全暴露在公网中,那么可以按照上文中 “后缀匹配” 或者 “MAC匹配” 进行设置即可,唯一的不同点是协议选择“任意“,源地址留空,表示全部允许全部源地址的全部协议。
规则验证
另外找台公网机器(不在本地网络中的,用手机蜂窝网临时开个热点也行),安装好nmap(linux直接从仓库中安装,windows的在 这里),比如检测IPv6的某端口开放情况运行下面命令即可:
## 检测IPv6某端口的开放情况
nmap -6 -p <端口> -Pn
## 举例
nmap -6 2400:d0a0:38ba:abde:abbb:c1f:fea5:6c4c -p 8080,20000,30000-30004 -Pn
## 输出
Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-08 20:40 CST
Nmap scan report for 2400:d0a0:38ba:abde:abbb:c1f:fea5:6c4c
Host is up (0.016s latency).
PORT STATE SERVICE
8080/tcp open unknown
20000/tcp filtered unknown
30000/tcp filtered unknown
30001/tcp filtered unknown
30002/tcp open unknown
30003/tcp open unknown
30004/tcp open unknown
假如要检测IPv4的端口开放情况,把命令中的-6
更换为-4
即可。
state
状态说明:
-
open
: 目标可达并且端口已开放; -
closed
: 目标可达但端口没有打开,一般是没有服务运行在这个端口上; -
fitered
: 目标不可达,也就是被ACL/防火墙阻断了。
你可以启用/停用爱快系统中对应的ACL规则后,运行命令检测端口是否可连接。