使用RSAauthentication计算IPSec连接

苹果iOS具有“VPN On Demand”function。 有了这个function,只要设备试图连接到某些域或互联网,就会进行VPN连接。 iOS只支持基于authentication的authentication的“VPN On Demand”。

要为我的办公室VPN服务器的iOS用户提供“VPN On Demand”,我们正在使用下一个IPSec解决scheme:

  • Ubuntu 14.04 – VPN服务器操作系统。
  • strongSwan 5.1.2 – IKE守护进程。
  • 对于每个对等点,我将生成一个单独的私钥并颁发一个匹配的证书。 客户端(iOS IKEv1)使用RSA和Xauth进行身份validation。
  • 没有Xauth(所谓的Cisco IPSec),iPhone和iPad不能使用IPSec。 而且“VPN On Demand”不能使用需要密码input的VPNconfiguration文件,但是Xauth通常需要用户名/密码。 为了处理这个问题,我们使用了xauth-noauth – 假的Xauthvalidation器,它允许任何用户名和密码。 在这种情况下,我们只使用客户端证书进行身份validation。

这个解决scheme对我们来说工作正常。 但是我们得到了新的要求 – 用一个用户数据库build立几个VPN服务器并loggingVPN使用情况。

这是使用RADIUS的这个任务的一个惯例,并且strongSwan有它的插件。 但是,使用IKEv1 / Xauth的strongSwan使用用户名/密码来validation后端RADIUS服务器上的用户。 用户名/密码没有在我的解决scheme中使用。

我的问题:

  1. 如果Xauth不使用用户名/密码,如何使用Radius记帐?
  2. 是否有可能将RSA身份validation检查委托给RADIUS服务器?

PS大多数我的iOS客户端使用支持IKEv2的iOS 8。 IKEv2中有EAP-TLS。 我可以使用EAP-TLS将RSA身份validation检查委托给RADIUS服务器吗? 或者我正在用EAP-TLS挖错方向?

PSPS我的第二件事是关于strongSwan的VICI接口。 我应该得到关于每个新的IPSec连接的通知,但看起来像VICI工作方式不同。

eap-radius插件中的RADIUS记帐不需要XAuthauthentication。 实际上,只要客户端请求一个虚拟IP地址(对于IKEv2,即使这个要求可以被禁用),也可以通过RADIUS进行任何forms的authentication。 有些IKEv1客户端在重新authentication的时候会遇到一些问题(参见问题937和相关的问题)。

EAP-TLS可以将IKEv2客户端的证书authentication委派给AAA服务器,但这与RADIUS记帐无关。

感谢ecdsa,我发现了我的问题的几个解决scheme。

  1. 使用没有RADIUS身份validation的RADIUS记帐。

如果使用选项accounting = yes启用了eap-radius插件,则即使在ipsec.conf文件中未使用eap-radius,strongSwan也会发送RADIUS消息以启动记帐。 在我的情况下,这个RADIUS消息看起来像这样:

 Acct-Status-Type = Start Acct-Session-Id = 1434531934-1 NAS-Port-Type = Virtual Service-Type = Framed-User NAS-Port = 1 NAS-Port-Id = ios-ikev1-fakexauth NAS-IP-Address = <nas_ip> Called-Station-Id = <nas_ip>[4500] Calling-Station-Id = <client_ip>[4500] User-Name = "C=CH, O=strongSwan, [email protected]" Framed-IP-Address = 172.20.1.1 NAS-Identifier = strongSwan 

我可以从消息中获得证书CN,并且对我进行适当的会计是绰绰有余的。 如果我想拒绝一些CN的访问,我只能拒绝来自stronSwan的RADIUS消息,并且ipsec连接将被中断。

  1. updown脚本中进行记帐和访问检查,而不是使用RADIUS。

另外我想使用strongSwan curl插件来访问证书撤销列表。 但是我发现缺less关于这个插件的文档。 我错过了什么吗?