FortiClient 使用证书认证连接 IPSec
FortiClient 使用证书认证连接 IPSec
网络需求
某公司内部有一台 OA 服务器,在外移动办公的工作人员需要通过 vpn, 拨入到公司内网来对内网服 OA 服务器进行访问,采用证书认证的方式。
网络拓扑

配置步骤
使用 FortiAuthenticator 为 FGT - BJ 和终端颁发证书
FortiAuthenticator 可以做为证书服务器,RootCA 是已创建好的根证书,这里使用 RootCA 为 FortiGate 签发证书。(也可以使用其他证书服务器)
1.为 FGT - BJ 颁发证书
为 FGT - BJ 创建证书。选择“End Entities”-->"User",点击“Create New”,输入证书相关信息,并点击完成。 

点击“Export Key and Cert”导出 FGTBJ 证书的私钥和公钥。

输入一个密码保护私钥

下载证书

2.为终端颁发证书
为终端颁发证书和上述步骤是一样的。


FortiGate 导入证书
将根证书 RootCA.crt 和证书 FGTBJ.p12 导入到 FGT_BJ。
在数字证书认证中,通信双方使用 CA 证书进行数字证书合法性验证,双方各有自己的公钥(网络上传输)和私钥(本地存储)。发送方对报文进行 Hash 计算,并用自己的私钥对报文计算结果进行加密,生成数字签名。接收方使用发送方的公钥对数字签名进行解密,并对报文进行 Hash 计算,判断计算结果与解密后的结果是否相同。如果相同,则认证通过;否则认证失败。

导入 CA 证书
选择“系统管理”-->“证书”,点击“Create/Import”,选择 CA 证书。


查看导入的 CA 证书

导入本地证书
选择“系统管理”-->“证书”,点击“Create/Import”,选择“证书”。

点击导入证书

输入证书的密码,点击“创建”

提示证书已成功导入

查看导入的本地证书

终端导入证书
将根证书 RootCA.crt 和证书 user1.p12 导入到终端。

导入根证书 RootCA.crt
双击 RootCA.crt,点击“安装证书”。


证书存入“受信任的根证书颁发机构”


导入个人证书 user1.p12
双击 user1.p12,然后安装证书

输入证书的密码

证书存入“个人”


IPSEC VPN 配置步骤
1.基本配置
配置接口 IP 和路由


2.创建用户
选择“用户与认证”-->“设置用户”,点击“新建”。

选择“本地用户”,点击“下一步”。

输入用户名和密码,点击“下一步”。

可根据需求选择启用。这里不启用,点击“下一步”。

点击“提交”。

完成用户创建。

3.创建用户组
选择“用户与认证”-->“用户组”,点击“新建”。

输入名称,即组名,并将用户加入用户组,点击“确认”。

完成用户组创建。

4.创建子网

5.配置 IPSEC VPN
选择“VPN”-->“IPsec 隧道”,点击“新建”,选择“IPsec 隧道”。

根据“VPN 创建向导”进行 VPN 模板配置,输入名称,选择”远程接“-->"基于客户端"-->“FortiClient”,并点击下一步。

选择对外的接口,用户组,证书名是本地的证书 FGTBJ,对端证书 CA 是导入的 RootCA,即 CA_Cert_1,并点击下一步。

输入内网接口,允许访问的本地地址段,客户端拨号后获取的地址范围,并点击下一步。

保存密码,FortiClient 第一次拨号成功后,FortiClient 会显示“保存密码”的选项,默认勾选。
自动连接,FortiClient 第一次拨号成功后,FortiClient 会显示“自动连接”的选项,该功能是运行 FortiClient 会拨入该 IPSEC VPN。
保持存活,FortiClient 第一次拨号成功后,FortiClient 会显示“保持连接”的选项,该功能是 IPSEC VPN 由于网络原因中断后,会自动重拨。
免费的 FortiClient 版本不支持自动连接和保持连接,需要完整版的 FortiClient,需要购买 EMS license。

VPN 创建向导提示即将创建的内容,然后点击完成。

VPN 创建成功。

查看 IPSEC 向导创建的配置
通过“VPN 创建向导”可以很方便的配置 VPN,但我们需要知道向导具体做了哪些配置。
1.创建地址对象和地址对象组。

2.创建 PKI 对象
config user peer
edit "ClientDial_peer"
set ca "CA_Cert_1"
next
end3.创建 IPSEC VPN

对应的命令行
config vpn ipsec phase1-interface
edit "ClientDial"
set type dynamic
set interface "port2"
set authmethod signature
set mode aggressive
set net-device disable
set mode-cfg enable
set proposal aes128-sha256 aes256-sha256 aes128-sha1 aes256-sha1
set comments "VPN: ClientDial (Created by VPN wizard)"
set wizard-type dialup-forticlient
set xauthtype auto
set authusrgrp "IPSEC_VPN_Group"
set certificate "FGTBJ"
set peer "ClientDial_peer"
set ipv4-start-ip 172.16.100.100
set ipv4-end-ip 172.16.100.200
set dns-mode auto
set ipv4-split-include "ClientDial_split"
set save-password enable
next
end
config vpn ipsec phase2-interface
edit "ClientDial"
set phase1name "ClientDial"
set proposal aes128-sha1 aes256-sha1 aes128-sha256 aes256-sha256 aes128gcm aes256gcm chacha20poly1305
set comments "VPN: ClientDial (Created by VPN wizard)"
next
end4.创建策略

配置 FortClient
选择“Remote Access”,点击“配置 VPN”。

选择 IPSEC VPN,输入连接名,远程网关,个人证书,以及用户名,然后点击“保存”。

在”高级设置“有更多的选项,如 ike 版本,IKE 阶段一和阶段二的加密集等,可以根据 FortiGate 的设置做对应的修改。


VPN 配置完成

FortClient 拨号测试
在 FortiClient 中输入账号密码,点击“连接”,FortiClient 拨号成功。

查看终端路由表,192.168.0.0/24 指向 IPSEC VPN,并能成功访问 OA Server。


FortiGate 查看 Client 的连接。

点击“中断连接”,FortiClient 就会显示“保存密码”选项。
