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/BINAT:None
  • 协议:ESP
  • 加密算法:选中 AES(自动密钥长度),若有 iOS/OS X 客户端也勾选 3DES。
  • 哈希算法:SHA1 和 SHA256
  • 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 SA、IKE Child SA、Configuration 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:协商实际传输数据的加密方式和子网。

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

觉得内容不错?我要

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