IPSec IKEv1实验(华为设备)

实验拓扑:

在这里插入图片描述

实验需求:

某企业总部与分部分别位于不同地域,且总分部之间有重要信息频繁传递的需求,之前采用专线的形式互联。如今该企业为了节省经营支出,又为了能保证数据传输的安全,稳定及可靠,改用IPsec-VPN部署来解决总分部的通信问题。现在底层配置已经已经配置完成。需求如下:

  1. 企业总部存在10.1.1.0/24、10.1.2.0/24两个内网网段,而企业分部存在172.16.1.0/24一个内网网段。并且总分部均接入ISP进行上网冲浪。(在ISP上创建一个回环口2.2.2.2 做测试)。
  2. 由于分部的数据仅需要反馈到总部主机A所在的网络,根据企业需求实现总部主机A和分部主机能够通信,而总部主机B无法通信分部主机。
  3. 分析同时实现IPSec VPN和nat通信的原理。

步骤一:

为了让用户能够在网上进行冲浪,我们需要让用户能够正常访问外网。

本实验用内网Ping访问R2的回环口进行模拟。
首先我们在R1和R3上做NAT配置,选择的是easy ip。

R1上:
acl number 2000 (进行感兴趣流的匹配)

rule 5 permit source 10.1.0.0 0.0.255.255
interface GigabitEthernet0/0/2(在接口上匹配感兴趣流并且启用easy ip)

nat outbound 2000
ip route-static 0.0.0.0 0.0.0.0 12.1.1.2(添加对应的默认路由,将内网的流量转发到外网)

用PC1和PC2去ping外网(成功)
在这里插入图片描述
R3上:
acl number 2000 (进行感兴趣流的匹配)
rule 5 permit source 172.16.1.0 0.0.0.255

interface GigabitEthernet0/0/0(在接口上匹配感兴趣流并且启用easy ip)
nat outbound 2000

ip route-static 0.0.0.0 0.0.0.0 23.1.1.2(添加对应的默认路由,将内网的流量转发到外网)

用PC3去ping外网(成功)
在这里插入图片描述
做完此步骤,我们已经完成了网上冲浪的操作。

步骤二:

在完成内网与互联网通信以后,按照要求,PC1需要和PC3互通,而PC2不能喝PC3互通,这要求的就是内网的互联,我们单纯使用NAT是无法保证的,因为外网的R2路由器是没有内网的路由条目,当收到了内网的流量后无法进行流量的转发。

如图做的测试:(用PC1pingPC3)
在这里插入图片描述
无法进行通信。

我们为了内网能够进行通信,并且保证安全性,选择IPSECvpn将总公司和分公司连接起来。
我们需要在在隧道的两端,也就是R1和R3上进行配置。

感兴趣流需要在之前创建,目的是让隧道允许PC1到PC3的报文通过。
acl number 3000
rule 5 permit ip source 10.1.1.1 0 destination 172.16.1.1 0

一、R1上IPSec的配置:

首先IPSec需要通过IKE来实现,配置IKE的框架:
ike proposal 10 //配置名为10的IKE安全提议
authentication-method pre-share //用共享密钥来认证数据,为默认值
authentication-algorithm md5 //使用md5算法保证共享密钥的完整。
encryption-algorithm des-cbc //对共享密钥加密
dh group14 //密钥的等级
sa duration 5000 //SA也就是IPSec协议的约定的生存时间,单位秒

配置完成后进行检测,一些配置为默认值。

ike proposal 10
dh group14
authentication-algorithm md5
sa duration 5000

然后配置IKE的对等体:
ike peer R3 v1 //对等体的名字,以后调用时需要,版本号为1,ENSP上面必须写版本号。
exchange-mode aggressive //isakmp为野蛮模式,建立第一阶段关系只需要3个包,如果为有主模式,建立关系需要6个数据包
pre-shared-key cipher 123456 //配置共享的密钥
ike-proposal 10 //配置调用的IKE框架
remote-address 23.1.1.1 //对方接口的IP地址,自己接口的IP地址有默认值可以不配置。

IKE配置完成后需要配置值IPSEC的框架:

ipsec proposal 10 //配置名为10的IPSec安全提议
transform esp //默认值,IPSec的封装方式
encapsulation-mode tunnel //因为两边是两个安全网关,经过外部环境,选择隧道模式
esp authentication-algorithm sha2-256 //选择用sha2-256计算数据的哈希值
esp encryption-algorithm aes-128 //采用的对称加密算法为des

配置完成后查看配置,发现一些是默认值:

ipsec proposal 10
esp authentication-algorithm sha2-256
esp encryption-algorithm aes-128

配置IKE方式的IPSec的策略:

ipsec policy IPSEC 10 isakmp //给策略创建一个名字叫IPSEC,标号为10,使用的是isakmp实现了有效负载的格式,实现密钥交换协议的机制以及SA的协商,是一个IKE的子协议
security acl 3000 //匹配ACL3000中的感兴趣流
ike-peer R3 //在策略中只出对等体的名称为R3
proposal 10 //在策略中匹配IPSec的提议

最后需要进入接口g0/0/2作为隧道的入口,并调用策略
ipsec policy IPSEC

现在一端一直配置完成,我们需要在另外一段R3上做镜面配置:

首先创建要求的感兴趣流,匹配PC3到PC1的流量
acl number 3000
rule 5 permit ip source 172.16.1.1 0 destination 10.1.1.1 0

二、R3上IPSec的配置:

IPSec需要通过IKE来实现,配置IKE的框架:
ike proposal 10 //配置名为10的IKE安全提议
authentication-method pre-share //用共享密钥来认证数据,为默认值
authentication-algorithm md5 //使用md5算法保证共享密钥的完整。
encryption-algorithm des-cbc //对共享密钥加密
dh group14 //密钥的等级
sa duration 5000 //SA也就是IPSec协议的约定的生存时间,单位秒

配置IKE的对等体:
ike peer R1 v1 //对等体的名字,以后调用时需要,版本号为1,必须进行配置
exchange-mode aggressive //isakmp为野蛮模式,建立第一阶段关系只需要3个包,如果为有主模式,建立关系需要6个数据包
pre-shared-key cipher 123456 //配置共享的密钥
ike-proposal 10 //配置调用的IKE框架
remote-address 12.1.1.1 //对方接口的IP地址,自己接口的IP地址有默认值可以不配置。

配置完IKE后需要需要配置值IPSEC的框架:
ipsec proposal 10 //配置名为10的IPSec安全提议
transform esp //默认值,IPSec的封装方式
encapsulation-mode tunnel //因为两边是两个安全网关,经过外部环境,选择隧道模式
esp authentication-algorithm sha2-256 //选择用sha2-256计算数据的哈希值
esp encryption-algorithm aes-128 //采用的对称加密算法为des

配置基于IKE方式的IPSec安全策略:
ipsec policy IPSEC 10 isakmp //给策略创建一个名字叫IPSEC,标号为10,使用的是isakmp实现了有效负载的格式,实现密钥交换协议的机制以及SA的协商,是一个IKE的子协议
security acl 3000 //匹配ACL3000中的感兴趣流
ike-peer R1 //在策略中只出对等体的名称为R3
proposal 10 //在策略中匹配IPSec的提议

最后进入接口g0/0/0作为隧道的入口,并调用策略
ipsec policy IPSEC

现在用PC3 ping PC1进行测试:(不成功)

需要注意的是,如果流量到达了网关,首先会查看路由表,发现都会从出口出去,然后出口有一个策略和一个nat,首先选择的是nat,所以流量如果匹配到了nat中的acl范围,就会出去按照nat进行转发,如果是去往对方内网的,匹配到了nat然后被放行了后,就会在R2上就会因为没有目的地路由条目被丢弃,达不到目的地。

三、NAT配置修改:

所以去外面网关的acl需要写的是:
acl number 3001
rule 5 deny ip source 10.1.1.1 0 destination 172.16.1.1 0
rule 10 permit ip
首先拒绝PC1到PC3的流量,源目地址必须精确,所以使用的是高级访问控制列表,精准保证拒绝的流量是题目要求需要走IPSec隧道的,允许其他流量通过,这样去往内网的流量被拒绝后就会选择IPSec隧道进行通信,从而到达目的

在出接口上调用:
nat outbound 3001 //需要将原来的使用的2000删除掉

同理R3上:
acl number 3001
rule 5 deny ip source 172.16.1.1 0 destination 10.1.1.1 0 //这里拒绝的是PC3到PC1的流量
rule 10 permit ip

在出接口上调用:
nat outbound 3001 //需要将原来的使用的2000删除掉

现在用PC3pingPC1进行测试:(成功,说明IPSec VPN配置成功)
在这里插入图片描述

步骤三:

分析nat和IPSec同时运用的时候ACL该怎么进行配置。

我们需要了解的是流量通过网关出去的时候,如果网关同时存在NAT和IPSec,首先匹配的是NAT,再匹配IPSec之中的流量,这就造成了一个问题,我们需要走分公司的内网的流量也被NAT匹配到了,传递到了外网,没有进入隧道,这就导致无法到达目的地。我们需要的就是在NAT中拒绝进入隧道的流量,不让这一部分流量进行转化(一定需要运用的就是高级访问控制列表,才能匹配目的地,否则基本ACL只能匹配源无法达到区分内外网流量的目的),当我们拒绝了访问内网的流量,还需要在下面加一句允许其他流量通过,保证其他没有匹配到的流量能够通过NAT到外网。那些被拒绝的流量在查找完NAT发现无法通过以后,就会向下查找IPSec,发现IPSec匹配到了,然后就会将流量引入IPSec隧道进行相应的转发。

IKE方式下配置思路如下:

  1. 定义需要保护的数据流,没有被保护的数据流无法被IPSec协议识别。
  2. 配置IKE安权提议,主要是用于配置建立IKE SA用到的加密和验证算法。
  3. 配置IKE对等体,配置IKE版本,身份认证和交换模式。
  4. 配置IPSec安全提议。
  5. 配置IPSec安全策略 ,是基于IKE方式的IPSec安全策略,将受保护的数据流,配置的IKE对等体,配置的IPSec安全提议结合在一起。
  6. 应用IPSec安全策略组。

查看命令:

dis ike sa(查看IKE SA的建立情况,是逻辑上双向的,有一个)。
在这里插入图片描述
dis ipsec sa brief(查看IPSec SA的建立情况,SA是单向的,有两个)。
在这里插入图片描述

1. 在华为防火墙上配置IPSec VPN 首先,在华为防火墙上配置IPSec VPN,以便与Ubuntu 20.04公网服务器建立安全连接。 1.1 创建IKE策略 IKE是IPSec的关键协议之一,用于建立安全的VPN隧道。在华为防火墙上,我们需要创建IKE策略来定义IKE协议的参数。 在命令行界面下,输入以下命令: [Huawei] ipsec ike proposal ike-proposal1 [Huawei-ike-proposal-ike-proposal1] encryption-algorithm aes-cbc-256 [Huawei-ike-proposal-ike-proposal1] integrity-algorithm sha1 [Huawei-ike-proposal-ike-proposal1] dh group14 该命令创建了一个IKE策略,指定了加密算法、完整性算法和Diffie-Hellman密钥交换组。这些参数应该与Ubuntu 20.04公网服务器上的设置相匹配。 1.2 创建IPSec策略 IPSec是用于加密数据的另一个重要协议。我们需要在华为防火墙上创建IPSec策略,以定义加密参数。 在命令行界面下,输入以下命令: [Huawei] ipsec proposal ipsec-proposal1 [Huawei-ipsec-proposal-ipsec-proposal1] esp encryption-algorithm aes-cbc-256 [Huawei-ipsec-proposal-ipsec-proposal1] esp integrity-algorithm sha1 该命令创建了一个IPSec策略,指定了加密和完整性算法。这些参数应该与Ubuntu 20.04公网服务器上的设置相匹配。 1.3 创建IPSec VPN 现在,我们可以使用上述IKE和IPSec策略创建IPSec VPN。 在命令行界面下,输入以下命令: [Huawei] ipsec vpn vpn1 [Huawei-ipsec-vpn-vpn1] ike proposal ike-proposal1 [Huawei-ipsec-vpn-vpn1] ipsec proposal ipsec-proposal1 [Huawei-ipsec-vpn-vpn1] remote-address 1.2.3.4 [Huawei-ipsec-vpn-vpn1] quit 该命令创建了一个名为vpn1的IPSec VPN,指定了IKE和IPSec策略,并将其绑定到Ubuntu 20.04公网服务器的公共IP地址。 2. 在Ubuntu 20.04公网服务器上配置IPSec VPN 接下来,在Ubuntu 20.04公网服务器上配置IPSec VPN,以便与华为防火墙建立安全连接。 2.1 安装StrongSwan StrongSwan是一个流行的开源IPSec VPN实现,我们将使用它来配置Ubuntu 20.04公网服务器。 在终端中,输入以下命令: $ sudo apt-get update $ sudo apt-get install strongswan 这将安装StrongSwan。 2.2 配置IPSec VPN 现在,我们需要配置StrongSwan以与华为防火墙建立IPSec VPN。 在终端中,打开/etc/ipsec.conf文件: $ sudo nano /etc/ipsec.conf 将以下内容添加到文件末尾: conn vpn1 keyexchange=ikev1 authby=secret ike=3des-sha1-modp1024 esp=aes256-sha1 left=2.3.4.5 # Ubuntu 20.04公网服务器的公共IP地址 leftsubnet=192.168.1.0/24 # Ubuntu 20.04公网服务器的本地子网 right=1.2.3.4 # 华为防火墙的公共IP地址 rightsubnet=192.168.2.0/24 # 华为防火墙的本地子网 auto=start 这将创建一个名为vpn1的IPSec连接,指定了IKE和IPSec参数,并将其绑定到Ubuntu 20.04公网服务器和华为防火墙的本地子网。 2.3 配置PSK 我们还需要为IPSec VPN配置预共享密钥(PSK)。 在终端中,打开/etc/ipsec.secrets文件: $ sudo nano /etc/ipsec.secrets 将以下内容添加到文件末尾: 2.3.4.5 1.2.3.4 : PSK "mysecretpassword" 这将为Ubuntu 20.04公网服务器和华为防火墙之间的IPSec连接配置PSK。 3. 测试IPSec VPN 现在,我们可以测试IPSec VPN是否正常工作。 在Ubuntu 20.04公网服务器上,输入以下命令以启动IPSec连接: $ sudo ipsec up vpn1 如果一切正常,您将看到以下输出: initiating Main Mode IKE_SA vpn1[1] to 1.2.3.4 generating ID_PROT request 0 [ SA V V V V V ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (184 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (184 bytes) parsed ID_PROT response 0 [ SA V V V V V ] received NAT-T (RFC 3947) vendor ID received XAuth vendor ID received DPD vendor ID received FRAGMENTATION vendor ID received unknown vendor ID: 1f:07:17:00:00:00:00:00:00:00:00:00:00:00:00:00 generating ID_PROT request 0 [ KE No NAT-D NAT-D ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (244 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (244 bytes) parsed ID_PROT response 0 [ KE No NAT-D NAT-D ] local host is behind NAT, sending keep alives generating ID_PROT request 0 [ ID HASH ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (100 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (68 bytes) parsed ID_PROT response 0 [ ID HASH ] IKE_SA vpn1[1] established between 2.3.4.5[2.3.4.5]...1.2.3.4[1.2.3.4] scheduling reauthentication in 10046s maximum IKE_SA lifetime 10586s generating QUICK_MODE request 2499452192 [ HASH SA No ID ID ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (188 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (188 bytes) parsed INFORMATIONAL_V1 request 4026938035 [ HASH D ] received packet: from 1.2.3.4[500] to 2.3.4.5[500] (76 bytes) generating INFORMATIONAL_V1 response 4026938035 [ HASH D ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (76 bytes) 这表示IPSec连接已成功建立。 现在,您可以从Ubuntu 20.04公网服务器上访问华为防火墙的本地子网,并从华为防火墙上访问Ubuntu 20.04公网服务器的本地子网。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值