本文介绍一下华为防火墙上IPSEC 虚拟专网的配置方法,本范文内没有计划NAT相关事项。


配置步骤:

一、 配置接口

二、 配置安全区域

三、 配置安全策略

四、 配置静态路由

五、配置IPSEC

1. ike proposal

2. ike peer

3. ipsec proposal

4. ACL

5. ipsec policy

#调用ACL、IPSEC Proposal、ike peer

6. 在公网接口下调用IPSEC policy




详细配置

一、 配置接口

#第一步是配置接口的IP地址,将公网、内网接口都配置上IP

interface GigabitEthernet1/0/1

ip address 1.1.3.1 255.255.255.0

#

#

interface GigabitEthernet1/0/3

ip address 10.1.1.1 255.255.255.0

二、 配置安全区域

# 将内网接口g1/0/3配置到Trust区域,外网接口G1/0/1配置到Untrust区域

firewall zone trust

add interface GigabitEthernet1/0/3

#

firewall zone untrust

add interface GigabitEthernet1/0/1

三、 配置安全策略

# 配置安全策略,这里做了四个策略

# 第1个策略是本防火墙Tust到对端的内网IP网段的安全策略。

#第2个策略是对端的内网IP网段到本防火墙的Trust区域的安全策略。

#第3个策略是本端公网IP与对端公网IP之间的安全策略

#第4个策略是对端公网IP与本端公网IP之间的安全策略

security-policy

rule name policy1

source-zone trust

destination-zone untrust

source-address 10.1.1.0 mask 255.255.255.0

destination-address 10.1.2.0 mask 255.255.255.0

action permit

rule name policy2

source-zone untrust

destination-zone trust

source-address 10.1.2.0 mask 255.255.255.0

destination-address 10.1.1.0 mask 255.255.255.0

action permit

rule name policy3

source-zone local

destination-zone untrust

source-address 1.1.3.1 mask 255.255.255.255

destination-address 1.1.5.1 mask 255.255.255.255

action permit

rule name policy4

source-zone untrust

destination-zone local

source-address 1.1.5.1 mask 255.255.255.255

destination-address 1.1.3.1 mask 255.255.255.255

action permit

# 华为FW的IPSEC触发是需要内网流量访问进行触发,当FW_1收到PC1去往PC2的流量时,10.1.1.0 ---> 10.1.2.0,所以安全策略需要本端内网去往对端内网的流量允许通过。

# 防火墙收到这个数据包以后,查路由表,发现它应该被送往公网的接口G1/0/1,而这个接口下应用了IPSEC的Policy,并且这个流量与Policy的感兴趣流匹配,所以会引发×××的协商

四、 配置静态路由

ip route-static 1.1.5.0 255.255.255.0 1.1.3.254 # 去往对端公网IP的路由

ip route-static 10.1.2.0 255.255.255.0 1.1.3.254 # 去往对端私网IP的路由

五、配置IPSEC

acl number 3000

rule 5 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

# 配置感兴趣流,两端的感兴趣流的ACL需要互为镜像,再强调一下,需要互为镜像,即对端的ACL与本端相比,只能将源目互换,而不能改变网段或者成为子集什么通通不行。

#

ike proposal 10

encryption-algorithm aes-256

dh group14

authentication-algorithm sha2-256

authentication-method pre-share

integrity-algorithm hmac-sha2-256

prf hmac-sha2-256

# 其实这个是默认的,已经很安全了,早年思科的路由器上,都是配置的DES和MD5

ike peer b

pre-shared-key Test!1234

ike-proposal 10

remote-address 1.1.5.1

#在这里可以配置IKE的版本,华为默认发起的IKE v2的协商

[FW_A-ike-peer-b]version ?

1 Only V1 SA's can be created

2 Only V2 SA's can be created

# 在这里也可以选择Pashe 1的模式是主模式还是野蛮模式,默认是主模式,双方都有固定公网IP,并且中间没有穿越NAT设备时,可以使用主模式。如果一端是PPPOE拨号,使用野蛮模式。

[FW_A-ike-peer-b]exchange-mode ?

aggressive Aggressive mode

auto Auto mode

main Main mode

ipsec proposal tran1

esp authentication-algorithm sha2-256

esp encryption-algorithm aes-256

#默认的封装模式是隧道模式,当两个通讯点之间路由可达时,使用传输模式,路由不可达时,需要使用隧道模式

[FW_A-ipsec-proposal-tran1]encapsulation-mode ?

auto Specify automatic mode. The responder can accept negotiations in

transport or tunnel mode. The initiator initiates negotiations in

tunnel mode

transport Only the payload of IP packet is protected(transport mode)

tunnel The entire IP packet is protected(tunnel mode)

ipsec policy map1 10 isakmp

security acl 3000

ike-peer b

proposal tran1

#Policy需要调用三个参数,也可以说是把前面配置的信息进行关联,1. 感兴趣流 2. ike-peer 3. IPSEC协商时的转换集。

interface GigabitEthernet1/0/1

ipsec policy map1

#在公网接口下调用ipsec policy

本文只列出了第一台防火墙的配置信息,第二台防火墙的配置信息可以参照第一台防火墙的配置。

如果配置不通,恭喜你,很正常。在配置IKE和IPSEC时的随便一个参数不匹配就会导致不通。那么我们可以通过以下方法排障

1. [FW_A]display ike sa

#正常情况下是有两个ike的关联的,每阶段各一个,然后标志信息是一端为:

  • RD--READY:表示此SA已建立成功。

  • ST--STAYALIVE:表示此端是通道协商发起方。

# 标志信息的另一端没有ST信息,只有RD|A

2019-07-16 12:13:03.740

IKE SA information :

Conn-ID Peer ××× Flag(s) Phase RemoteType RemoteID

------------------------------------------------------------------------------------------------------------------------------------

2 1.1.5.1:500 RD|ST|A v2:2 IP 1.1.5.1

1 1.1.5.1:500 RD|ST|A v2:1 IP 1.1.5.1

Number of IKE SA : 2

------------------------------------------------------------------------------------------------------------------------------------

Flag Description:

RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO--TIMEOUT

HRT--HEARTBEAT LKG--LAST KNOWN GOOD SEQ NO. BCK--BACKED UP

M--ACTIVE S--STANDBY A--ALONE NEG--NEGOTIATING

display ipsec sa

#第二阶段的SA,

2019-07-16 12:15:39.990

ipsec sa information:

===============================

Interface: GigabitEthernet1/0/1

===============================

-----------------------------

IPSec policy name: "map1"

Sequence number : 10

Acl group : 3000

Acl rule : 5

Mode : ISAKMP

-----------------------------

Connection ID : 2

Encapsulation mode: Tunnel

Holding time : 0d 0h 27m 45s

Tunnel local : 1.1.5.1:500

Tunnel remote : 1.1.3.1:500

Flow source : 10.1.2.0/255.255.255.0 0/0-65535

Flow destination : 10.1.1.0/255.255.255.0 0/0-65535

[Outbound ESP SAs]

SPI: 197382210 (0xbc3d042)

Proposal: ESP-ENCRYPT-AES-256 ESP-AUTH-SHA2-256-128

SA remaining key duration (kilobytes/sec): 10485666/1935

Max sent sequence-number: 1606

UDP encapsulation used for NAT traversal: N

SA encrypted packets (number/bytes): 1605/96300

[Inbound ESP SAs]

SPI: 196813874 (0xbbb2432)

Proposal: ESP-ENCRYPT-AES-256 ESP-AUTH-SHA2-256-128

SA remaining key duration (kilobytes/sec): 10485666/1935

Max received sequence-number: 1600

UDP encapsulation used for NAT traversal: N

SA decrypted packets (number/bytes): 1619/97140

Anti-replay : Enable

Anti-replay window size: 1024

以上两个方法只能查看错误,想动态的排障,在实验环境推荐3 种做法

一、 debug的方法,这种方法可以查看到有哪些地方会报错,需要一定的功底

termial monitor

terminal debugging

debugging ikev2 [error|all]

二、 抓包:在ENSP环境中去抓包,看看数据的状态

三、每天敲一遍实验,连续十天,前几次敲实验,一定会出问题,一个一个地方对照着去排查。




在进行实验以前,有一些知识需要提前准备好:

  1.  加密学原理:对称加密、非对称加密

  2.  散列算法

  3.  ISAKMP与IKE的关系

  4. DH算法,可以去维基百科看看,有个文档非常不错。

  5. Pashe1和Pahase2各自的作用

  6. AH和ESP的特征

  7.  预共享密钥:我们配置的这个pre-share-key并不是用于加密的密钥,它只是用于做身份验证的一个参数;加密的密钥是DH算法通过交换密钥素材计算出的两边一致的对称加密的密钥