Featured image of post 爱快 IPv4/IPv6 ACL/防火墙设置

爱快 IPv4/IPv6 ACL/防火墙设置

关键词:爱快 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了。由于默认IPv6环境是几乎完全暴露在公网的。所以开启IPv6后,先加入两条规则,不允许公网通过IPv6访问本地,但允许本地通过IPv6访问公网:

IPv6默认ACL规则

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

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

  1. WEBUI/HTTPS/HTTP/SSH/RDP等

    假如8080,20000,30000-30004这几个端口都是WEBUI/SSH/RDP控制端口,只允许国内IPv6地址访问。对应本地设备有两个IPv6地址,分别为:

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

    那么可以这样设置:

    允许通过IPv6访问指定设备的指定端口

    • 连接方向匹配:原始方向。

    • 源地址:全国的数据可以从这里获取:clang,如果需要限制到省级的具体运营商,可以在这里获取:zxipv6wry(从中国.txt中你也可以找到市级/区级的信息)。

    • 目的地址:是IPv6特有的后缀式/负掩码写法(负掩码是一个全0的位串,后面跟着一个全1的位串,表示地址中不变的部分。),前缀变化后亦可生效:

      1
      2
      
      ::abbb:c1f:fea5:6c4c/::ffff:ffff:ffff:ffff
      ::add/::ffff:ffff:ffff:ffff
      

    为了防止ACL规则不失效,建议需要此规则的设备通过DHCPv6/EUI-64方式获取IPv6,防止后缀变化。

  2. BT/PT的监听端口

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

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

    可以如下设置:

    BT/PT监听不作限制

    同上所述,目的地址是后缀式::42:aff:fe00:fc/::ffff:ffff:ffff:ffff,源地址留空表示允许任何IPv6,连接方向匹配可以选择关闭。一条是tcp,一条是udp,目前爱快IPv6的ACL无法设置tcp+udp,只能分成两条。

  3. 完全暴露某台设备

    因为某些原因(比如PCDN),假如需要将某些IPv6完全暴露在公网中,那么可以这样设置:

    完全暴露指定IPv6

    其中的连接方向可以选择原始方向,目的地址,参照上述写法写成负掩码形式,源地址、目的端口均留空,表示全部允许。

规则验证

另外找台公网机器(不在本地网络中的,用手机蜂窝网临时开个热点也行),安装好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 设计