文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

家庭宽带IPv6地址使用揭秘

2024-11-30 12:08

关注

Part 01 IPv6地址可用性 

设备获取IPv6的全球单播地址后,理论上能够实现设备和业务服务器的双向端到端通信,我们使用笔记本电脑接入家宽网络,分配IPv6地址后并验证时,发现其公网连通性是不可达状态,这是什么原因呢?

bogon:~ root$ telnet 2409:8a28:ec3:51f0:2a12:93ff:fe68:fee5
Trying 2409:8a28:ec3:51f0:2a12:93ff:fe68:fee5...
telnet: connect to address
2409:8a28:ec3:51f0:2a12:93ff:fe68:fee5: Network is unreachable

原来是考虑到IPv6地址暴露后存在安全风险,运营商在智能网关标准中,提出了端口权限最小化和防攻击功能的要求,在网关出厂时,厂商会在网关中预置特定的防火墙策略。由于网络策略的存在,家宽网络中IPv6地址实际可用性是很差的,直接下行的转发流量基本都被网关拦截或丢弃。为了安全有效地使用IPv6地址,结合白名单机制的网络策略或许是一个不错的选择。

图1 《中国移动智能家庭网关技术规范》-端口权限最小化

图2 《中国移动智能家庭网关技术规范》-防攻击功能

Part 02 IPv6 session防火墙 

IPv6端到端的通信,由于网络策略的原因,导致服务器到终端设备的下行流量被拦截。

经过对智能网关的分析,发现上述拦截能力可称为IPv6 session防火墙,该防火墙功能基于iptables实现,在网关的iptables转发链中,存在一个FORWARD_FIREWALL子链,用于存储控制转发的session防火墙策略。

防火墙策略FORWARD:

Chain FORWARD (policy ACCEPT 107 packets, 14852 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     138K   34M SKIPLOG    all      *      *       ::/0                 ::/0                 mark match ! 0x4000000/0x4000000
2     3547  290K TCPMSS     tcp      *      ppp0    ::/0                 ::/0                 tcp flags:0x06/0x02 tcpmss match 1300:65535 TCPMSS set 1380
3     3176  235K TCPMSS     tcp      ppp0   *       ::/0                 ::/0                 tcp flags:0x06/0x02 tcpmss match 1300:65535 TCPMSS set 1380
4    73122   11M FORWARD_ALG  all      *      !br+    ::/0                 ::/0                
5     146K   36M JNI_FILTER  all      *      *       ::/0                 ::/0                
6    72710   25M IP_FILTER_IN  all      !br+   *       ::/0                 ::/0                
7    73122   11M IP_FILTER_OUT  all      br+    *       ::/0                 ::/0                
8    73122   11M PARCTL_MAC  all      br+    *       ::/0                 ::/0                
9    73122   11M URL_FILTER  all      br+    *       ::/0                 ::/0                
10   73122   11M MAC_FILTER  all      br+    *       ::/0                 ::/0                
11    146K   36M FORWARD_FIREWALL  all      *      *       ::/0                 ::/0

(1)当关闭时,防火墙策略为空,

Chain FORWARD_FIREWALL (1 references)
pkts bytes target prot opt in out source destination

(2)开启ipv6 session防火墙后,Forward链策略中新增了两条策略:

Chain FORWARD_FIREWALL (1 references)
pkts bytes target prot opt in out source destination 
252 26905 ACCEPT all br+ * ::/0 ::/0 
234 72274 ACCEPT all * br+ ::/0 ::/0 ctstate RELATED,ESTABLISHED

这两条策略即为实现IPv6 Session防火墙的核心,基于iptables状态跟踪实现,其实现的转发控制能力如下:

(1)接收从任意br开头的网卡到其它网卡的流量(上行);

(2)接收从网卡到任意br开头的网卡的流量,该流量的状态必须是已经建立双向连接或该连接的衍生连接(下行)。

简单来说,就是终端设备往外访问的一律放行,外部服务器来访问终端设备,如果之前没建立过连接,直接拦截,反之则放行。具体的状态信息可参考如下概念:

- 概念分析

(1)iptables状态跟踪

从Linux2.6.15的内核版本后,iptables开始支持状态跟踪(conntrack),该功能依赖于netfilter的内核模块nf_conntrack。此后,iptables可以根据包的状态进行二次的过滤拦截和状态跟踪。它也是state/ctstate和nat的主要依赖模块。

conntrack将数据流的状态信息以Hash表的形式储存在内存中,包括五元组信息以及超时时间等。这里说的状态跟踪并非是指状态协议(如TCP)中连接状态的跟踪,而是conntrack特有的与网络传输协议无关的状态的跟踪。

(2)conntrack五种状态

conntrack共可以为连接标记五种状态,分别如下:

➟ NEW:新建连接请求的数据包,且该数据包没有和任何已有连接相关联。判断的依据是conntrack当前“只看到一个方向数据包(UNREPLIED)”,没有回包。

➟ ESTABLISHED:该连接是某NEW状态连接的回包,也就是完成了连接的双向关联。

➟ RELATED:匹配那些属于helper模块定义的特殊协议的网络连接,该连接属于已经存在的一个ESTABLISHED连接的衍生连接。简而言之,A连接已经是ESTABLISHED,而B连接如果与A连接相关,那么B连接就是RELATED。这部分不理解没有关系,也很难一句话说清,后面章节会用大量笔墨来阐明它。

➟ INVALID:匹配那些无法识别或没有任何状态的数据包。这可能是由于系统内存不足或收到不属于任何已知连接的ICMP错误消息,也就是垃圾包,一般情况下我们都会DROP此类状态的包。

➟ UNTRACKED :这是一种特殊状态,或者说并不是状态。它是管理员在raw表中,为连接设置NOTRACK规则后的状态。这样做,便于提高包过滤效率以及降低负载。

conntrack是一种状态跟踪和记录的机制,本身并不能过滤数据包,只是提供包过滤的依据。有状态是一种过滤依据,无状态实际也是一种过滤依据。

Part 03 IPv6白名单机制 

IPv6  Session防火墙通过两条策略实现了转发防护的能力,那么是否可以在此基础上实现白名单机制,答案是肯定的,使用白名单机制将限定通道两端的发送者和接受者,同时又保持原有的网络策略开启,符合智能网关的标准。

iptables可以通过策略添加实现白名单机制,在智能网关的转发策略中加入允许发起下行请求的IPv6地址,并按照该地址筛选下行的源IP地址的数据包并放行。经测验,开启ipv6 session防火墙,并添加特定白名单后,终端设备即可支持ipv6地址的下行访问。以6.ipw.cn为例,我们新增策略如下:

ip6tables -t filter -I FORWARD -s 6.ipw.cn -j ACCEPT 
ip6tables -t filter -I FORWARD -d 6.ipw.cn -j ACCEPT

新增后的iptables策略清单。

Chain FORWARD (policy DROP 3 packets, 246 bytes)
pkts bytes target     prot opt in     out     source               destination 
7  1833 ACCEPT     all      *      *       ::/0                 2409:8928:e20:84fe:a11b:b839:66ae:84a7 
101  7226 ACCEPT     all      *      *       2409:8928:e20:84fe:a11b:b839:66ae:84a7  ::/0

外网获取ipv6地址结果 ,即设备IPv6地址能够被6.ipw.cn访问。

curl 6.ipw.cn
2409:8a28:efb:b8a6:d1b6:9c3b:2f2e:c3ee

上述结果即说明该IPv6地址可被公网访问,说明白名单机制在理论上可行。

Part 04 总结 

本文从实际家庭网络环境出发,分析家庭宽带网络中设备的IPv6实际可用性和安全分析,并尝试了一种基于白名单的IPv6地址使用方式,能够保证地址在防火墙开启的前提下使用公网的访问能力,但从家庭网络全局角度来看,目前缺少整体的安全发现和分析的能力,特别是在IPv6开放的情况下,原有的安全分析设备的支持性和分析能力,需要适配提升。下一篇文章我们来谈一谈,如何提供一种针对家庭网络的安全监测能力。

来源:移动Labs内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯