目录
Ⅰ PKI证书认证
一、组网需求
如图所示,通过VPN将2个局域网连接起来,vpn隧道需要采用证书认证方式来协商,实现192.168.0.0/24与192.168.1.0/24两个网段的通信
二、网络拓扑
三、配置要点
1、配置NGFW1
1)基本上网配置(详细请参见”路由模式上网配置章节“)
2)证书配置
3)IKE阶段1
4)IKE阶段2
5)配置路由
6)配置策略
2、配置NGFW2
1)基本上网配置(详细请参见”路由模式上网配置章节“)
2)证书配置
3)IKE阶段1
4)IKE阶段2
5)配置路由
6)配置策略
说明:如果要删除IPSEC VPN第一阶段、第二阶段时,需要先删除被调用的路由或防火墙安全策略。
四、配置步骤
1、配置NGFW1
1)基本上网配置
配置详细过程请参照 “路由模式典型功能--单线上网--静态地址线路上网配置“一节:
接口地址:
路由:
2)证书配置
a.生成证书请求
进入: 系统管理--证书--本地证书
点击 “生成证书” ,根据表格填写证书签名请求。
证书名称:自定义
Id类型: 主机IP
IP : 防火墙本地IP地址
其他可选项自行填写
注册方法:基于文件,或者在线SCEP,本例以基于文件为例。
b. 下载证书请求文件,勾选fw1vpn, 点击下载按钮,将fw1vpn.csr文件保存。
将该文件提交给证书认证中心进行签署。可以使用OPEN SSL 软件,微软证书系统等。
c.将经过CA中心认证的证书导入防火墙,
进入系统管理--证书--本地证书,点击导入证书
选择 fw1vpn.cer文件,确定
导入本地证书后,页面如下:
d. 导入CA证书
进入 系统管理--证书--CA证书,点击导入证书
选择VPN的CA证书文件:
导入后,页面如下:
3) IKE阶段1
a、 菜单:虚拟专网--IPSEC--自动交换秘钥,点击“创建阶段1”
名称: VPN,用于标识作用,接口模式下,将用于VPN虚拟接口的名字
远程网关: 静态IP
IP地址: 对端防火墙的外网接口的IP地址200.1.1.2
本地接口: 防火墙与对端设备建立VPN所使用的接口,通常为外网接口.
认证方式: RSA签名
证书名称: fw1vpn
b、
启动IPsec接口模式:勾选,
其他参数适用默认参数,参数细节请参考《阶段1参数》一节
c、点击OK
4)IKE阶段2
a、 菜单:虚拟专网--IPSEC--自动交换秘钥,点击“创建阶段1”
名称:阶段2 的名字, vpn2
阶段1: 该阶段2 关联的阶段1.
b、点击, 弹出高级参数选项。
勾选弹出选项中的“保持存活” 其他默认。
c、点击ok。
5)配置路由
目的IP/子网掩码: 对方防火墙所保护的子网 ,
设备: 配置VPN所生成的接口。
6)配置策略
进入 防火墙--策略--策略, 点击 “新建” 按如下方式创建策略,。
通可以该策略对两端2个子网之间的访问进行控制,UTM等,
策略如下:
策略1: 允许本地的192.168.0.0网段,访问对端的192.168.1.0网段
策略2: 允许对端的192.168.1.0网段,访问本端的192.168.0.0网段
2、配置NGFW2
1)基本上网配置
配置详细过程请参照 “路由模式典型功能--单线上网--静态地址线路上网配置“一节:
接口地址:
路由:
2)证书配置
a.生成证书请求
进入 系统管理--证书--本地证书
点击 “生成证书” ,根据表格填写证书签名请求。
证书名称:自定义
Id类型: 主机IP
IP : 防火墙本地IP地址
其他可选项自行填写
注册方法:基于文件,或者在线SCEP,本例以基于文件为例。
b.下载证书请求文件,勾选fwqvpn, 点击按钮,将fw1vpn.csr文件保存。
将该文件提交给证书认证中心进行签署。可以使用OPEN SSL 软件,微软证书系统等。Windows CA操作可参照本章附件。
c.将经过CA中心认证的证书导入防火墙, 点击 导入证书
选择 fw1vpn.cer文件,确定
导入本地证书后,页面如下:
d.导入CA证书,点击导入证书
选择VPN的CA证书文件按:
导入后,页面如下:
3)IKE阶段1
名称: VPN,用于标识作用,接口模式下,将用于VPN虚拟接口的名字
远程网关: 静态IP地址
IP地址: 对端防火墙的外网接口的IP地址100.1.1.2
本地接口: 防火墙与对端设备建立VPN所使用的接口,通常为外网接口.
认证方式: RSA签名
书名称:fw2vpn
启动IPsec接口模式:勾选,
其他参数适用默认参数,参数细节请参考《阶段1参数》一节
4)阶段2
a.菜单:虚拟专网--IPSEC--自动交换秘钥,点击“创建阶段1”
名称:阶段2 的名字, vpn2
阶段1: 该阶段2 关联的阶段1.
b、点击, 弹出高级参数选项。
勾选弹出选项中的“保持存活” 其他默认。
c.点击ok。
5)配置路由
目的IP/子网掩码: 对方防火墙所保护的子网 ,
设备: 配置VPN所生成的接口。
6)配置策略
进入 防火墙--策略--策略, 点击 “新建” 按如下方式创建策略,。
通可以该策略对两端2个子网之间的访问进行控制,UTM等,
策略如下:
策略1: 允许本地的192.168.1.0网段,访问对端的192.168.0.0网段
策略2: 允许对端的192.168.0.0网段,访问本端的192.168.1.0网段
五、检查配置结果
查看VPN监视器,观察状态: 虚拟专网--监视器--IPsec检测。
ping测试,2个内网可以相互访问。
Ⅱ IPSec VPN排错
一、常见故障原因
常见的协商失败问题:
1.预共享密钥不一致;
2.加密算法或认证算法参数不一致;
3.阶段二中的快速选择器两端不匹配;
4.策略配置或顺序错误;
排错命令:
RG-WALL #diagnose debug enable
RG-WALL #diagnose debug application ike -1
有多个网关时,过滤后观察 ike的协商过程:
diagnose vpn ike log-filter dst-addr4 <对端网关的IP地址>
diagnose vpn ike log-filter src-addr4 <本地网关的IP地址>
diagnose vpn ike log-filter dst-port <IKE协商的对端端口,比如500>
diagnose vpn ike log-filter src-port <IKE协商的本地端口,比如500>
常见故障分析:
1.加密、认证算法不一致:主要由第一阶段认证算法、加密算法不一致导致;请检查建立ipsec双方设备上的认证、加密算法是否一致;
抓包结果:
排查位置:主要检查下图红框中的加密、认证算法双方是否匹配
2.DH算法不一致:两端DH算法不一致
抓包结果
排查位置:主要检查下图红框中的DH组双方是否一致(常见dh组抓包显示:DH group 1 (768-bit)、DH group 2 (1024-bit)、DH group 5 (1536-bit))
3.预共享秘钥不一致:
抓包结果:
ike 0:mobile:5140: responder: main mode get 3rd message...
ike 0:mobile:5140: dec A5BF9FFD3412F8CD24C7C54635FA869705100201000000000000005CF50FA936BEFB6D99E76CD6FAA679D77858160C306FE83B03F7DB8CFB680BB864AB42391BA3C5A5ADCDFB2D6CF1CEEC0A6AC0BAC12DFEABEC25E534580E6EFF32
ike 0:mobile:5140: probable pre-shared secret mismatch
排查位置:检查如下图红框位置
域共享秘钥正常抓包显示:
ike 0:mobile:5122: responder: main mode get 3rd message...
ike 0:mobile:5122: dec 0AB1AD6CF994A06023E867B8EBB63F4505100201000000000000005C0800000C01000000C0A8FE020B000018608B589D57388681EC1286989FB775C88FEB66D20000001C00000001011060020AB1AD6CF994A06023E867B8EBB63F45
ike 0:mobile:5122: received notify type 24578
ike 0:mobile:5122: PSK authentication succeeded
ike 0:mobile:5122: authentication OK
4.第一阶段正常协商提示
ike 0:0ab1ad6cf994a060/0000000000000000:5122: negotiation result
ike 0:0ab1ad6cf994a060/0000000000000000:5122: proposal id = 1:
ike 0:0ab1ad6cf994a060/0000000000000000:5122: protocol id = ISAKMP:
ike 0:0ab1ad6cf994a060/0000000000000000:5122: trans_id = KEY_IKE.
ike 0:0ab1ad6cf994a060/0000000000000000:5122: encapsulation = IKE/none
ike 0:0ab1ad6cf994a060/0000000000000000:5122: type=OAKLEY_ENCRYPT_ALG, val=AES_CBC.
ike 0:0ab1ad6cf994a060/0000000000000000:5122: type=OAKLEY_HASH_ALG, val=SHA.
ike 0:0ab1ad6cf994a060/0000000000000000:5122: type=AUTH_METHOD, val=PRESHARED_KEY_XAUTH_I.
ike 0:0ab1ad6cf994a060/0000000000000000:5122: type=OAKLEY_GROUP, val=1536.
ike 0:0ab1ad6cf994a060/0000000000000000:5122: ISAKMP SA lifetime=28800
ike 0:0ab1ad6cf994a060/0000000000000000:5122: SA proposal chosen, matched gateway mobile
5.第二阶段快速选择器不匹配
抓包显示
排查位置:请确认下图红框中双方网段设置是否匹配
其他常用命令
1.有多个网关时,过滤后观察ike的协商过程:
diagnose vpn ike log-filter dst-addr4 <对端网关的IP地址>
diagnose vpn ike log-filter src-addr4 <本地网关的IP地址>
diagnose vpn ike log-filter dst-port <IKE协商的对端端口,比如500>
diagnose vpn ike log-filter src-port <IKE协商的本地端口,比如500>
2.查看VPN通道命令:diagnose vpn tunnel list
RG-WALL # diagnose vpn tunnel list
list all ipsec tunnel in vd 0
------------------------------------------------------
name=mobile_0 ver=1 serial=4 192.168.118.25:4500->192.168.118.151:10954 lgwy=static tun=intf mode=dial_inst bound_if=5
parent=mobile index=0
proxyid_num=1 child_num=0 refcnt=7 ilast=3 olast=3
stat: rxp=10 txp=0 rxb=1280 txb=0
dpd: mode=active on=1 idle=5000ms retry=3 count=0 seqno=22
natt: mode=silent draft=32 interval=10 remote_port=10954
proxyid=mobile proto=0 sa=1 ref=2 auto_negotiate=0 serial=1
src: 0:0.0.0.0-255.255.255.255:0
dst: 0:10.0.0.10-10.0.0.10:0
SA: ref=4 options=00000006 type=00 soft=0 mtu=1280 expire=1671 replaywin=1024 seqno=1
life: type=01 bytes=0/0 timeout=1790/1800
dec: spi=b2ad0f87 esp=aes key=16 046a1e666f7ae7b2aaf6197a13ea5818
ah=sha1 key=20 6f607decd4416c203911070d960cd5f26e2061bf
enc: spi=dfe610a1 esp=aes key=16 453e333a15416cfdb6ab95d324fa3ffe
ah=sha1 key=20 2a2d1cee5da51a1503ddb18599a265d5dce51e5a
dec:pkts/bytes=10/608, enc:pkts/bytes=0/0
npu_flag=02 npu_rgwy=192.168.118.151 npu_lgwy=192.168.118.25 npu_selid=2
------------------------------------------------------
name=mobile ver=1 serial=1 192.168.118.25:0->0.0.0.0:0 lgwy=static tun=intf mode=dialup bound_if=5
proxyid_num=0 child_num=1 refcnt=5 ilast=29 olast=29
stat: rxp=0 txp=0 rxb=0 txb=0