Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

IPSec VPN是目前应用最广泛、最安全的VPN,从个人手机到平板电脑再到路由器、企业的防火墙都能轻松的创建IPSec VPN,保护使用者的数据安全防止数据被劫持,嗅探,因此掌握IPSec VPN原理以及常见问题排查对于运维及开发人员来说都至关重要。本期华云数据“智汇华云”专栏将为您奉上IPSec VPN原理介绍与实现。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IPSec全称是Internet Protocol Security,是由(Internet Engineering Task Force)制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合,主要包括:DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1.IKE(Internet Key Exchange 因特网密钥交换协议)DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

2.ESP(encapsulating security payload 封装安全载荷)DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

3.Ah(Authentication header 认证头协议,无法经过NAT,基本不使用)DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IKE因特网密钥交换DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IKE协议有v1版本和v2版本,目前我们主要使用v1版本,v1版本是基于UDP500 和4500(NAT使用)端口号的应用层协议。IKE协议的主要作用是交换IPSec对等体两端的SA(Security Association),SA一般包括:DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1.使用哪种协议(Ah、ESP还是两者结合使用)DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

2.协议的封装模式(传输模式和隧道模式)DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

3.认证算法(MD5、ShA-1)DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4.加密算法(DES、3DES和AES128、aes256)对称加密,用于加密数据DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

5.pfsgroup(diffie-hellman group)modp1024,modp1536,modp2048非对称加密,用于安全交换密钥DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

6.特定流中保护数据的共享密钥以及密钥的生存周期等DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IKEv1版本的协商过程分为两个阶段。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

第一阶段叫做IKE(ISAKMP) SA,协商出来的SA给第二阶段使用,这一阶段又有两种协商模式,使用中一般使用主模式,比较安全DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

main mode,安全,但是要6个数据包DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

aggressive(野蛮模式),只需要4个数据包,由于不安全容易被暴力破戒,一般不使用DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

第二阶段叫做IPSec SA,协商出来的SA给用户数据流加密使用DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

封装协议(安全协议)DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IPSec的封装协议有两种:DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1.Ah(Authentication header) 认证头协议,协议号为51。工作原理是在每一个数据包的标准IP报头后面添加一个Ah报文头,基本不使用。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

2.ESP(encapsulating security payload) 封装安全载荷,协议号为50。工作原理是在每一个数据包的标准IP报头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾(ESP Tail和ESP Auth data)。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

*与Ah不同的是,ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

封装模式DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IPSec的封装模式也有两种,实际使用的时候双方协商出封装协议和封装模式,一并使用:DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1.传输模式(host-to-host transport mode),在传输模式中,Ah头或ESP头被插入到IP头与传输层协议头之间,保护TCP/UDP/ICMP负载。传输模式不改变报文头,基本不使用。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

2.隧道模式(tunneling mode ),隧道模式下,Ah协议的完整性验证范围为包括新增IP头在内的整个IP报文。ESP协议验证报文的完整性检查部分包括ESP头、原IP头、传输层协议头、数据和ESP报尾,但不包括新IP头,因此ESP协议无法保证新IP头的安全。ESP的加密部分包括原IP头、传输层协议头、数据和ESP报尾。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IPSec实现-控制面DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

上面讲的都是IPSec协议上的定义和规范,具体到IPSec在linux系统的实现上主要有各种swan(openswan,strongswan,libreswan),这些应用程序负责协商双方的加密算法,加密方式,隧道模式,路由策略。并通过linux的xfrm内核接口调用下发到数据面中。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IPSec实现-数据面DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

IPSec在Linux上有两种数据面,目前一般使用第二种Linux内核的XFRM框架,除非是很老的机器没有这个的时候会用第一种:DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1.KLIPS ,很古老,2.6版本以前的Linux版本使用。通过创建出虚拟IPSec接口,路由IPSec数据包,可以很方便添加firewall规则。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

2.Linux内核XFRM/NETKEY(ipsec transform),执行具体的转发策略和封包解包,如果有offload还要执行offload提升速度。新版本内核也支持创建出虚拟IPSec接口,方便添加firewall规则。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

控制面-LibreswanDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

这里我们主要讲一下libreswan,libreswan是目前使用较多的IPSec控制面实现,平常使用中需要掌握libreswan中的pluto和whack命令DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1.pluto 命令是IPsec IKE keying守护进程,负责自动化ipsec之间的SA协商。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

启动pluto守护进程命令:ipsec plutoDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

2.whack命令是用户和pluto守护进程进行交互使用的命令DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

# 添加一条ipsec连接(vpn1的具体配置写在文件中)DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ipsec whack addconn vpn1 --config ipsec.configDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

# 允许pluto守护进程开始监听DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ipsec whack --listenDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

# 初始化ipsec连接DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ipsec whack --initiate --name vpn1DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

数据面-XFRMDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

Linux内核通过XFRM框架来支持IPSec的数据面实现,xfrm框架支持Linux的网络namespace。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

xfrm使用两个数据库记录ipsec的数据面信息。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1.xfrm策略,存储在内核的SPD(security policy database)中。告诉ipsec哪些流量需要进行ipsec处理。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

2.xfrm状态,存储在内核的SADB(security association database)中。表示单向流量,包含加密密钥,标志,请求ID,统计信息等信息。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

手动创建ipsec隧道DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm命令可以手动创建两台之间使用ipsec隧道通信,跳过libreswan的控制面SA协商DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

192.168.0.6 <=======> 192.168.0.28,脚本如下:DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

A=192.168.0.6DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

B=192.168.0.28DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm state add src $A dst $B proto esp spi 0x00000301 mode tunnel auth md5 0x96358c90783bbfa3d7b196ceabe0536bDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

enc des3_ede 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965dfDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm state add src $B dst $A proto esp spi 0x00000302 mode tunnel auth md5 0x99358c90783bbfa3d7b196ceabe0536bDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

enc des3_ede 0xffddb555acfd9d77b03ea3843f2653255afe8eb5573965dfDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm policy add src $A dst $B dir out ptype main tmpl src $A dst $B proto esp mode tunnelDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm policy add src $B dst $A dir in ptype main tmpl src $B dst $A proto esp mode tunnelDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm state add src $A dst $B proto esp spi 0x00000301 mode tunnel auth md5 0x96358c90783bbfa3d7b196ceabe0536bDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

enc des3_ede 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965dfDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm state add src $B dst $A proto esp spi 0x00000302 mode tunnel auth md5 0x99358c90783bbfa3d7b196ceabe0536bDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

enc des3_ede 0xffddb555acfd9d77b03ea3843f2653255afe8eb5573965dfDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm policy add src $A dst $B dir in ptype main tmpl src $A dst $B proto esp mode tunnelDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ip xfrm policy add src $B dst $A dir out ptype main tmpl src $B dst $A proto esp mode tunnelDSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

tcpdump 抓包DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

抓包看两台机器之间的ping包,可以发现ping包已经被加密为ESP报文。DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

DSPAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

分享到:

  admin

注册时间:

网站:0 个   APP:3 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市