在iOS 7上设置VPN配置文件

时间:2013-09-22 20:08:34

标签: ios7 vpn ondemand configuration-profile

我有一个我在iOS 6上设置的配置文件,因此当点击某个URL时,VPN就会启动。

我使用以下配置配置文件键执行此操作:

<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandMatchDomainsAlways</key>
<array>
    <string>my_homepage.com</string>
</array>

在iOS 6上,这似乎工作正常。但是,在iOS 7中,OnDemandMatchDomainAlways似乎已被弃用,而不是OnDemandRules键,以及&#34; OnDemandMatchDomainAlways&#34;的默认行为。表现得像&#34; OnDemandMatchDomainsOnRetry&#34;。 所以现在,我试图通过使用OnDemandRules键让我以前的设置在iOS 7上工作,如下所示:

<key>OnDemandRules</key>
<array>
    <dict>
        <key>Action</key>
        <string>Connect</string>
        <key>DNSDomainMatch</key>
        <array>
            <string>my_homepage.com</string>
        </array>
    </dict>
</array>

我也尝试使用这种方法进行设置:

<key>OnDemandRules</key>
    <array>
        <dict>
                    <key>Action</key>
            <string>EvaluateConnection</string>
            <key>ActionParameters</key>
            <array>
                <dict>
                    <key>Domains</key>
                    <array>
                        <string>url-that-redirects-if-vpn-off.com</string>
                    </array>
                    <key>DomainAction</key>
                    <string>ConnectIfNeeded</string>
            </dict>
        </array>
    </dict>
</array>

然而,这些方法似乎都不起作用。有谁知道如何设置iOS VPN配置文件,以便VPN OnDemand功能在iOS 7上的工作方式与iOS6相同?

提前致谢,

3 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,并且能够通过将OnDemanRules密钥作为IPSec块的一部分来再次获得按需功能,即

<key>IPSec</key>
<dict>
    <key>AuthenticationMethod</key>
    <string>Certificate</string>

    <!-- Other IPSEC VPN properties here. -->

    <key>OnDemandEnabled</key>
    <integer>1</integer>
    <key>OnDemandRules</key>
    <array>
        <dict>
        <key>Action</key>
        <string>Connect</string>
        <key>DNSDomainMatch</key>
        <array>
          <string>my_homepage.com</string>
        </array>
    </dict>
    </array>
</dict>

请注意,这与发布的配置文件参考文档相矛盾。但是,就我而言,它使事情有效。

答案 1 :(得分:4)

这个片段对我有用。我试图模仿“永远连接”的行为

        <key>IPSec</key>
        <dict>
            <key>AuthenticationMethod</key>
            <string>Certificate</string>
            <key>OnDemandEnabled</key>
            <integer>1</integer>
                    <!-- on demand rules -->
                    <key>OnDemandRules</key>
                    <array>
                    <dict>
                    <key>Action</key>
                    <string>EvaluateConnection</string>
                    <key>ActionParameters</key>
                    <array>
                    <dict>
                    <key>Domains</key>
                    <array>
                    <string>domain.com</string>
                    </array>
                    <key>RequiredURLStringProbe</key>
                    <string>https://host.domain.com/nonexistent_url</string>                    
                    <key>DomainAction</key>
                    <string>ConnectIfNeeded</string>
                    </dict>
                    </array>
                    </dict>
                    </array>
                    <!-- on demand rules -->
            <key>PayloadCertificateUUID</key>
            <string>...</string>
            <key>PromptForVPNPIN</key>
            <false/>
            <key>RemoteAddress</key>
            <string>...</string>
        </dict>

答案 2 :(得分:3)

以下是我用于iOS 7和7.1的VPN on Demand的个人资料摘录。

            <key>AuthenticationMethod</key>
            <string>Certificate</string>
            <key>OnDemandEnabled</key>
            <integer>1</integer>
            <key>OnDemandRules</key>
            <array>
                <dict>
                <key>Action</key>
                <string>Connect</string>
                <key>URLStringProbe</key>
                <string>http://internet-accessible-url.example.com</string>
                </dict>
            </array>
            <key>PayloadCertificateUUID</key>

只要iOS设备尝试通过移动数据或通过WiFi访问互联网,它就会触发和自动VPN on Demand连接,无需用户交互。

我使用的是StrongSwan 5.1.2服务器,充当Cisco IPSec兼容的VPN服务器,具有明显的证书身份验证,但我使用Xauth-noauth来阻止iOS设备不断要求用户名/密码进行辅助即xauth身份验证。

配置文件管理器不允许iOS客户端设备保存辅助xauth凭据的密码。

请参阅我的博客http://jelockwood.blogspot.co.uk/2014/03/how-to-do-vpn-on-demand-for-ios-at-zero.html