Featured image of post 爱快 IPv6 ACL/防火墙设置(爱快 3.7.8+)

爱快 IPv6 ACL/防火墙设置(爱快 3.7.8+)

关键词:爱快 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规则

注:第一条阻断规则的连接方向为原始方向,第二条允许规则的连接方向为关闭。并且由于目前爱快的IPv6 ACL还无法针对性的打开指定本地设备的ICMP协议,所以这样操作以后会默认禁止从公网ping本地的IPv6地址。爱快默认允许,所以上图中第二条规则不设置也可以。

然后再对有安全性要求的端口/IP来针对性的开放权限。以下举几种情况:

WEBUI/HTTPS/HTTP/SSH/RDP等

假如8080,20000,30000-30004这几个端口都是同一台设备上运行的WEBUI/SSH/RDP控制端口,只允许你所在省份电信和联通的IPv6地址访问。这个设备有两个IPv6地址(比如一个是DHCPv6分配的,一个是设备自己通过EUI-64自行设置的),分别为:

1
2
2400:d0a0:38ba:abde:abbb:c1f:fea5:6c4c/64
2400:d0a0:38ba:abde::add/64

设置方式有两种形式,一种是“后缀匹配”,如下图所示(注:后缀式/负掩码写法是一个全0的位串,后面跟着一个全1的位串,表示地址中不变的部分。):

后缀匹配放行湖北电信、湖北联通的IPv6

另一种形式是 “MAC匹配”,如下图所示(实际上根据下面的说明,这种外网访问内网的MAC匹配过滤是无法生效的,建议只对内网访问外网使用MAC地址匹配过滤):

重要提示

根据 爱快官方人员的说明:IPv6外网主动访问内网,无法做目的mac匹配,只能做后缀匹配也就是IPv6地址匹配。因为外网主动访问的,内网的此终端IPv6地址对应的mac地址,无法立马拿到(这个就涉及内核的发包细节了)。如果是内网主动向外访问,源主机对应的mac地址路由能第一时间就能拿到。

MAC匹配放行湖北电信、湖北联通的IPv6

BT/PT的监听端口

假如33333,44444这两个端口是BT/PT下载软件的下载监听端口,由于上面最开始添加的默认规则阻断了其他公网IPv6访问本地,现在需要将33333,44444在IPv6上暴露出去。假如下载软件的IPv6地址是:

1
2400:d0a0:38ba:abde:42:aff:fe00:fc/64

同上文所述,后缀匹配(下图仅示意了tcp协议,一般BT/PT需要同时监听tcp和udp协议,而爱快目前不能同时设置tcp+udp,只能分成两条规则,请自行再增加一个udp的规则):

后缀匹配放行BT/PT监听

完全暴露某台设备

因为某些原因(比如PCDN),假如需要将某些IPv6完全暴露在公网中,那么可以按照上文中 “后缀匹配” 进行设置即可,唯一的不同点是协议选择“任意“,源地址留空,表示全部允许全部源地址的全部协议。

一点TIPS:可以在局域网网中通过nmap把某台机器开放的端口扫描出来,比如: nmap -6 240e:1234:5678:90ab::1000 -Pn -p 1024-65535,输出会将打开的端口显示出来,知道了哪些端口是打开的,就可以只开放这些端口,而无需开放全部端口。比如,有些系统有个控制台,但可能你并不想把控制台的端口转发到公网上。

规则验证

另外找台公网机器(不在本地网络中的,用手机蜂窝网临时开个热点也行),安装好nmap(linux直接从仓库中安装,windows的在 这里),比如检测IPv6的某端口开放情况运行下面命令即可:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
## 检测IPv6某端口的开放情况
nmap -6 <IPv6地址或能解析IPv6的域名> -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规则后,运行命令检测端口是否可连接。

Built with Hugo
主题 StackJimmy 设计