侧边栏壁纸
博主头像
liveJQ博主等级

沒有乐趣,何来开始

  • 累计撰写 163 篇文章
  • 累计创建 66 个标签
  • 累计收到 2 条评论

MikroTik RouterOS 部署 IKEv2/IPSec VPN

liveJQ
2023-04-23 / 0 评论 / 0 点赞 / 356 阅读 / 1,831 字

测试环境:RouterOS 6.49.8

创建根证书

这里命名为 VPN_IKEv2_CA,有效期设置为 3650 天。

20230423_create_ca.png

勾选 key cert. sign 和 crl sign 后点击 Apply。
20230423_create_ca_02.png

然后点击旁边的 Sign 按钮
20230423_ca_sign.png

直接点击 Start 完成自签。
20230423_ca_sign_x.png

给服务端签发证书

这里命名为 VPN_IKEv2_SERVIDOR,Subject Alt. Name 默认选 IP 并填写 IKEv2 准备对外提供连接的IP地址。
20230423_create_servidor.png

勾选 tls server 后点击 Apply。然后直接点击旁边的 Sign 按钮,选择刚才建好的 CA 根证书,点击 Start 开始签发。
20230423_servidor_sign.png

给客户端签发证书

这里命名为 VPN_IKEv2_CLIENT。
20230423_create_client.png

勾选 tls client 后点击 Apply。同样点击旁边的 Sign 按钮,选择刚才建好的 CA 根证书,点击 Start 开始签发。
20230423_client_sign.png

导出证书

客户端连接的话需要用到 CA 证书和客户端证书。
20230423_export_ca.png

导出 CA 证书
20230423_export_ca_done.png

导出客户端证书(这里需要注意,要设置8位数的密码)
20230423_export_client.png

配置 IPSec

IP Pool

首先创建一个地址池。
20230423_create_pool.png

Profiles

这里命名为 ikev2-profile,只需修改前面的加密方式。
20230423_ipsec_profile.png

Proposals

这里命名为 ikev2-proposal,生存时间适当加长,PFS Group 选 none。
20230423_ipsec_proposal.png

Groups

这里命名为 ikev2-group。
20230423_ipsec_group.png

Policies

勾选 Template 后选择上面创建的 Group。
20230423_ipsec_policy_general.png

Action 栏目中修改 Proposal 为我们刚创建的即可。
20230423_ipsec_policy_action.png

Peers

这里创建了两个 peer。
20230423_ipsec_peer.png

Mode Configs

这里命名为 ikev2-cfg。
20230423_ipsec_mode_config.png

Identities

证书方式

此配置适用于在IOS、Android 或者是 Windows 上配置证书连接。
20230423_ipsec_identity_crt_all_clients.png

在 iPhone 中的配置示例,前提是先将 VPN_IKEv2_CA.crt 和 VPN_IKEv2_CLIENT.p12 证书下载后安装。
20230423_ios_ikev2_configuration.png

需要注意的是,一张 VPN_IKEv2_CLIENT 证书即使导入到多个客户端也无法同时连接使用,一个证书只能对应一个在线的客户端。

预共享密钥(PSK)方式

20230423_android_ikev2_ipsec_psk.png

在小米手机中的配置示例。
20230423_android_ikev2_ipsec_psk_configuration.png

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

相关资料

  1. L2TP over IPSec 于 Log 出现 failed to pre-process ph2 packet
  2. ESP(IPSec Encapsulating Security Payload)
  3. ikev2/RSA vpn server per clients windows
0

评论区