关键词:爱快 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还无法针对性的打开指定本地设备的ICMP协议,所以这样操作以后会默认禁止从公网ping本地的IPv6地址。爱快默认允许,所以上图中第二条规则不设置也可以。
然后再对有安全性要求的端口/IP来针对性的开放权限。以下举几种情况:
-
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
那么可以这样设置:
-
连接方向匹配:原始方向。
-
源地址:全国的数据可以从这里获取: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,防止后缀变化。
-
-
BT/PT的监听端口
假如
33333,44444
这两个端口是BT/PT下载软件的下载监听端口,由于上面最开始添加的默认规则阻断了其他公网IPv6访问本地,现在需要将33333,44444
在IPv6上暴露出去。假如下载软件的IPv6地址是:1
2400:d0a0:38ba:abde:42:aff:fe00:fc/64
可以如下设置:
同上所述,目的地址是后缀式
::42:aff:fe00:fc/::ffff:ffff:ffff:ffff
,源地址留空表示允许任何IPv6,连接方向匹配可以选择关闭
。一条是tcp
,一条是udp
,目前爱快IPv6的ACL无法设置tcp+udp
,只能分成两条。 -
完全暴露某台设备
因为某些原因(比如PCDN),假如需要将某些IPv6完全暴露在公网中,那么可以这样设置:
其中的连接方向可以选择
原始方向
,目的地址,参照上述写法写成负掩码形式,源地址、目的端口均留空,表示全部允许。
规则验证
另外找台公网机器(不在本地网络中的,用手机蜂窝网临时开个热点也行),安装好nmap(linux直接从仓库中安装,windows的在 这里),比如检测IPv6的某端口开放情况运行下面命令即可:
|
|
假如要检测IPv4的端口开放情况,把命令中的-6
更换为-4
即可。
state
状态说明:
open
: 目标可达并且端口已开放;closed
: 目标可达但端口没有打开,一般是没有服务运行在这个端口上;fitered
: 目标不可达,也就是被ACL/防火墙阻断了。
你可以启用/停用爱快系统中对应的ACL规则后,运行命令检测端口是否可连接。