本文介绍一下华为防火墙上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
#第二阶段的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环境中去抓包,看看数据的状态
三、每天敲一遍实验,连续十天,前几次敲实验,一定会出问题,一个一个地方对照着去排查。
在进行实验以前,有一些知识需要提前准备好:
加密学原理:对称加密、非对称加密
散列算法
ISAKMP与IKE的关系
DH算法,可以去维基百科看看,有个文档非常不错。
Pashe1和Pahase2各自的作用
AH和ESP的特征
预共享密钥:我们配置的这个pre-share-key并不是用于加密的密钥,它只是用于做身份验证的一个参数;加密的密钥是DH算法通过交换密钥素材计算出的两边一致的对称加密的密钥