实验内容
- 在
Windows IPSEC
配置实验中,通过抓包工具抓取IKE SA
和IPSEC SA
建立过程的数据包,并进行分析。 - 思考:IKE密钥协商过程是否存在安全威胁。
PacketTracer
里VPN配置实验
Windows IPSEC配置
配置环境:
windows xp
&windows 10
打开
Windows xp
虚拟机,通过secpol.msc
打开本地安全设置。在IP安全策略下右键,创建安全策略
设置配置名称为
Levi
(个人随意)激活默认响应规则
身份认证方法采用
此字符串用来保护密钥交换
,输入123456
(可以换成其他内容)回到原来窗口,鼠标右键,指派
鼠标右键,属性,添加规则并进行相应的配置
选择此规则不指定隧道
选择所有网络连接
身份验证方法采用
此字符串用来保护密钥交换
,输入字符串:abcdef
(可换成其它内容)IP筛选列表选择
所有IP通讯量
筛选器操作选择
需要安全
点击下一步完成
至此,
Windows xp
下的IPSEC
配置完成,操作过程中没有报错。以同样的方式配置
windows 10
下的IPSEC
,这里与windows xp
配置大致相同,截图只用于说明不同点。通过secpol.msc
打开windows 10
本地安全设置在IP安全策略下右键,创建安全策略
设置配置名称为
Levis
(个人随意),由于激活默认响应规则仅限于windows早期版本,故不选择激活默认响应规则,过程中,没有身份认证选择点击默认设置,一直到属性窗口,添加规则:选择此规则不指定隧道、选择所有网络连接、在IP筛选列表中点击添加,名称为
新IP筛选列表
,并点击添加,之后选择默认操作选择刚刚建立的IP筛选列表,点击下一步
选择
添加IP筛选器
操作, 选择协商安全
,继续默认操作选择刚刚建立的新筛选器操作,点击下一步
身份验证方法采用
此字符串用来保护密钥交换
,输入字符串:abcdef
(与上面的相同)单击下一步,选择默认操作直至筛选器配置完成
回到原来窗口,鼠标右键,分配,至此,
Windows 10
下的IPSEC
配置完成,操作过程中没有报错
开始通信
查看
win xp
和win 10
的IP地址分别为192.168.88.150
和192.168.88.1
关闭
win 10
的IPSEC服务
使用
win 10
ping
win xp
,请求超时,ping
不通对通信过程进行抓包,可以看到
win 10
一直请求IPsec SA
但总不成功重新开启
win 10
的IPSEC服务
使用
win 10
重新ping
win xp
,发现成功ping
通对通信过程进行抓包,由于此时
win xp
和win10
都采用的是默认的esp加密
,所以抓包显示的是esp包
Win 10
和win xp
都设置仅AH通信
,不经过ESP加密
继续使用
win 10
ping
win xp
对通信过程进行抓包,发现没有
ESP加密
后数据包格式为ICMP
,数据为abcdef
Win 10
和win xp
都设置仅esp认证
继续使用
win 10
ping
win xp
,并对通信过程进行抓包,数据没有通过esp加密
分析
IKE SA
和IPSEC SA
建立过程要建立
IPSec连接
,首先要协商一个IKE SA
,然后在IKE SA
的基础上协商IPSec SA
IKE SA建立分为三个阶段
SA交换
,协商确认有关安全策略。该过程进行安全协商密钥交换阶段,主要交换密钥
Diffie-Hellman公共值
。数据包中的Key Exchange
用于交换各自加密生成的主密钥
;Nonce
使用了随机数,防止重放攻击;加密所用的密钥为ipsec
中设定的预共享密钥
;NAT-D
为双方的ip+端口的Hash值。ID信息和认证数据交换,进行身份认证,对第一阶段交换内容的认证。
IPSec SA
建立分为两个阶段,都是加密数据,无法查看。用到了Quick-Mode
,目的是在两个对等体间协商一组一致的参数来创建IPSec SA
,用于真实数据的加解密,并且在此进行PFS
,PFS
及在Quick-Mode
重新做DH
的交换,产生新的密钥用于IPSec
数据的加密。
思考
Q:IKE密钥协商过程是否存在安全威胁?
A:IPSec密钥交换过程
分为两个独立阶段。第一阶段通信双方彼此建立一个通过身份认证和安全保护的隧道,称为ISAKMP SA
。只要ISAKMP SA
建立起来,所有发起方和应答方之间的IKE
通信信息都通过加密、完整性检查和认证的方法受到保护。第二阶段的建立是为特定的Internet
安全协议(如IPSec
等)创建安全关联(IPSec SA
)。IKE第一阶段的目的是建立一个安全隧道
,使得第二阶段的协商可以秘密地进行。两台主机之间可以同时建立多个ISAKMP SA
,一个ISAKMP SA
也可以创建多个IPSec SA
,ISAKMP SA
的结束不会影响它创建的IPSec SA
发生作用。这种密钥协商过程是存在着漏洞的,可以通过中间人攻击和拒绝服务攻击实现漏洞利用。
PacketTracer VPN配置
实验环境
- 系统:
Windows xp
- 软件工具:思科官方模拟器
Packet Tracer 5.3
- 模拟实体:2台
cisco2800
系列路由器、2台24端口以太网交换机和若干PC电脑
安装Packet Tracer 5.3
配置安全策略
新建一条安全策略PacketTracer
,添加IP安全规则,隧道方式为不指定隧道
,网络类型选择所有网络连接
,身份验证方法选择用字符串保护密钥交换
,输入:123
;进入IP筛选器列表的配置项,设置一个新的IP筛选器列表,新建一个IP筛选器,将我的IP地址
作为源地址,将任何IP地址
作为目标地址,在选择协议类型
中选中任意
,新建一个筛选操作,设置为协商安全
,选中不和不支持IPSec的计算机通讯
,以要求必须在IPSec
基础上进行连接,IP通讯安全设施
中选择选择自定义
,然后点击设置
选择如下图,选择默认直至配置完成
初始化配置路由器
打开
cisco模拟器
,在模拟器窗口工具栏下选择file--new
。在左下角设备栏选取路由器图标将cisco2811路由器
拖到工作区域,单击工作区域的路由器图标,选择CLI项
,弹出如图所示界面输入no,回车两次
进入路由器特权模式配置路由器网卡IP,输入命令如下
1
2
3
4
5
6
7
8
9
10
11Router>enable //进入特权模式,只有在特权模式下才可以对路由器进行配置
Router#configure terminal //进入配置状态,通过端口进行配置
Router(config)# interface fastEthernet 0/0 //进入端口f0/0
Router(config-if)#ip address 10.0.0.1 255.255.255.0 #配置网卡f0/0的ip地址和子网掩码
Router(config-if)#no shutdown //开启端口f0/0
Router(config-if)#end //返回特权模式
Router#configure terminal //进入配置状态,通过端口进行配置
Router(config)# interface fastEthernet 0/1 //进入端口f0/1
Router(config-if)#ip address 192.168.1.1 255.255.255.0 //配置网卡f0/1的ip地址和子网掩码
Router(config-if)#no shutdown //开启端口f0/1
Router(config-if)#end //返回特权模式初始配置
router 0
完成,根据router 0
的配置过程完成router 1
的配置,其中router 1
的f0/0
端口IP为10.0.0.2/24
,router 1
的f0/1
端口的IP地址为192.168.2.1/24
配置完成后,点击选择将
router 0
和router 1
的f0/0
端口连接
搭建网络环境
在模拟器左下角选择选取拖到绘图工作区,双击
PC图标
,选择Desktop
,如图所示选择
IP Configuration
,配置PC的IP地址和子网掩码,如图所示重复上述操作,配置六台PC,它们的IP地址分别为
192.168.1.10
192.168.1.20
192.168.1.30
192.168.2.10
192.168.2.20
192.168.2.30
子网掩码全为
255.255.255.0
,前三台网关为192.168.1.1
,后三台网关为192.168.2.1
选取交换机拖至工作区,在中选取将路由器于交换机相连,将交换机于PC相连;最终完成如图所示的网络图
配置路由
在路由器中配置路由,使路由器两端的网络互通
配置
router 0
,双击router 0
图标,选择CLI项
,进入路由器配置窗口,输入命令如下1
2
3
4
5Router>en
Router#configure terminal
Router(config)# ip route 0.0.0.0 0.0.0.0 fastEthernet 0/0 //配置内网访问外部网络的出口路由
Router(config)#ip route 192.168.1.0 255.255.255.0 fastEthernet 0/1 //配置外部访问内部网络入口路由
Router(config)#end配置
router 1
,双击router 1
图标,选择CLI项
,进入路由器配置窗口,输入命令如下1
2
3
4
5Router>en
Router#configure terminal
Router(config)# ip route 0.0.0.0 0.0.0.0 fastEthernet 0/0 //配置内网访问外部网络的出口路由
Router(config)#ip route 192.168.2.0 255.255.255.0 fastEthernet 0/1 //配置外部访问内部网络入口路由
Router(config)#end
测试网络的互通性
双击
PC0图标
,在弹出的对话框中,选择Desktop
,选择Command Prompt
使用
ping
命令,ping
192.168.1.1
、10.0.0.1
、192.168.2.10
、10.0.0.2
、192.168.3.10
结果除了最后一个地址(该地址不存在)其它全能ping
通,表明搭建的网络满足实验环境
配置IPSec VPN
配置
router 0
,双击router 0
图标,选择CLI项
,进入路由器配置窗口定义
IKE
的策略(router 0
和router1
之间的密钥交换策略),IKE
只是密钥的交换策略,在使用加密对称和非对称加密算法的时候,需要密钥来对数据加密,下面的IKE策略只是建立一条管理连接,负责加密生成的各种密钥,输入命令如下1
2
3
4
5
6
7
8
9Router#configure terminal //进入配置状态,通过端口进行配置
Router (config)#crypto isakmp policy 10 //一个IKE的策略,号码是10,数字越低,策略优先级越高
Router (config-isakmp)# authentication pre-share //使用预定义共享密钥进行设备认证
Router (config-isakmp)#hash md5 //认证方式使用MD5进行认证
Router (config-isakmp)#encryption des //加密方式使用DES,可选AES/DES
Router (config-isakmp)#group 2 //指定DH组
Router (config-isakmp)# lifetime 86400 //对生成新SA的周期进行调整,两端的路由器都要设置相同的SA周期
Router (config-isakmp)# exit
Router (config)#crypto isakmp key leeyuxun address 10.0.0.2 //定义一个密码,密码是leeyuxun,和地址为10.0.0.2的设备去交换密钥定义数据的
加密方式
和认证方式
,配置IPSec
,输入命令如下1
2
3
4
5
6
7
8Router (config)#access-list 110 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 //定义访问控制列表,这里的访问控制列表不是对数据进行过滤,是定义那些数据应该被加密,也可以理解哪些数据触发IPSec 流
Router (config)#crypto ipsec transform-set mine esp-des esp-md5-hmac //设置数据的加密方式,策略名字为mine,使用ESP-DES对数据加密,ESP-MD5-HMAC对数据认证
Router(config)# crypto map mymap 101 ipsec-isakmp //定义一个map,调用刚才做的策略
Router(config-crypto-map)# match address 110 //匹配出访问控制列表110的数据
Router(config-crypto-map)# set peer 10.0.0.2 //标识对端路由器的合法IP地址
Router(config-crypto-map)# set pfs group2
Router(config-crypto-map)# set transform-set mine //使用刚才定义好的策略对数据加密
Router(config-crypto-map)# set security-association lifetime seconds 86400 //指定IPSec SA的存活期将
map
映射到公网端口
,一个端口只能映射一个map
,输入命令如下1
2
3
4Router(config)interface fastEthernet 0/0
Router(config-if)#crypto map mymap
*Jan 3 07:16:26.785: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
Router(config-if)end查看策略
查看
IKE策略
1
Router# show crypto ipsec transform-set
查看
IPSec变换集
1
Router# show crypto ipsec transform-set
查看
crypto maps
1
Router# show crypto map
配置
router 1
,双击router 1
图标,选择CLI项
,进入路由器配置窗口定义
IKE
的策略,与配置route 0
相同定义数据的加密方式和认证方式,配置
IPSec
,与配置route 0
相同将
map
映射到公网端口
,与配置route 0
相同
测试IPSec VPN
测试
VPN连通性
双击
PC0
图标,在弹出的对话框中,选择Desktop
,选择Command Prompt
,ping 192.168.2.10
,如下图所示验证数据经过
IPSec VPN
加密传输
,点击进入simulation mode
,弹出如图所示对话框重复上一步操作,
simulation Panel
中选取Auto Capture
,观察工作区动画,展示了数据包在网络中的传送过程双击路由器
router 0
处数据包,弹出如图所示弹框,可以分析出数据包的信息- 进入路由器的数据包(左侧)的信息源IP是
192.168.1.10
,目的IP是192.168.2.10
- 路由器出去的数据包(右侧)的源IP改变为
10.0.0.1
,目的IP变为10.0.0.2
- 从上图的第六条信息中发现
ESP encrypts the received packet
的信息 - 综上,从
PC0
(192.168.1.10
)发往对端PC3
(192.168.2.10
)的数据经过了路由器的IPSec VPN
模块加密处理,隐藏了内网的IP地址信息,从而保护了内网的数据
- 进入路由器的数据包(左侧)的信息源IP是
断开
VPN
断开
router 0
1
2
3Router(config)#interface fastEthernet 0/0
Router(config-if)#no crypto map mymap
Router(config-if)end双击
PC0
图标,在弹出的对话框中,选择Desktop
,选择Command Prompt
,ping 192.168.2.10
,ping
不通,表明只断开一端路由器的端口map映射
,两边无法连通以同样的方式断开route 1
1
2
3Router(config)#interface fastEthernet 0/0
Router(config-if)#no crypto map mymap
Router(config-if)end双击
PC0
图标,在弹出的对话框中,选择Desktop
,选择Command Prompt
,ping 192.168.2.10
,ping
成功,表明两端都断开后,两边网络可以再次保持连接抓取经过
route 0
的数据包,发现数据不再加密传输。