Linux xfrm 框架详解

XFRM是Linux内核中的一个安全框架,它提供了一种基于策略的高扩展性网络安全性,同时保持了原有的网络协议结构。XFRM涉及数据接收和发送协议,包括AH/ESP等四层协议,以及策略引擎。它在数据发送和接收过程中进行转换,确保IPsec报文的安全传输。IPXFRM命令用于管理XFRM的状态和策略。此外,XFRM使用netns_xfrm结构组织安全关联和安全策略,允许不同网络命名空间的独立使用。
摘要由CSDN通过智能技术生成

Linux引入XFRM是在不打乱原有的网络协议结构和HOOK点安全架构设计前提下,成功引入了一种基于策略的高扩展性的网络安全架构。

有人会说在HOOK点也能实现IPSEC的问题,为何还要XFRM?!!好问题,但是不是一两句话能把你说明白,只有去设计一安全网络系统才能深深体会到好处。这里就不过多描述。

XFRM 框架数据接收协议(如AH/ESP,与TCP/UDP并列属于4层网络协议)

XFRM 框架数据发送协议(相当于虚拟网卡驱动)

XFRM 框架策略引擎(与策略路由整合再一起)

XFRM的正确读音是transform(转换), 这表示内核协议栈收到的IPsec报文需要经过转换才能还原为原始报文;同样地,要发送的原始报文也需要转换为IPsec报文才能发送出去。

    • 发送数据

skb_buff XFRM 框架策略引擎命中策略(skb_buff明文) -> XFRM 框架数据发送协议处理->再次回到OUT点处理(skb_buff已经加密)->其它网卡驱动发送出去

    • 接收数据

skb_buff PRE点(skb_buff加密)->路由查询 是本地数据 -> XFRM四层协议处理 ->再次回到PRE点处理(skb_buff已经解密)->根据路由转发/本地接收

    • 转发数据

在forward点策略查询,然后根据是否命中策略,决点在POST点后是否加密还是直接发送出去。

    • Ip XFRM命令

用来设置xfrm。xfrm(transform configuration)是一个IP框架,用来转换数据包的格式,也就是使用算法来加密数据包,该框架用作IPsec协议的一部分

  ip xfrm state flush - 刷新状态

  ip xfrm state add - 将新状态添加到xfrm中

  ip xfrm policy add - 将新策略添加到xfrm中

  ip xfrm policy flush - 刷新策略

    • XFRM实例

IPsec中有两个重要概念:安全关联(Security Association)和安全策略(Security Policy),这两类信息都需要存放在内核XFRM。XFRM使用netns_xfrm这个结构来组织这些信息,它也被称为xfrm instance(实例)。从它的名字也可以看出来,这个实例是与network namespace相关的,每个命名空间都有这样的一个实例,实例间彼此独立。所以同一台主机上的不同容器可以互不干扰地使用XFRM。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李小白20200202

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值