【网络安全实验】IPSec的配置与实现

IPSec的配置与实现

一、实验目的

掌握IPSec密钥协商过程。

二、 实验内容

  1. 在Windows中配置IPSec;

  2. 用Wireshark抓取建立IPSec的密钥协商过程,以及建立之后的加密通信数据包,并进行分析;

  3. 使用Cisco Packet Tracer配置 IPsec VPN

  4. 记录实验步骤,完成实验总结与分析。

  5. 参考文章链接:
    https://blog.csdn.net/weixin_42418315/article/details/131730646
    https://blog.csdn.net/zero_number/article/details/127440085
    https://blog.csdn.net/weixin_44517249/article/details/136366679
    https://blog.csdn.net/HinsCoder/article/details/133935709

三、实验环境

软件环境:

Windows Server2003、Wireshark抓包软件、Cisco Packet Tracer

硬件环境:

  • 两台Windows Server2003虚拟机(PC1的IP:192.168.127.101,PC2的IP:192.168.127.139)
  • 一台安装Cisco Packet Tracer的Win11/Win10物理机

环境配置或拓扑图:

  • 虚拟机网络配置为NAT模式,确保两台虚拟机在同一网段并且可以相互通信。
  • Cisco Packet Tracer仿真拓扑图如下:

四、 实验步骤

第一部分:在Windows Server2003上配置IP安全策略

步骤一:创建IP安全策略

  1. 在Windows Server2003虚拟机中按下windows+R组合键,输入secpol.msc进入"本地安全设置"
  1. 选择"安全设置"下的"IP安全策略,在本地计算机",右键,选择"创建IP安全策略"


  1. 点击"下一步",设置IP安全策略名称"新IP安全策略";"下一步",取消"激活默认响应规则",再进行点击"下一步"。


步骤二:编辑IP安全策略属性

  1. 勾选"编辑属性",再点击"完成",进入"新IP安全策略的属性"页面;点击"添加"来增加一条规则:


  1. 进入"安全规则向导",点击"下一步";选择"此规则不指定隧道","下一步"


  1. 选择网络类型为"所有网络连接",再"下一步";选择"添加"
  1. 在打开的"IP筛选列表"页面,填入名称"新IP筛选器列表";选择"添加","IP筛选器属性"页面默认,"下一步";去掉"使用添加向导"。最后点击"确定",再弹出的窗口选"是"。
  1. 此时可以看到"IP筛选器"框出现筛序;再"确定";回到安全规则向导界面,勾选刚才新建的筛选器"新IP筛选器列表"。
  1. 点击"下一步";在"筛选器操作"页面,点击"添加";在"筛选器操作名称"页面输入筛选器名称为"新筛选器操作",默认下一步:
  1. 选取"协商安全";下一步,选择不允许不安全的通信"不与不支持IPsec的计算机通信"。

  1. "下一步",选择完整性和加密;"下一步",取消"编辑属性",完成设置。


步骤三:设置安全规则

  1. 进入"安全规则向导",在"筛选器操作"页面选择刚刚创建的"新筛选器操作",然后"下一步";"身份验证方法"选择"使用字符串保护密钥交换(预共享密钥)",密码设置为12345678


  1. 取消"编辑属性",完成。此时可以看到"新IP安全策略属性"页面IP安全规则为刚刚设置的规则。

  1. 右键"新IP安全策略",选择"指派"
  1. 在PC2中进行和上述一样的操作。

第二部分:实现并分析IKE SA和IPSec SA 建立过程

步骤一:查看IP地址

  1. 查看PC1的IP地址:192.168.127.101
  1. 查看PC2的IP地址:192.168.127.139

步骤二:捕获数据包,分析IKE SA和IPSec SA 建立过程

  1. 在PC1上安装好32位的wireshark并开始捕获数据:
    32位wireshark下载地址
  1. 在PC1的命令行ping虚拟机PC2,可以看到可以ping通:
  1. 回到wireshark可以看到抓取到了通信数据包,分析IKE SA和IPSec SA 建立过程。

①查看第一条从192.168.127.139到地址192.168.127.254的ISAKMP报文数据,可以看到

  • Initiator cookie:发起者的cookie,告诉接收方本机将要使用哪个 IPsec密钥来加密
  • Responder cookie:应答者,第一个信息被发送时cookie为0
  • Next Payload:下一个载荷
  • Version:IKE版本为1
  • Exchange type:交换类型,表示消息和载荷遵循所用的交换顺序。这里IKE协商模式为Main Mode主模式。
  • Encrption-Alorithm使用的加密算法是3DES-CBC
  • Hash-Algorithm验证完整性哈希算法是SHA
  • Group-Description:
  • Authentication-Method:PSK认证方式是使用预共享密钥Pre-shared key(PSK)
  • Life-Type:Seconds和Life-Duration:28800密钥周期是28800秒

②继续往下查看ISAKMP数据包:可以看到发送者和响应者的cookie都不为0,交换类型已经变为快速模式,并显示了加密数据的相关信息,如封装方式、加密算法和生存时间等。

Commit显示接收方已经收到,至此发送者和接受者已确认,后面开始正式通信。

通过以上数据包可以猜测共享密钥已经被加密了

第三部分:使用Cisco Packet Tracer进行VPN的配置

IP地址规划

设备名称 接口 IP 子网掩码 所接设备及接口
Router0 F0/0 10.0.0.1 255.255.255.0 Router1,F0/0
Router0 F0/1 192.168.1.1 255.255.255.0 Switch0,F0/1
Router1 F0/0 10.0.0.2 255.255.255.0 Router0,F0/0
Router1 F0/1 192.168.2.1 255.255.255.0 Switch1,F0/1
PC0 F0 192.168.1.2 255.255.255.0 Switch0,F0/2
PC1 F0 192.168.1.3 255.255.255.0 Switch0,F0/4
PC2 F0 192.168.1.4 255.255.255.0 Switch0,F0/6
PC3 F0 192.168.2.2 255.255.255.0 Switch1,F0/2
PC4 F0 192.168.2.3 255.255.255.0 Switch1,F0/4
PC5 F0 192.168.2.4 255.255.255.0 Switch1,F0/6

步骤一:配置路由器

  1. 安装Cisco Packet Tracer,初始化配置路由器:在模拟器窗口工具栏下选择file->new。在左下角设备栏选取路由器图标,将2811路由器拖入工作区。然后选择Connections图标,选择虚线,依次点击router0和router1,选择各种的f0/0接口进行连接。
  1. 单机工作区中的路由器图标,选择CLI项,等待路由器启动后,在交互对话框中输入no并回车。

  2. 进入路由器特权模式,配置路由器网卡IP,下面是Router0和Router1的配置信息:

设备名称 接口 IP 子网掩码
Router0 F0/0 10.0.0.1 255.255.255.0
Router0 F0/1 192.168.1.1 255.255.255.0
Router1 F0/0 10.0.0.2 255.255.255.0
Router1 F0/1 192.168.2.1 255.255.255.0

初始配置router0的配置命令如下:

bash 复制代码
Router>enable //进入特权模式
Router#config terminal //进入全局配置状态
Router(config)#interface f0/0
Router(config-if)#ip add 10.0.0.1 255.255.255.0 //配置f0/0接口的IP和子网掩码,该网卡连接公网
Router(config-if)#no shutdown //启动接口
Router(config-if)#end
Router#conf t
Router(config)#int f0/1
Router(config-if)#ip add 192.168.1.1 255.255.255.0 //配置f0/1的IP和子网掩码
Router(config-if)#no shutdown //启动接口
Router(config-if)#end

同理,完成Router1的配置。

  1. 配置完成,使用show ip interface brief查看Router0的接口配置情况:

Router1的配置如下:

步骤二:添加网络设置并配置网络环境

  1. 选取两台Switches中的2950-24交换机,添加到拓扑图中。再选择End Devies中的PC-PT图标拖到工作区,添加6台PC机。最后在Connections中选择黑直线Straight-Through将路由器与交换机相连,将交换机与PC机相连。
  2. 配置PC机的IP、子网掩码和默认网关如下:
设备名称 IP 子网掩码 默认网关 所接设备及接口
PC0 192.168.1.2 255.255.255.0 192.168.1.1 Switch0,F0/2
PC1 192.168.1.3 255.255.255.0 192.168.1.1 Switch0,F0/4
PC2 192.168.1.4 255.255.255.0 192.168.1.1 Switch0,F0/6
PC3 192.168.2.2 255.255.255.0 192.168.2.1 Switch1,F0/2
PC4 192.168.2.3 255.255.255.0 192.168.2.1 Switch1,F0/4
PC5 192.168.2.4 255.255.255.0 192.168.2.1 Switch1,F0/6

双击PC图标,选择Desktop,选择IP Configuration,配置PC的IP地址和子网掩码。示例如下:


步骤三:配置路由

  1. 在路由中配置路由器:
    为了使路由器两端网络互通,在Router0和Router1中配置路由信息:
    配置路由器Router0的配置代码如下:
bash 复制代码
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip route 0.0.0.0 0.0.0.0 f0/0
Router(config)#ip route 192.168.1.0 255.255.255.0 f0/1
Router(config)#end

配置路由器Router1的配置代码如下:

bash 复制代码
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip route 0.0.0.0 0.0.0.0 f0/0
Router(config)#ip route 192.168.2.0 0255.255.255.0 f0/1
Router(config)#end
  1. 测试网络连通性:

双击PC0(IP:192.168.1.2)图标,弹出对话框,选择Desktop,选择Command Prompt,进行ping 192.168.2.3测试是否连通,可以看到能够连通。

步骤四:配置IPSec VPN

  1. 配置Router0:

定义IKE策略,就是router 0和router1之间的密钥交换策略。 IKE是密钥的交换策略,我们在使用对称加密和非对称加密算法的时候,需要密钥来对数据加密,上面的IKE策略只是建立一条管理连接,负责加密生成的各种密钥。之后,定义数据的加密方式和认证方式,配置IPSec。然后,将map映射到公网端口f0/0,一个端口只能映射一个map。

配置代码如下:

bash 复制代码
//配置 IKE(ISAKMP)策略
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
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
Router(config-isakmp)#group 2					//设置Diffie-Hellman(DH)组为2,组2对应于1024位密钥长度的DH组
Router(config-isakmp)#lifetime 86400				//生存时间设置为86400
Router(config-isakmp)#exit

Router(config)# crypto isakmp key LLrbr address 10.0.0.2
//设置要使用的预共享秘钥LLrber 和指定VPN对端路由器的IP地址10.0.0.2。
Router(config)#access-list 110 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255	
//用扩展acl 110来定义通过 VPN 传输的流量,允许从192.168.1.0/24网络到192.168.2.0/24网络的IP流量。
Router(config)#crypto ipsec transform-set mine esp-des esp-md5-hmac	
//定义IPSec变换集transform set命名为mine,加密算法为esp-des, HMAC 算法为esp-MD5-HMAC
Router(config)#crypto map mymap 202 ipsec-isakmp	//创建一个名为mymap的crypto map,序列号为202,使用ISAKMP进行IKE协商
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.			
Router(config-crypto-map)#match address 110		//使用之前创建的访问控制列表110来匹配需要通过VPN传输的流量。
Router(config-crypto-map)#set peer 10.0.0.2			//指定VPN对端路由器的IP地址为10.0.0.2
Router(config-crypto-map)#set pfs group2			//启用完美前向保密(PFS),并指定使用Diffie-Hellman组2。
Router(config-crypto-map)#set transform-set mine	//指定使用之前定义的变换集mine
Router(config-crypto-map)#set security-association lifetime seconds 86400
//设置安全关联(SA)的生命周期为86400秒(即一天)
Router(config-crypto-map)#exit
Router(config)#int f0/0
Router(config-if)#crypto map mymap	//使用名为"mymap"的加密映射
*Jan 3 07:16:26.785: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON   
//表明ISAKMP已经被启用。
Router(config-if)#end	
  1. 验证配置成功:

① 使用show crypto isakmp policy查看IKE策略:

可以看到IKE策略的优先级为10,加密算法为DES,用于完整性检查的哈希算法为MD5,认证方法为预共享密钥,DH为2(1024bit),存活时间为86400s

② 使用show crypto ipsec transform-set查看IPSec变换集:

可以看到IPSec变换集transform set为mine,加密算法为esp-des, HMAC 算法为esp-MD5-HMAC

③ 使用show crypto map 查看crypto maps:

可以看到名为mymap的crypto map,序列号为202,使用ISAKMP进行IKE协商;访问控列表110允许从192.168.1.0/24网络到192.168.2.0/24网络的IP流量。

  1. 配置Router1
    配置代码如下:
bash 复制代码
//配置 IKE(ISAKMP)策略
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
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
Router(config-isakmp)#group 2					//设置Diffie-Hellman(DH)组为2,组2对应于1024位密钥长度的DH组
Router(config-isakmp)#lifetime 86400				//生存时间设置为86400
Router(config-isakmp)#exit

Router(config)# crypto isakmp key LLrbr address 10.0.0.1
//设置要使用的预共享秘钥LLrbr 和指定VPN对端路由器的IP地址10.0.0.1。
Router(config)#access-list 110 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255	
//用扩展acl 110来定义通过 VPN 传输的流量,允许从192.168.2.0/24网络到192.168.1.0/24网络的IP流量。
Router(config)#crypto ipsec transform-set mine esp-des esp-md5-hmac	
//定义IPSec变换集transform set命名为mine,加密算法为esp-des, HMAC 算法为esp-MD5-HMAC
Router(config)#crypto map mymap 101 ipsec-isakmp	//创建一个名为mymap的crypto map,序列号为101,使用ISAKMP进行IKE协商
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.			
Router(config-crypto-map)#match address 110		//使用之前创建的访问控制列表110来匹配需要通过VPN传输的流量。
Router(config-crypto-map)#set peer 10.0.0.1			//指定VPN对端路由器的IP地址为10.0.0.1
Router(config-crypto-map)#set pfs group2			//启用完美前向保密(PFS),并指定使用Diffie-Hellman组2。
Router(config-crypto-map)#set transform-set mine	//指定使用之前定义的变换集mine
Router(config-crypto-map)#set security-association lifetime seconds 86400
//设置安全关联(SA)的生命周期为86400秒(即一天)
Router(config-crypto-map)#exit
Router(config)#int f0/0
Router(config-if)#crypto map mymap	//使用名为"mymap"的加密映射
*Jan 3 07:16:26.785: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON   
//表明ISAKMP已经被启用。
Router(config-if)#end	

步骤五:测试IPSec VPN

  1. 使用ping测试连通性:

    双击PC0(IP:192.168.1.2)图标,在弹出的对话框中,选择Desktop,选择Command Prompt,ping 192.168.2.2(PC3),如下图:

  2. 验证数据经过IPSec VPN加密传输

    进入simulation mode,切换到相应界面:

使用PC0(IP:192.168.1.2)的命令行,再次ping 192.168.2.2(PC3),然后在simulation Panel的Play Control区域中选择Play开始,观察工作区动画:

可以在拓扑图看到4个ICMP数据包从PC0------Switch0------Router0------Router1------Switch------PC3,PC3------Swit1------Router1------Router0------Switch0------PC0

同时每完成一个数据包的发送和返回,命令行返回一条数据。

Simulation Pamel可以看到发送和返回数据的全部过程,ICMP协议类型即为刚刚ping命令发送和返回的ICMP数据包:

点击目的为路由器router 0处数据包,弹出面板可以分析出数据包的信息:

从图中可以看到,进入路由器Router0的数据包(左侧)的信息源IP为192.168.1.2(PC0),目的IP为192.168.2.2(PC3),但是路由器出去的数据包的源IP转为了10.0.0.1(Router0),目的IP为10.0.0.2(Router1)。

另外可以在Out Layer第三层网络层下面的第6条信息中,可以看到ESP的encrypts the received packet包。由此可以看出,从PC0发往PC3的数据包经过路由器的IPSec VPN模块加密处理,隐藏了内网的IP地址信息,从而保护了内网的数据。

  1. 断开VPN
    断开VPN,配置router0和router1的指令。需要注意的是,只断开一端路由器的端口map映射,两边无法连通;两端都断开后,两边网络可以再次保持连接,只是数据不再加密传输。
    配置代码如下:
bash 复制代码
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int f0/0
Router(config-if)#no crypto map mymap
%CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF

断开一个端口,再次ping 192.168.2.2在EVENT LIST查看Router0的PDU,可以看到数据没有加密,IP地址没有隐藏。经过Router0的数据包源IP为192.168.1.1,目的IP为192.168.2.2

断开一端无法ping通。两个端口都关闭isakmp时,可以正常通信,但是数据没有进行加密传输。

相关推荐
老蒋新思维4 小时前
创客匠人峰会新解:高势能 IP 打造 ——AI 时代知识变现的十倍增长密码
大数据·网络·人工智能·tcp/ip·创始人ip·创客匠人·知识变现
Wnq100725 小时前
当无人机 “飞” 入生活,安全隐患如何破解?
嵌入式硬件·物联网·网络安全·信息与通信·信号处理
是喵斯特ya5 小时前
常用的webshell工具流量分析
安全·web安全
代码游侠5 小时前
应用——Linux进程编程实例分析
linux·运维·网络·笔记·学习·算法
pandarking5 小时前
[CTF]攻防世界:web-unfinish(sql二次注入)
前端·数据库·sql·web安全·ctf
豫狮恒5 小时前
OpenHarmony Flutter 分布式数据持久化:跨设备数据一致性与同步方案
分布式·安全·flutter·wpf·openharmony
极地星光5 小时前
Asio网络编程入门:从零构建同步客户端与服务器
服务器·网络
m0_689618285 小时前
这款微光学天线让机器人拥有“超灵敏多感官”,重量仅0.1克
网络·笔记·学习
itas1095 小时前
windows共享网络给网线直连的linux上网
linux·网络·windows·共享网卡·无网主机上网