多类型的设备可以使用IPsec连接到pfSense,最引人注目的是Android(手机和平板电脑)和iOSiPhoneiPadiPod Touch等)设备。本文档涵盖了移动设备最常用的设置,包括IPsec使用认证和相互预共享密钥。

本文的设置基于pfsense2.34,已经过测试并在各种AndroidiOS设备上正常工作。

IPsec服务器设置

pfSense防火墙端进行设置

Mobile Clients

· 导航到 ××× > IPsecMobile Clients选项卡

· 设置 Enable IPsec Mobile Client Support(启用IPsec移动客户端支持)

· 选中 Provide a virtual IP address to clients(为客户端提供虚拟IP地址)

· 在框中输入未使用的子网,选择子网掩码

· 设置任何其他所需的选项

· 单击Save(保存)

· 单击Apply Changes(应用更改)

· 单击Create Phase1 (如果出现)

Phase 1 设置

· 导航到 ××× > IPsec

· 在列表中找到移动Phase 1

· 单击 spacer.gif 编辑移动Phase 1

· 输入以下设置:

· Authentication methodMutual PSK + Xauth

· Negotiation modeaggressive

· My identifierMy IP address

· Peer identfier User Distinguished Name***users@example.com

· Pre-Shared Key aaabbbccc (使用更长并且随意的密码)

· Policy Generation Unique

· Proposal Checking Strict

· Encryption AlgorithmAES 128

· Hash Algorithm SHA1

· DH Key Group 2

· Lifetime 86400

· NAT Traversal Force

· 单击Save

Phase 2 设置

· 单击 spacer.gif 显示Phase 2记录

· 单击 spacer.gif 添加Phase 2

· 输入以下设置:

· Mode Tunnel

· Local Network (本地网络,例如:LAN0.0.0.0/0通过×××发送所有类容)

· Protocol ESP

· Encryption Algorithms AES 128 *only*

· Hash Algorithms SHA1 *only*

· PFS key group off

· Lifetime 28800

· 如果有必要,为其他本地网络添加其他phase 2条目

· 单击 Save

· 单击Apply Changes

用户设置

· 导航到System > User Manager

· 添加用户,给用户授予User  ××× IPsec Xauth Dialin权限,或将其添加到具有此权限的组中。

· 请注意,对于认证用户,使用的密码是用户的密码,而不是IPsec预共享密钥”字段。 这用于非认证的IPsec

防火墙规则

不要忘了添加防火墙规则以允许客户端传入的流量

· 导航到Firewall > RulesIPsec选项卡

· 添加与许的流量相匹配的规则,或添加规则以通过任何协议/任何源/任何目的地并允许所有内容。

IPsec SA 偏好

· 导航到System > AdvancedMiscellaneous 选项卡

· 取消选中 Prefer Old IPsec SA

手机设置 (安卓Android)

注意:这些设置不存在于所有Android设备上。 有关更多信息,请参阅Android ×××连接。

· 进入设置, 网络 & 无线,××× 设置,高级IPsec ×××s

· 点菜单按钮,然后添加。

· 连接模版: PSK v1 (AES, xauth, aggressive)

· ×××名称:pfSense ××× (或其他描述)

· ××× 服务器:IP地址或服务器

· 预授权密钥类型: text

· 预预授权密钥: Phase 1上设置的PSK

· 标示符类型:User FQDN

· 标示符: ***users@example.com

· 用户名: xauth username

· 密码: xauth password

· 内部子网IPPhase 2上设置的子网

· 完成

手机设置 (苹果iOS)

· 进入手机>设置 > ×××

· 添加×××配置 

· 选择IPsec

· 描述: pfSense ××× (或其他描述)

· 服务器:IP地址或服务器名称

· 帐户: 认证的用户名

· 密码:认证密码 (或留空白以供每次提示)

· 群组名称:***users@example.com

· 密钥:Phase 1上设置的PSK

故障排查

默认情况下,iOS将通过×××隧道传送所有流量,包括到互联网的流量。 如果互联网站点连接无法访问,那就必须将DNS服务器推送到客户端。

上述原因是4G提供商可能会给移动设备只能从其网络访问的DNS服务器。 一旦连接到×××DNS服务器将通过×××而不是3G网络访问,造成DNS查询被丢弃。 必须提供本地/公共DNS服务器才能解决这个问题。

 


2017-11-29