好吧,我在这里向你展示一个移动IPSec道路战士配置,实际上是工作的,并解释所有的问题,我让它工作和我做了什么来修复它们。我还将解释一些讨厌的选项实际上会做什么,以及为什么改变它们可能是或可能不是一个好主意。
一种工作的pfSense-Road-Warrior-IPSec配置
让我们从一步一步地运行配置开始。(本指南适用于pfSense 2.3+。)有五个基本步骤。启用Mobile配置,然后是阶段配置,然后是阶段2配置。然后,我们需要创建并允许用户连接客户机,然后配置客户机。我们将详细讨论每一个。
步骤1:开启IPSec VPN移动配置
让我们的pfSense Road Warrior配置工作的第一步是启用移动客户端支持IPSec(它启用IKE扩展)。
在“VPN - > IPSec”下单击“移动客户端”。
在“启用IPSec移动客户端支持”下艾克扩展选中“启用IPsec移动客户端支持”复选框。
在扩展身份验证框中,在用户身份验证选择“本地数据库”。如果你有一个远程radius服务器或另一个有用户的pfSense框,你可以在这里配置。在我们的示例中,我们只使用本地数据库。离开组身份验证设置为“无”。
在“客户端配置”对话框的下方虚拟地址池勾选复选框并输入子网。这是pfSense将给连接到您的VPN的移动客户端提供的IP地址子网。
注意:我在输入C类(/24)时遇到了麻烦。由于某种原因,车辆无法行驶。将此更改为其他(在我的情况下,我使用/27)流量开始路由。我认为这可能是一个pfSense错误。
勾选旁边的方框保存Xauth密码.这允许客户端设备在其设备上保存密码。如果你不勾选此选项,每次连接时都会提示输入密码,如果你想要更高的安全性,这可能没问题,但对大多数人来说肯定会很烦人。
继续在同一个框中,勾选旁边的框DNS默认域,然后输入内部网络的域名。在我的例子中,我使用域名.home,所以我只输入了“home”(不是前面的点)。你的域名可能是home.com,或者像geekpub.com这样的真实域名。
接下来,勾选旁边的方框DNS服务器输入DNS服务器的IP地址。在我的情况下,我想使用我的pfSense框的IP地址,因为我想传递互联网DNS名称到我的客户端在互联网上的实际域名。这将允许连接到我的VPN的客户端机器按名称访问我的内部服务器。例如,我的Plex媒体服务器是http://plex.home,所以你可以在浏览器中输入Plex /,并在连接到我的VPN时访问我的电影。
注意:如果你在pfSense上遇到DNS不为VPN用户工作的麻烦,这是因为你的DNS解析器或转发接口被设置为所有接口。进入DNS解析器或DNS转发器配置(Services - > DNS转发器或Services - > DNS解析器),并确保InterfacesSection设置为局域网.DNS在那之后应该正常工作。
步骤2:创建阶段1条目
IPSec的pfSense Road Warrior配置的下一步是创建阶段1表项。单击Mobile Client Configuration上的save后,应该会自动提示您创建这个。
如果因为某些原因你没有被提示,没有担心,只要去VPN - > IPSec,点击隧道,然后点击添加P1按钮。
在下面的一般信息框描述,输入该VPN的名称。这完全是可选的,但在以后查看状态屏幕时更容易知道连接是什么(特别是当你有多个vpn或客户端连接时)。我刚刚命名我的“家庭VPN”。其他都保持默认值。
在阶段1提议(认证)下,更改身份验证方法到“Mutual PSK + Xauth”。改变谈判方式“咄咄逼人”。改变同行的标识符,并输入组名。在配置客户端时,需要记住这个组名。下Pre-Shared关键输入一个键。在配置客户端时,还需要记住这个键。
注意:如果由于某些原因,一些字段或选项没有显示,只需滚动到底部并单击保存,然后再次打开阶段1隧道,他们应该在这里。在某些版本中,这是一个已知的错误。
在第一阶段提案(算法)下不做任何更改。默认设置应该适用于所有iOS、Android等设备。
在“高级选项”下,更改NAT遍历“力”。如果你不改变这一点,NAT防火墙后的客户端可能很难连接或根本无法连接。
步骤3:配置阶段2表项
IPSec的pfSsense Road Warrior配置的步骤3涉及创建阶段2条目。配置的第1阶段定义了隧道和交易密钥。第二阶段是修建交通隧道。
在“常规信息”框下,在本地网络将类型改为“Network”,并输入地址为“0.0.0.0/0”。这将告诉本地客户端将所有流量发送给你,甚至是网络流量。当客户端从互联网拉下一个网页或文件,它将穿越你的VPN。
如果你只希望客户端访问你的本地网络,并将所有其他流量发送到他们自己的ISP,那么你只需从下拉菜单中选择“局域网子网”,并将地址框空。这可能会导致DNS问题,因为您的客户端将首先轮询VPN DNS,所以如果您在第1步中这样做(例如谷歌DNS 8.8.8.8,而不是您自己的pfSense框),请确保您设置了合适的DNS。
继续在第二阶段提案(SA/密钥交换)下进行,将这里的所有内容保留为默认。应该没问题。
在高级配置下,也保持不变(空框)。
步骤4:创建用户并赋予他们权限
IPSec的pfSense Road Warrior配置的第4步是创建一个用户,并赋予他们连接的权限。强烈建议您不要使用您的pfSense管理帐户进行此连接,因为这将是一个巨大的安全风险,如果该帐户稍后被泄露。给自己一个最喜欢的,创建一个单独的VPN访问帐户,即使你是唯一连接到VPN的人。
进入“系统- >用户管理器”,单击“+添加”。
在下面输入用户名用户名,和密码下的暗语字段(两次)。不要更改组设置下的任何内容。
在“钥匙”下,不要输入任何东西。我们已经在隧道配置上设置了预共享密钥。
现在保存帐户,然后重新打开它。您将看到一个名为Effective Privileges的新部分。单击+Add按钮。
在“User Privileges”下,选择“User - VPN: IPSec xauth Dialin”,然后单击“Save”。就是这样。您已经创建了一个可以连接到您的VPN隧道的用户。
步骤5:配置客户端计算机和设备
最后一步是配置我们的客户机以连接到我们刚刚创建的VPN。我将给出两个例子,iOS和MacOS,但大多数其他客户端都同样简单。
配置iOS为pfSense Road Warrior IPSec

转到设置–>VPN–>添加VPN配置。选择类型IPSec。
下描述写些“连接到家里”之类的东西。
下服务器,输入DNS名称(完全限定的FQDN)或pfSense框的WAN IP地址。然后输入帐户的用户名和密码。离开使用证书设置为关闭。
在“组名”下输入组名称在上面的步骤2中使用。另外,输入秘密你在上面的第二步中输入的。这就是全部。你的iOS客户端现在应该可以连接到VPN了。以iPhone为例,但iPad的设置是完全相同的。
配置pfSense Road Warrior IPSec的MacOS
下接口选择“VPN”,然后在下面VPN类型选择“思科IPSec”。
下服务名称输入您想要调用此VPN连接的内容。我叫我的“连接到主页”,然后单击“创建”。
选择共享的秘密并输入你在第二步中选择的秘密,然后输入组名称您也在步骤2中选择了。
故障排除和最终想法
在这一点上,你的pfSense道路战士VPN应该像一个冠军一样工作。如果不是,你可能需要检查一些东西。
pfSense IPSec的防火墙规则和NAT
如果您关闭了防火墙规则的自动生成,那么您将需要打开到WAN IP地址的500和4500端口。你可以在System - > Advanced下检查。
此外,您可能需要更改您的NAT反射设置,这可以在相同的位置找到。改变端口转发的NAT反射模式“纯NAT”。
最后一个音符。一些isp阻塞了你家庭网络的入站端口。大多数块端口25和80。但一些最糟糕的isp也会封锁端口500和4500,专门防止你从VPNing到你的家庭网络。如果你的ISP这样做了,你应该抛弃他们,因为他们真的很糟糕。
另外,如果你正在为你的家寻找一个新的pfSense防火墙,我强烈推荐这个单位来自亚马逊。真的很好。我和我的几个朋友都有,而且效果很好!
看看WANBOX
manbext登录页极客酒吧现在出售WANBOX!它是运行开源或免费提供的防火墙包(如pfSense、OpenSense或Untangle)的完美设备防火墙!
买WANBOX在亚马逊,或在极客酒吧了解更多manbext登录页万用箱页面.
那我就完蛋了。它工作。我已经尝试了其中的10个,包括pfsense wiki上的那个。在这之前他们都没工作过。谢谢!
你好,我正在寻找一个配置,工作与IKEv2,与pfsense 2.3
始终启用的Apple Configurator用户配置文件。
任何可以找到的线索…PFsense论坛上的那个对我来说不起作用,因为证书不能用psw创建,如果没有输入psw,苹果配置器会拒绝证书。
谢谢
正在寻找我自己的IKEv2配置。我找到后会告诉你的!
也在寻找IKEv2。最好是兼容iOS 10+和Windows 10的。
尽管非常感谢作者,但至少现在我有一个与iOS相关的作品了。可能在Win10上工作,只是不知道怎么做。
您可以在windows 10上使用Shrewsoft VPN客户端。它和隧道配合得很好,而且是免费的。https://www.shrew.net/software
好的,谢谢,但是为什么不直接使用IKEv2呢?它是最新的,并且得到了pfSense和所有平台的支持。这将是一个干净干燥的解决方案。试过吗?没有运气吗?不可能的任务?
There’s a reason the title of this article is “…config that works.” If you can get it to work, I’d be happy to create another tutorial.
所以没人能找到一个好用的IKEv2 !!
谁开发了这些东西,为什么他们不制作一个教程!?!
并且苹果要求在每个安装了配置器的证书上安装psw,没有办法强制监督设备遵守商业安全,用户必须手动打开它!!
当你越狱的时候,一些调整可以强制VPN…但是我认为你不能同时有一个监控设备和越狱!!??
我已经使用pfsense 6年了,它从来没有工作过。仍然使用PPTP,但我会尝试你的配置,看看会发生什么。
谢谢
Shrewsoft VPN客户端为Windows工作吗?有人知道吗?
是的。我几乎每天都用它。
您目前是否使用iOS 10.x或Android进行连接?我两个都联系不上。
我几乎每天都与iOS连接。
谢谢你!你的指南实际上不同于之前的5。
你好,做得很好!!!
我像你一样配置我的Pfsense。当我在我的计算机上配置了我的ShrewSoft客户端,“隧道”是“启用”,但“安全关联”是“失败”。所以,我无法连接我的网络。
你能看到你是如何在你的电脑上配置你的ShrewSoft客户端吗?
非常感谢。
没有特殊的配置。用户名,密码,共享秘密。
在第一个选项卡“通用”,“自动配置”是“ike配置拉”?
在最后一个标签“策略”,“策略生成级别”是“自动”或其他?
谢谢
将所有内容设置为默认设置。
我发现问题了。这是在我的Shrewsoft客户端阶段的一个参数,不是很好(PFS交换)…
你的导游很棒。再次感谢
我已经有这个设置运行了几个月,但我有两个问题……
1.我的客户端的互联网流量没有通过我的家庭pfsense运行,因此我进行了您在步骤3中建议的更改,将本地网络设置更改为“网络”和0.0.00/24,虽然我仍然能够与客户端连接,但浏览仍然无法通过我的家庭pfsense,我无法再访问局域网上的任何内容,我甚至无法ping LAN IP,但VPN会话已连接。如果我将其改回LAN,并将第二个字段改为空白,我可以访问LAN上的设备。知道为什么吗?
这是一个单独的问题,但可能相关
当我试图改变DNS解析器从“所有”到“局域网”我得到一个错误说”这个系统被配置为使用DNS解析器作为它的DNS服务器,所以必须选择Localhost或所有网络接口”所以我不知道如何得到一组…也许第一个问题是有关无法设置第二个。我不知道,否则一切都是相同的我的设置,我能够访问所有的IP地址,直到我改变步骤3,然后我不能ping任何东西的IP甚至。
我真的希望我的浏览通过我的家pfsense,并能够使用DNS名称而不是IP地址将是伟大的太。
只是为了记录,我有几个vlan和几个选择的局域网,可能那些是复杂的这个。无论如何,这是一个很好的指南,我想把这两个问题整理一下,如果你有任何建议。第二个问题让我很好奇,好像这个设定是不可能的,所以我不确定你是怎么得到的。
跟进我的问题。我算出了第一题。对于子网,我把0.0.0.0/24,因为这是你说要做的,但你的截图有0.0.0.0/0,所以我尝试了,问题1消失了。所以我不确定0.0.0.0/24是一个拼写错误还是什么。
我仍然有一个关于DNS解析器的问题,尽管你认为为什么它不会让我选择LAN..
你的确是对的。我把文章改了!谢谢。关于DNS的问题,我没见过。如果有机会,我以后会尝试一下。
好的,谢谢,我会尝试修补它,如果我得到任何东西回来更新。
仍然有一个问题与DNS解析器。同样的信息。
是的,我想我也有同样的问题。我的客户端可以正常连接,但不能浏览网页。一定是DNS问题,但不确定从哪里开始诊断。
另一方面,我的pf sense还连接到openvpn服务,我有规则通过WAN发送某些流量,其他通过VPN发送。但我不认为这是造成我问题的原因。
这里也一样,除了我可以在连接的时候访问互联网,但在广域网上什么都没有。
只需添加另一个LAN接口即可重新创建问题。如果您只有一个LAN,它可以工作,但当您有多个LAN接口或VLAN接口时就不行。我对这个寄予了很高的期望!
对我来说不是这样。
下拉列表中:防火墙—>规则—> IPsec
确保你有一个规则,允许UDP访问192.168.1.1(你的防火墙)端口53 (dns)
该死,我几乎从来没有对这些类型的指南留下评论,但你真的帮了我大忙!谢谢你,迈克!
您是否听说过有人使用Radius服务器与本地数据库进行身份验证?
是的。
我是PFSense的新手,所以我很高兴我这么早就找到了这篇文章。我在Draytek路由器上也遇到了类似的问题,但信息非常少,这就是我改用PFSense的原因。现在回想起来,我敢说肯定是某个地方设置错了。
我的Android设备和Squid Guard也有问题,你的专业知识包括代理服务器吗?
嗨,迈克,
我有2个网络通过IPsec隧道连接,两端使用pfSense。如果我在网络a上设置这个道路战士VPN,一旦PC连接上,它能看到网络B上的设备穿过隧道吗?目前我在PC上的VPN使用IKEv2 EAP-MSChapV2,它只是看不到IPsec隧道上一跳的设备。
非常感谢。
是的。我就是这么做的。您需要在IPSEC隧道配置(或pfsense路由表)中添加所有路由。
这看起来很棒,我想试试。这是否允许来自不同机器的同一用户的多个VPN连接(例如,同时从Win10和iOS10接入),还是与OpenVPN相同,只有最后一个连接工作?
是的。这是完全可配置的。
很好,知道了。谢谢!
你好,Mike,你能给我举一个VPN后通过IPsec访问设备的静态路由的例子吗?我是否还需要额外的防火墙规则?谢谢
就像以前的许多人一样,只是停下来表达我的问候和感谢-就像标题说的,这个配置工作!我一直在碰壁,假设内置工具生成的IKEv2配置文件应该可以工作;似乎没有。所以我很感激能找到这个,并有一个工作配置。现在我们来看看“永不停歇”的部分
干杯!
非常感谢,它工作的很好,但我有一个sip注册的问题,双方可以ping对方(Elastix和手机),但sip账户无法注册,我检查了防火墙:
IPsec udp 192.168.0.1:12693 -> 172.16.1.15:5060 NO_TRAFFIC:SINGLE
我不知道哪里出了问题。你能给点建议吗?
防火墙规则是在IPSEC隧道上还是LAN/WAN接口上?记住,pfSense处理端口的入口规则,即使它是虚拟的。此外,由于这是UDP数据,您将需要在另一端的防火墙的入口端口上使用相同的规则。
谢谢你的回复,我已经检查了规则:
IPSEC=>源、目的、协议为*
在其他接口上没有VPN规则
你好,
我已经用Fortigate(服务器端静态IP)和PFSense配置了站点到站点的IPSec vpn。面对陌生的问题。我可以看到有些时候,隧道在166秒建立和重新连接后就破裂了。这至少要持续一个小时。我无法想象。我怀疑这是ISP干的。作为解决方案,是否可能更改默认运行端口?在fortigate我可以定义一个自定义端口,但在pfsense我找不到它。
这工作! !我必须手动添加(因为我禁用了自动)端口500,4500和ESP协议的出站NAT规则。ShrewSoft在我的Windows机器上工作得很好,现在我的iPhone也连接上了!现在我只需要通过VPN同步iTunes
我还必须取消选中VPN -> IPsec ->移动客户端->“提供可访问的网络客户端列表”
这似乎是反直觉的。你在另一端设置了手动路线吗?路由器/客户端必须知道每个隧道上路由流量的子网是什么。
非常感谢,我不能通过VPN路由所有的流量,不检查“提供一个可访问的网络列表给客户端”就成功了!!
这个配置对我来说很好(使用Windows 10和iOS 10.x),但我不能在两个客户端连接时使用相同的用户名。如果我用iPhone连接,Windows 10客户端会断开连接。我不想使用两个用户名。任何想法吗?
谢谢你的配置指南,迈克!在pfsense Version 2.4.2-RELEASE-p1 (amd64)中,我们发现,关联的正确用户“- VPN: IPsec xauth Dialin”不会导致成功。我们总是会得到一个“身份验证失败”。比我们关联“用户- VPN: L2TP拨号”权限也和移动VPN IPSec连接工作预期。
你是一个美丽的天才。非常感谢你的指导!
是否有可能在同一个IP上有多个移动配置?在我的Cisco ASA上,我能够根据第一阶段组名设置不同的规则和路由,但我看不到在pfsense上这样做的方法。
谢谢你的介绍....除了泼妇,还有其他客户吗?
简单说明一下,在VPN之外传递其他流量(下面引用的步骤3)对于随后尝试使用远程桌面(通过VPN)是不起作用的。
如果你只希望客户端访问你的本地网络,并将所有其他流量发送到他们自己的ISP,那么你只需要从下拉菜单中选择“局域网子网”,并将地址框空出来。这可能会导致DNS问题,因为您的客户端将首先轮询VPN DNS,所以如果您在步骤1中这样做,请确保您设置了合适的DNS(如谷歌DNS 8.8.8.8,而不是您自己的pfSense框)。
是否需要(或可以调整)任何其他内容?尝试使用DNS集,包括:192.168.1.1、8.8.8.8、1.1.1.1…
我几乎完全按照说明操作,但我的Pie上的Android无法建立连接。这是IPsec日志在不成功之前的最后一部分:
Apr 15 16:55:08 charon 06[IKE] IKE_SA con-mobile[7] state change: CONNECTING => DESTROYING .日志含义
Apr 15 16:55:08 charon 06[JOB] deleting half open IKE_SA with 192.XX.XX. Apr 15 16:55:08 charon 06[JOB] deleting half open IKE_SA with 192.XX.XX.XX超时后
Apr 15 16:55:03 charon 06[NET]发送数据包:从XX.XX.XX.XX[500]到192.XX.XX.XX[38274](412字节)
Apr 15 16:55:03 charon 06[IKE] sending retransmit 3 of response message ID 0, seq 1 .日志含义
Apr 15 16:54:50 charon 14[NET]发送数据包:从XX.XX.XX.XX[500]到192.XX.XX.XX[38274](412字节)
Apr 15 16:54:50 charon 14[IKE] sending retransmit 2 of response message ID 0, seq 1 .日志含义
Apr 15 16:54:42 charon 07[NET]发送数据包:from XX.XX.XX. xx。192. xx.xx XX[500]。XX[38274](412字节)
Apr 15 16:54:42 charon 07[IKE] sending retransmit 1 of response message ID 0, seq 1 .日志含义
Apr 15 16:54:38 charon 07[IKE]队列中的INFORMATIONAL_V1请求仍然是活动的任务
这是防火墙NAT的问题吗?
如果VPN隧道的两端都是nat,那可能是你的问题。
pfsense我设置了ipsec为AUTO,没有办法关闭它。在机器人方面,我怎么能关掉它呢。
总体来说写得很好。我无法连接到任何本地或远程的东西。最终发现这是由于我的ipsec防火墙规则。源/dest是*,但规则上的协议是TCP/UDP。当协议更改为*时,一切都开始工作了。