实验5:VPN

1. 实验内容

  1. 在Windows IPSEC配置实验中,通过抓包工具抓取IKE SA和IPSEC SA建立过程的数据包,并进行分析。
  2. PacketTracer里VPN配置实验。

2. 实验环境

  • 虚拟机Winxp和Win7;
  • Cisco Packet Tracer。

3. 实验过程

3.1. IPSEC Win7与xp通信

xp主机配置

按下windows+R组合键,输入secpol.msc,打开本地安全设置。

在IP安全策略处右键,创建安全策略。

        下一步,输入名字LLrber的IP安全策略;下一步,激活默认响应规则;下一步,选择字符串用来保护密钥交换,填写123456当做共享密钥;下一步,编辑属性,完成;确认。

回到原来的窗口,右键新创建的安全策略,点击指派会看到后方的否变为是。

双击该指派的ipsec策略,点击添加来增加一条规则。

        增加一条规则:下一步;下一步,选择此规则不指定隧道;下一步,选择所有网络连接;下一步,输入abcdef;下一步,选择所有IP通信量;下一步,选择需要安全;下一步,完成。由此退出保存设置,xp主机的配置完成。

Win7主机配置

        为了完成IPSec通信实验,还需要再配置另一台主机,本实验选择的是Win7的虚拟机进行配置。

同样按下windows+R组合键,输入secpol.msc,打开本地安全设置。

在左侧窗口选取IP安全策略,鼠标在右侧窗口右键创建IP安全策略。

        下一步;下一步,输入LLrber的IP安全策略作为名称;下一步;下一步;下一步,编辑属性。点击添加来增加一条规则。

        增加一条规则:下一步;下一步,选择此规则不指定隧道;下一步,选择所有网络连接;下一步,选择添加IP筛选器;填入名称,去掉“添加向导”,点击添加;

        之后,默认下一步后结束,点击确认;回到安全规则向导界面,选取刚才新建的筛选器,点击下一步;添加筛选器操作,输入筛选器名称为LLrber的筛选器操作;下一步,选取协商安全;下一步,选择不允许不安全的通信;下一步,选择完整性和加密,完成设置。

在接着在向导中选择下一步,增加身份验证,设置密钥为abcdefg

之后,选择中IP筛选器双击。

之后分别查看各属性选项框。

  • IP 筛选器列表:可以设置源、目ip和端口及服务类别。
  • 筛选器操作:设置符合该ip规则的输入输出流该如何处理,一般可以选择协商安全。
  • 身份验证方法:可以使用的身份验证方法,有证书和预共享密钥方法。
  • 隧道设置:可以设置隧道端点,如果不设置为传输方式。
  • 连接类型。

最后,在本地安全策略中对此进行指派。

开始通信

查看虚拟机的ip地址。

xp的IP地址:

Win7的IP地址:

        首先,将Win7的IP安全策略的指派关闭,尝试ping另一台xp主机,发现虽然在同一局域网内但请求超时。

        利用Wireshark抓包查看,可以看到Win7一直在发包,请求IPSec的SA,但是总是不成功。

之后,将Win7的IPSec重新开启,并ping虚拟机xp,可以看到可以ping通。

抓包可以看到抓到的都是esp包,其是因为xp和Win7的默认esp加密。

AH通信

将IPSec中的安全措施设置为以MD5为加密算法的AH。

        保存后,将刚刚添加的安全措施设为默认。Win7虚拟机也进行如上操作。之后再次ping通进行抓包。

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

ESP通信

将IPSec中的安全措施设置为不使用加密算法的ESP。

        保存后,将刚刚添加的安全措施设为默认。Win7虚拟机也进行如上操作。之后再次ping通进行抓包。

可以看到其未加密的数据中有设置的共享密钥abcdefg...

3.2. PacketTracer里VPN配置实验

搭建网络环境

  1. 安装Cisco Packet Tracer。

  2. 初始化配置路由器。

            首先打开Cisco Packet Tracer模拟器,在模拟器窗口工具栏下选择file->new。在左下角设备栏选取路由器图标,将2811路由器拖入工作区。单机工作区中的路由器图标,选择CLI项,等待路由器启动后,在交互对话框中输入no并回车。

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Router>enable #进入特权模式,只有在特权模式下才可以对路由器进行配置
    /*********配置网卡f0/0端口的IP地址和子网掩码,该网卡连接公网*********/
    Router#configure terminal #进入配置状态,通过端口进行配置
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#interface fastEthernet 0/0 #进入端口f0/0,配置网卡f0/0的ip地址和子网掩码
    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)#
    %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
    Router(config-if)#end #开启端口f0/0
    Router#
    %SYS-5-CONFIG_I: Configured from console by console
    /***********配置网卡f0/1的IP地址和子网掩码,该网卡连接内网************/
    Router#configure terminal #进入配置状态,通过端口进行配置
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#interface fastEthernet 0/1 #配置网卡f0/0的ip地址和子网掩码
    Router(config-if)#ip address 192.168.1.1 255.255.255.0 #配置网卡f0/0的ip地址和子网掩码
    Router(config-if)#no shutdown #开启端口f0/0
    Router(config-if)#
    %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
    Router(config-if)#end #返回特权模式
    Router#
    %SYS-5-CONFIG_I: Configured from console by console

            初始配置router0完成,根据router0的配置过程完成router1的配置,其中router1的f0/0端口IP为10.0.0.2/24,router1的f0/1端口的IP地址为192.168.2.1/24。配置完成后,选择Connections图标,选择虚线,将router0和router1的f0/0端口进行连接。

  3. 进行网络环境搭建。

            在模拟器左下角选择End Devies图标,选取PC-PT图标拖到工作区。双击PC图标,选择Desktop,选择IP Configuration,配置PC的IP地址和子网掩码,如下图。

        选取Switches中的2950-24,在Connections中选择Straight-Through将路由器与交换机相连,将交换机与PC机相连,需要对所有的PC机进行上图配置,最后完成如下图。

image-20211222125636864

在路由中配置路由,令路由器两端的网络互通,指令如下。

router0中CLI配置指令。

1
2
3
4
5
6
7
8
Router#enable
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
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#
%SYS-5-CONFIG_I: Configured from console by console

router1中CLI配置指令。

1
2
3
4
5
6
7
8
Router#enable
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
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
Router#
%SYS-5-CONFIG_I: Configured from console by console
  1. 测试网络连通性。

            双击PC0图标,弹出对话框,选择Desktop,选择Command Prompt,进行ping测试是否连通。

配置IPSec VPN

  1. 配置router0。

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

    首先,定义IKE策略,IKE就是router 0和router1之间的密钥交换策略。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Router>enable
    Router#configure terminal
    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,可选AES/DES
    Router(config-isakmp)#group 2 #指定DH组
    Router(config-isakmp)#lifetime 86400 #注释:对生成新SA的周期进行调 整,两端的路由器都要设置相同的SA周期。
    Router(config-isakmp)#exit
    Router(config)#crypto isakmp key LLrber address 10.0.0.2 #定义一个密码,密码是bupt,和地址为10.0.0.2的设备去交换密钥。

            IKE只是密钥的交换策略,我们在使用加密对称和非对称加密算法的时候,需要密钥来对数据加密,上面的IKE策略只是建立一条管理连接,负责加密生成的各种密钥。

    之后,定义数据的加密方式和认证方式,配置IPSec。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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,来调用我们刚才做的策略。
    % 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的数据
    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的存活期
    Router(config-crypto-map)#exit

    然后,将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

    最后,查看IKE策略。

    1
    Router#show crypto isakmp policy

    查看IPSec变换集。

    1
    Router#show crypto ipsec transform-set

    查看 crypto maps。

    1
    Router#show crypto map

  2. 配置router1。

    定义的IKE的策略,IKE就是router 0和router1之间的密钥交换策略,两者的策略必须匹配起来,除了优先级序号可以不同。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Router>enable
    Router#configure terminal
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#crypto isakmp policy 10
    Router(config-isakmp)#authentication pre-share
    Router(config-isakmp)#hash md5
    Router(config-isakmp)#encryption des
    Router(config-isakmp)#group 2
    Router(config-isakmp)#lifetime 86400
    Router(config-isakmp)#exit
    Router(config)#crypto isakmp key LLrber address 10.0.0.1 #对端合法IP地址

    定义数据的加密方式和认证方式,配置IPSec。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Router(config)#crypto isakmp key LLrber address 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
    Router(config)#crypto ipsec transform-set mine esp-des esp-md5-hmac
    Router(config)#crypto map mymap 101 ipsec-isakmp
    % 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
    Router(config-crypto-map)#set peer 10.0.0.1
    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
    Router(config-crypto-map)#exit

    将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

测试IPSec VPN

  1. 测试连通性。

    双击PC 0图标,在弹出的对话框中,选择Desktop,选择Command Prompt,ping 192.168.2.10,如下图。

    image-20211222145127275

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

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

            再次ping 192.168.2.10,在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,另外可以看到下面的第6条信息中可以看到ESP的encrypts the received packet包。

            由此可以看出,从PC0发往PC3的数据包经过路由器的IPSec VPN模块加密处理,隐藏了内网的IP地址信息,从而保护了内网的数据

  3. 断开VPN。

    配置router0和router1的指令。

    1
    2
    3
    4
    5
    6
    7
    Router>enable
    Router#configure terminal
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#interface fastEthernet 0/0
    Router(config-if)#no crypto map mymap
    %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF
    Router(config-if)#end

            需要注意的是,只断开一端路由器的端口map映射,两边无法连通;两端都断开后,两边网络可以再次保持连接,只是数据不再加密传输。