pfSense book之IKEv2服务器配置示例

本文摘要配置 IKEv2 移动客户端 VPN(pfSense)移动客户端的服务器配置包含以下几个主要组件:为 VPN 创建证书结构配置 IPsec 移动客户端设置创建阶段 1 和阶段 2添加 IPsec 防火墙规则创建用户凭据IPsec 连接测试IPsec 故障排除IPsec 日志说明一、创建 IKEv2 证书结构1. 创建证书颁发机构(CA)若证书管理器中没有合适的 CA,首先创建一个:导航到 系统 →...

配置 IKEv2 移动客户端 VPN(pfSense)

移动客户端的服务器配置包含以下几个主要组件:

  • 为 VPN 创建证书结构
  • 配置 IPsec 移动客户端设置
  • 创建阶段 1 和阶段 2
  • 添加 IPsec 防火墙规则
  • 创建用户凭据
  • IPsec 连接测试
  • IPsec 故障排除
  • IPsec 日志说明

一、创建 IKEv2 证书结构

1. 创建证书颁发机构(CA)

若证书管理器中没有合适的 CA,首先创建一个:

  • 导航到 系统 → 证书管理 → CAS 选项卡
  • 单击 添加 以创建 CA
  • 证书来源选 创建一个内部证书颁发机构
  • 按需要填写名称、组织等信息
  • 单击 保存

2. 创建服务器证书

注意:请严格按照步骤操作,任何不正确的部分都可能导致部分或全部客户端无法连接。
  • 导航到 系统 → 证书管理 → 证书选项卡
  • 单击 添加 以创建新证书
  • 证书来源选 创建内部证书
  • 输入描述名称,例如 IKEv2 Server
  • 选择上一步创建的证书颁发机构
  • 设置密钥长度、摘要算法和有效期
  • 选择证书类型为 服务器证书
  • 在相应字段填写地区、公司等信息(可从 CA 复制后原样保留)
  • 通用名称:输入 DNS 中该防火墙的主机名。若客户端通过 IP 地址连接,则填入 WAN IP 地址
  • 单击 添加替代名称,选择 FQDN主机名,再次输入防火墙主机名
  • 再次单击 添加替代名称,选择 IP 地址,输入防火墙的 WAN IP 地址
  • 根据需要继续添加客户端可能连接的主机名或 IP
  • 单击 保存

二、配置 IPsec 移动客户端

首先确保 IPsec 已启用:

  • 导航到 VPN → IPsec
  • 勾选 启用 IPsec
  • 单击 保存

然后启用移动客户端支持:

  1. 导航到 VPN → IPsec → 移动客户端选项卡
  2. 勾选 启用 IPsec 移动客户端支持

启用 IPsec 移动客户端支持

  1. 用户认证 设为 本地数据库(若使用 EAP-RADIUS 则选择相应的 RADIUS 服务器)

移动客户端认证

  1. 配置 客户端推送设置

    • 虚拟地址池:为客户端分配 IP 地址的池,例如 10.3.200.0/24
    • 虚拟 IPv6 地址池(可选)
    • 网络列表:勾选后,客户端仅将阶段 2 定义的网络流量发送至隧道;未勾选则所有流量(含 Internet)都经隧道,但并非所有客户端都遵循此设置。本示例勾选。
    • 保存 Xauth 密码:仅对 Cisco 系客户端有用,本示例使用 IKEv2,可忽略。
    • DNS 默认域:填入默认域名后缀,如 example.com
    • 拆分 DNS:可输入以空格分隔的域名列表,这些域名的 DNS 请求将发往 VPN 提供的 DNS 服务器。该示例中已输入 example.com example.org
    • DNS 服务器:提供内部 DNS 服务器 IP,如 10.3.0.1。若客户端通过 VPN 路由所有 Internet 流量,请确保提供 DNS 且未启用拆分 DNS。
    • WINS 服务器:很少使用,保持禁用。
    • Phase 2 PFS 组:不建议在此统一覆盖,保持未勾选。
    • 登录横幅:仅适用于 Xauth 客户端,保持未勾选。

设置完成后的效果如下:

移动客户端推送设置


三、创建阶段 1 和阶段 2

  1. 单击 保存,pfSense 会提示尚无阶段 1 配置。
  2. 点击 创建 Phase 1 新建条目。

创建阶段 1 提示

阶段 1 配置

切换到 隧道 选项卡,设置:

  • 密钥交换版本IKEv2
  • Internet 协议IPv4
  • 接口WAN
  • 描述:例如 Mobile IPsec
  • 认证方法EAP-MSCHAPv2
  • 我的标识符:选择 可分辨名称,输入防火墙主机名(与服务器证书一致),如 VPN.example.com
  • 对端标识符Any
  • 我的证书:选择前面创建的服务器证书
  • 加密算法:设置为 3DES(若没有 iOS/OS X 设备可用 AES 256)
  • 哈希算法:设置为 SHA1(无 iOS/OS X 设备可用 SHA256)
  • DH 组:必须为 2 (1024 bit)
  • 有效期28800
  • 其他选项保持默认(不勾选“仅响应”,启用 MOBIKE)

移动客户端阶段 1

  1. 单击 保存
  2. 展开阶段 2 列表,单击 添加 新建条目。

阶段 2 配置

  • 模式IPv4 隧道
  • 本地网络:选择 LAN 子网或其他本地网络。若要隧道承载所有流量,可选 0.0.0.0 掩码 0
  • NAT/BINATNone
  • 协议ESP
  • 加密算法:选中 AES(自动密钥长度),若有 iOS/OS X 客户端也勾选 3DES
  • 哈希算法SHA1SHA256
  • PFS 密钥组关闭
  • 有效期3600

移动客户端阶段 2

  1. 单击 保存,再单击 应用更改

应用更改


四、创建 IPsec 移动用户

  • 导航到 VPN → IPsec → 预共享密钥选项卡
  • 单击 添加新密钥
  • 配置以下内容:

    • 标识符:客户端的用户名,例如 user@example.com
    • 加密类型EAP
    • 预共享密钥:客户端的密码,如 abc123
  • 单击 保存
  • 为其他用户重复上述操作

移动 IPsec 用户


五、添加 IPsec 防火墙规则

防火墙 → 规则策略 → IPsec 选项卡中添加允许规则,源 IP 为移动客户端地址池(如 10.3.200.0/24),目标根据需要设置为 LAN 子网或任意。


六、客户端配置

1. Windows IKEv2 客户端配置

导入 CA 证书到客户端 PC

  1. 从 pfSense 导出 CA 证书(系统 → 证书管理 → CAS → 导出 CA 证书),下载到本地。
  2. 双击 CA 文件(如 VPNCA.crt),点击 安装证书

证书属性

  1. 选择 本地计算机

证书导入向导 - 存储位置

  1. 单击 下一步,出现 UAC 提示时点击
  2. 选择 将所有证书都放入下列存储

证书导入向导 - 浏览存储

  1. 单击 浏览,选择 受信任的根证书颁发机构

选择证书存储

  1. 单击 确定完成

完成证书导入向导

设置 VPN 连接

  1. 打开 网络和共享中心,点击 设置新的连接或网络连接到工作区使用我的 Internet 连接 (VPN)
  2. Internet 地址 中输入防火墙的主机名或 IP(必须与服务器证书通用名称或备用名称中的内容一致)。

Windows IKEv2 VPN 连接设置

  1. 输入目标名称,单击 创建

输入目标名称

  1. 在网络连接列表中找到刚创建的 VPN,右键 → 属性安全 选项卡。

    • VPN 类型IKEv2
    • 数据加密需要加密(如果服务器拒绝将断开连接)
    • 身份验证使用可扩展的身份验证协议 (EAP),选择 Microsoft: 安全密码 (EAP-MSCHAP v2)(启用加密)
    • 单击 确定

Windows IKEv2 VPN 连接属性

现在 VPN 连接即可使用。(注:在 pfSense 2.2.4+ 上正确配置 CA 和服务器证书后,一般无需禁用 EKU 检查)

2. iOS 11 IKEv2 客户端配置

导入 CA 证书

  1. 将 CA 证书(不含私钥)通过邮件发送到 iPhone 可访问的邮箱。
  2. 打开邮件,点击附件安装证书。

iOS 邮件客户端接收 CA 证书

  1. 点击 安装

iOS 安装证书

  1. 出现警告提示后,再次点击右上角的 安装

iOS 证书安装警告

  1. 最后点击 安装 完成确认。

iOS 证书安装确认

设置 VPN 连接

  • 进入 设置 → 通用 → VPN → 添加 VPN 配置
  • 类型IKEv2
  • 描述:如 ExampleCo VPN
  • 服务器:防火墙主机名或 IP
  • 远程 ID:再次输入防火墙主机名(必须与证书通用名称或 SAN 条目匹配)
  • 本地 ID:留空
  • 用户鉴定用户名
  • 输入用户名和密码(用户名与预共享密钥选项卡中的标识符一致)
  • 点击 完成

iOS IKEv2 客户端设置

连接时,在 VPN 列表中选择对应条目,滑动开关即可。

iOS VPN 列表


七、测试 IPsec 连接

最简单的测试是从本地 LAN ping 远程 LAN 中的设备。

方法一:GUI Ping 工具

  • 系统诊断 → Ping
  • 主机字段输入远程子网 IP(如 10.5.0.1
  • 源地址选择本地 LAN 接口(如 LAN IP)
  • 单击 Ping

方法二:Shell 命令

ping -S <本地LAN IP> <远程LAN IP>

例如从防火墙 A 的控制台执行:

ping -S 10.3.0.1 10.5.0.1

若隧道正常,则会收到回应。初次连接时可能因协商丢失几个包,可多试几次。


八、IPsec 故障排除

1. 调整日志级别

  • 导航到 VPN → IPsec → 高级设置
  • IKE SAIKE Child SAConfiguration Backend 设为 诊断,其余设为 控制
  • 保存,然后分析日志

2. 常见问题

  • 隧道无法建立:检查服务是否运行、防火墙规则是否允许 IPsec 流量(ESP、UDP 500/4500),检查双方配置(DH 组、加密算法、子网掩码等)是否完全匹配。
  • 隧道建立但无流量:检查 IPsec 接口防火墙规则,确保允许所需的协议。也可能是路由问题或设备默认网关不正确。
  • 部分主机不通:可能是子网掩码错误、主机防火墙拦截或设备路由异常。
  • 连接挂断:尝试在 VPN → IPsec → 高级设置 中启用 MSS 限制,从 1400 开始逐步调整。
  • DPD 导致频繁断开:可能是 CPU 过载,考虑关闭 DPD 或升级硬件。

详细的日志分析请参考 IPsec 日志章节。


九、IPsec 日志说明重点

成功建立隧道时,日志中会出现:

IKE_SA … established between …
CHILD_SA … established with SPIs …

失败时常见的关键信息:

  • Aggressive/Main 模式不匹配:响应方日志显示 “Aggressive Mode PSK disabled”。
  • 标识符不匹配:响应方 “no peer config found”。
  • 预共享密钥错误:日志出现 “invalid HASH_V1 … decryption failed”。
  • 加密/哈希算法不匹配:出现 “no proposal found” 并列出收到的与配置的算法。
  • 阶段 2 网络不匹配:提示 “no matching CHILD_SA config found”。
  • PFS 组不匹配:提示 “no acceptable DIFFIE_HELLMAN_GROUP found”。

更多细节可参考上文中的失败示例日志。


IPsec 术语速览

  • IKE:互联网密钥交换,分为 IKEv1 和 IKEv2(推荐)。
  • ISAKMP SA:阶段 1 建立的安全关联,用于保护后续通信。
  • 阶段 1:建立端点之间的安全信道,进行身份认证。
  • 阶段 2:协商实际传输数据的加密方式和子网。

本文档已过滤无关图标,保留所有有实际意义的截图并补全描述。

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~