VPN配置实验

实验内容

  1. Windows IPSEC配置实验中,通过抓包工具抓取IKE SAIPSEC SA建立过程的数据包,并进行分析。
  2. 思考:IKE密钥协商过程是否存在安全威胁。
  3. PacketTracer里VPN配置实验

Windows IPSEC配置

  1. 配置环境:windows xp & windows 10

  2. 打开Windows xp虚拟机,通过secpol.msc打开本地安全设置。

    1565750367517

  3. 在IP安全策略下右键,创建安全策略

    1565750386129

  4. 设置配置名称为Levi(个人随意)

    1565750413150

    激活默认响应规则

    1565750451406

    身份认证方法采用此字符串用来保护密钥交换,输入123456(可以换成其他内容)

    1565750472492

  5. 回到原来窗口,鼠标右键,指派

    1565750521942

  6. 鼠标右键,属性,添加规则并进行相应的配置

    1565750573154

    选择此规则不指定隧道

    1565750733585

    选择所有网络连接

    1565750738506

    身份验证方法采用此字符串用来保护密钥交换,输入字符串:abcdef(可换成其它内容)

    1565750726353

    IP筛选列表选择所有IP通讯量

    1565750719310

    筛选器操作选择需要安全

    1565750713094

    点击下一步完成

    1565750707568

  7. 至此,Windows xp下的IPSEC配置完成,操作过程中没有报错。

  8. 以同样的方式配置windows 10下的IPSEC,这里与windows xp配置大致相同,截图只用于说明不同点。通过secpol.msc打开windows 10本地安全设置

  9. 在IP安全策略下右键,创建安全策略

  10. 设置配置名称为Levis(个人随意),由于激活默认响应规则仅限于windows早期版本,故不选择激活默认响应规则,过程中,没有身份认证选择

    1565750867578

  11. 点击默认设置,一直到属性窗口,添加规则:选择此规则不指定隧道、选择所有网络连接、在IP筛选列表中点击添加,名称为新IP筛选列表,并点击添加,之后选择默认操作

    1565750894238

  12. 选择刚刚建立的IP筛选列表,点击下一步

    1565750912175

    选择添加IP筛选器操作, 选择协商安全,继续默认操作

    1565750927973

  13. 选择刚刚建立的新筛选器操作,点击下一步

    1565751013806

    身份验证方法采用此字符串用来保护密钥交换,输入字符串:abcdef(与上面的相同)

    1565751045367

    单击下一步,选择默认操作直至筛选器配置完成

    1565751059737

  14. 回到原来窗口,鼠标右键,分配,至此,Windows 10下的IPSEC配置完成,操作过程中没有报错

    1565751094123

开始通信

  1. 查看win xpwin 10的IP地址分别为192.168.88.150192.168.88.1

    1565751203055

    1565751209608

  2. 关闭win 10IPSEC服务

    1565751231217

  3. 使用win 10 ping win xp,请求超时,ping不通

    1565751256734

  4. 对通信过程进行抓包,可以看到win 10一直请求IPsec SA但总不成功

    1565751296152

    1565751303769

  5. 重新开启win 10IPSEC服务

    1565751347220

  6. 使用win 10重新ping win xp,发现成功ping

    1565751382839

  7. 对通信过程进行抓包,由于此时win xpwin10都采用的是默认的esp加密,所以抓包显示的是esp包

    1565751410628

  8. Win 10win xp都设置仅AH通信,不经过ESP加密

    1565751464369

    1565751469876

  9. 继续使用win 10 ping win xp

    1565751524436

  10. 对通信过程进行抓包,发现没有ESP加密后数据包格式为ICMP,数据为abcdef

    1565751552052

  11. Win 10win xp都设置仅esp认证

    1565751600836

    1565751605269

  12. 继续使用win 10 ping win xp,并对通信过程进行抓包,数据没有通过esp加密

    1565751650128

    1565751654675

  13. 分析IKE SAIPSEC SA建立过程

    要建立IPSec连接,首先要协商一个IKE SA,然后在IKE SA的基础上协商IPSec SA

    1. IKE SA建立分为三个阶段

      1565751806471

      1. SA交换,协商确认有关安全策略。该过程进行安全协商

        1565751818033

        1565751825295

      2. 密钥交换阶段,主要交换密钥Diffie-Hellman公共值。数据包中的Key Exchange用于交换各自加密生成的主密钥Nonce使用了随机数,防止重放攻击;加密所用的密钥为ipsec中设定的预共享密钥NAT-D为双方的ip+端口的Hash值。

        1565751889825

        1565751893903

      3. ID信息和认证数据交换,进行身份认证,对第一阶段交换内容的认证。

        1565751913263

        1565751919016

    2. IPSec SA建立分为两个阶段,都是加密数据,无法查看。用到了Quick-Mode,目的是在两个对等体间协商一组一致的参数来创建IPSec SA,用于真实数据的加解密,并且在此进行PFSPFS及在Quick-Mode重新做DH的交换,产生新的密钥用于IPSec数据的加密。

      1565752070936

思考

Q:IKE密钥协商过程是否存在安全威胁?

A:IPSec密钥交换过程分为两个独立阶段。第一阶段通信双方彼此建立一个通过身份认证和安全保护的隧道,称为ISAKMP SA。只要ISAKMP SA建立起来,所有发起方和应答方之间的IKE通信信息都通过加密、完整性检查和认证的方法受到保护。第二阶段的建立是为特定的Internet安全协议(如IPSec等)创建安全关联(IPSec SA)。IKE第一阶段的目的是建立一个安全隧道,使得第二阶段的协商可以秘密地进行。两台主机之间可以同时建立多个ISAKMP SA,一个ISAKMP SA也可以创建多个IPSec SAISAKMP SA的结束不会影响它创建的IPSec SA发生作用。这种密钥协商过程是存在着漏洞的,可以通过中间人攻击和拒绝服务攻击实现漏洞利用。

PacketTracer VPN配置

实验环境

  • 系统:Windows xp
  • 软件工具:思科官方模拟器Packet Tracer 5.3
  • 模拟实体:2台cisco2800系列路由器、2台24端口以太网交换机和若干PC电脑

安装Packet Tracer 5.3

1565752499838

配置安全策略

​ 新建一条安全策略PacketTracer,添加IP安全规则,隧道方式为不指定隧道,网络类型选择所有网络连接,身份验证方法选择用字符串保护密钥交换,输入:123;进入IP筛选器列表的配置项,设置一个新的IP筛选器列表,新建一个IP筛选器,将我的IP地址作为源地址,将任何IP地址作为目标地址,在选择协议类型中选中任意,新建一个筛选操作,设置为协商安全,选中不和不支持IPSec的计算机通讯,以要求必须在IPSec基础上进行连接,IP通讯安全设施中选择选择自定义,然后点击设置选择如下图,选择默认直至配置完成

1565752762492

1565752769614

1565752775749

1565752781587

1565752791438

初始化配置路由器

  1. 打开cisco模拟器,在模拟器窗口工具栏下选择file--new。在左下角设备栏选取路由器图标1565752837430cisco2811路由器1565752870121拖到工作区域,单击工作区域的路由器图标,选择CLI项,弹出如图所示界面

    1565752887288

    输入no,回车两次

    1565752901653

  2. 进入路由器特权模式配置路由器网卡IP,输入命令如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Router>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 //返回特权模式

    1565753153340

    1565753169156

  3. 初始配置router 0完成,根据router 0的配置过程完成router 1的配置,其中router 1f0/0端口IP为10.0.0.2/24, router 1 f0/1端口的IP地址为192.168.2.1/24

  4. 配置完成后,点击1565753230234选择1565753259250router 0router 1f0/0端口连接

    1565753295977

搭建网络环境

  1. 在模拟器左下角选择1565753335417选取1565753354773拖到绘图工作区,双击PC图标,选择Desktop,如图所示

    1565753392229

  2. 选择IP Configuration,配置PC的IP地址和子网掩码,如图所示

    1565753511671

  3. 重复上述操作,配置六台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

  4. 选取交换机1565753557584拖至工作区,在1565753568432中选取1565753573910将路由器于交换机相连,将交换机于PC相连;最终完成如图所示的网络图

    1565753598090

配置路由

在路由器中配置路由,使路由器两端的网络互通

  1. 配置router 0,双击router 0图标,选择CLI项,进入路由器配置窗口,输入命令如下

    1
    2
    3
    4
    5
    Router>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

    1565753735869

  2. 配置router 1,双击router 1图标,选择CLI项,进入路由器配置窗口,输入命令如下

    1
    2
    3
    4
    5
    Router>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

    1565753789862

测试网络的互通性

  1. 双击PC0图标,在弹出的对话框中,选择Desktop,选择Command Prompt

    1565753835594

  2. 使用ping命令,ping 192.168.1.110.0.0.1192.168.2.1010.0.0.2192.168.3.10结果除了最后一个地址(该地址不存在)其它全能ping通,表明搭建的网络满足实验环境

    1565753900939

    1565753905408

    1565753915519

    1565753921041

    1565753925827

配置IPSec VPN

  1. 配置router 0,双击router 0图标,选择CLI项,进入路由器配置窗口

    1. 定义IKE的策略(router 0router1之间的密钥交换策略),IKE只是密钥的交换策略,在使用加密对称和非对称加密算法的时候,需要密钥来对数据加密,下面的IKE策略只是建立一条管理连接,负责加密生成的各种密钥,输入命令如下

      1
      2
      3
      4
      5
      6
      7
      8
      9
      Router#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的设备去交换密钥

      1565754108455

    2. 定义数据的加密方式认证方式,配置IPSec,输入命令如下

      1
      2
      3
      4
      5
      6
      7
      8
      Router (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的存活期

      1565754214633

    3. map映射到公网端口,一个端口只能映射一个map,输入命令如下

      1
      2
      3
      4
      Router(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

      1565754280097

    4. 查看策略

      1. 查看IKE策略

        1
        Router# show crypto ipsec transform-set

        1565754404902

      2. 查看IPSec变换集

        1
        Router# show crypto ipsec transform-set

        1565754395872

      3. 查看 crypto maps

        1
        Router# show crypto map

        1565754412022

  2. 配置router 1,双击router 1图标,选择CLI项,进入路由器配置窗口

    1. 定义IKE的策略,与配置route 0相同

      1565754476249

    2. 定义数据的加密方式和认证方式,配置IPSec,与配置route 0相同

      1565754507611

    3. map映射到公网端口,与配置route 0相同

      1565754534083

测试IPSec VPN

  1. 测试VPN连通性

    双击PC0图标,在弹出的对话框中,选择Desktop,选择Command Promptping 192.168.2.10,如下图所示

    1565754619936

  2. 验证数据经过IPSec VPN 加密传输,点击进入simulation mode,弹出如图所示对话框

    1565754651966

  3. 重复上一步操作,simulation Panel中选取Auto Capture,观察工作区动画,展示了数据包在网络中的传送过程

    1565754673001

  4. 双击路由器router 0处数据包,弹出如图所示弹框,可以分析出数据包的信息

    1565754694830

    • 进入路由器的数据包(左侧)的信息源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的信息
    • 综上,从PC0192.168.1.10)发往对端PC3192.168.2.10)的数据经过了路由器的IPSec VPN模块加密处理,隐藏了内网的IP地址信息,从而保护了内网的数据
  5. 断开VPN

    1. 断开router 0

      1
      2
      3
      Router(config)#interface fastEthernet 0/0
      Router(config-if)#no crypto map mymap
      Router(config-if)end

      1565754841629

    2. 双击PC0图标,在弹出的对话框中,选择Desktop,选择Command Promptping 192.168.2.10ping不通,表明只断开一端路由器的端口map映射,两边无法连通

      1565754877800

    3. 以同样的方式断开route 1

      1
      2
      3
      Router(config)#interface fastEthernet 0/0
      Router(config-if)#no crypto map mymap
      Router(config-if)end

      1565754906347

    4. 双击PC0图标,在弹出的对话框中,选择Desktop,选择Command Promptping 192.168.2.10ping成功,表明两端都断开后,两边网络可以再次保持连接

      1565754947901

    5. 抓取经过route 0的数据包,发现数据不再加密传输。

      1565761734124