测试环境:RouterOS 6.49.8
创建根证书
这里命名为 VPN_IKEv2_CA,有效期设置为 3650 天。
勾选 key cert. sign 和 crl sign 后点击 Apply。
然后点击旁边的 Sign 按钮
直接点击 Start 完成自签。
给服务端签发证书
这里命名为 VPN_IKEv2_SERVIDOR,Subject Alt. Name 默认选 IP 并填写 IKEv2 准备对外提供连接的IP地址。
勾选 tls server 后点击 Apply。然后直接点击旁边的 Sign 按钮,选择刚才建好的 CA 根证书,点击 Start 开始签发。
给客户端签发证书
这里命名为 VPN_IKEv2_CLIENT。
勾选 tls client 后点击 Apply。同样点击旁边的 Sign 按钮,选择刚才建好的 CA 根证书,点击 Start 开始签发。
导出证书
客户端连接的话需要用到 CA 证书和客户端证书。
导出 CA 证书
导出客户端证书(这里需要注意,要设置8位数的密码)
配置 IPSec
IP Pool
首先创建一个地址池。
Profiles
这里命名为 ikev2-profile,只需修改前面的加密方式。
Proposals
这里命名为 ikev2-proposal,生存时间适当加长,PFS Group 选 none。
Groups
这里命名为 ikev2-group。
Policies
勾选 Template 后选择上面创建的 Group。
Action 栏目中修改 Proposal 为我们刚创建的即可。
Peers
这里创建了两个 peer。
Mode Configs
这里命名为 ikev2-cfg。
Identities
证书方式
此配置适用于在IOS、Android 或者是 Windows 上配置证书连接。
在 iPhone 中的配置示例,前提是先将 VPN_IKEv2_CA.crt 和 VPN_IKEv2_CLIENT.p12 证书下载后安装。
需要注意的是,一张 VPN_IKEv2_CLIENT 证书即使导入到多个客户端也无法同时连接使用,一个证书只能对应一个在线的客户端。
预共享密钥(PSK)方式
在小米手机中的配置示例。
Firewall
这里用到了 UDP 的 500 和 4500 端口,记得放开。之前添加了 Pool 的 IP 段记得做 SNAT,INPUT 和 Forward 也放行下。
/ip firewall filter
add action=accept chain=input ipsec-policy=in,ipsec src-address=\
192.168.123.0/24
add action=accept chain=forward ipsec-policy=in,ipsec src-address=\
192.168.123.0/24
add action=accept chain=input dst-port=500,4500 protocol=udp
/ip firewall nat
add action=masquerade chain=srcnat src-address=192.168.123.0/24
报错
identity not found for peer
这个通常都是由客户端配置参数填写错误导致的,明显的特征是点击连接后很快断开,客户端的配置与 Identities 中的配置不匹配( 存在 Identities,但客户端配置存在某些配置参数的错误)。
An unexpected error occurred
客户端连接时弹出连接错误提示,这个其实跟前面的错误类似。( 不存在 Identities,也因此客户端配置无法生效)
no suitable proposal found
这个还是客户端的配置问题,多半都是类型选择错误。例如:在 Identities 配置了 IKEv2/IPSec PSK ,但是安卓手机上选的类型为 IPSec Xauth PSK。
l2tp/ipsec 无法使用
出现这种错误很大可能就是改动或者删除了默认配置导致的。
failed to pre-process ph2 packet
最简单的方法是直接清除 IKEv2/IPSec 配置并还原 IPSec 至默认配置,可参考 l2tp/ipsec 正常使用的设备配置。
/ip ipsec policy
set 0 dst-address=0.0.0.0/0 src-address=0.0.0.0/0
评论区