¿Es posible activar o desactivar un túnel de OnDemand de iOS basado en un sitio al que se accede desde un dispositivo móvil?

1

Diga, si acceder a one.example.com siempre debe mostrar el túnel, ¿cómo se puede expresar con OnDemandRules? O si two.example.com siempre debe derribar el túnel?

El Perfil de configuración La referencia clave indica que este último caso podría manejarse de alguna manera utilizando un DomainAction con un valor NeverConnect que "nunca desencadenará un intento de conexión VPN". Lo que sería, aunque mejor que nada, no es exactamente lo que estoy buscando, excepto que incluso esto no funciona como se esperaba (si he entendido la documentación correctamente):

<key>OnDemandRules</key>
<array>

  <dict>
    <key>Action</key>
    <string>EvaluateConnection</string>
    <key>ActionParameters</key>
    <array>
      <dict>
        <key>DomainAction</key>
        <string>NeverConnect</string>
        <key>Domains</key>
        <array>
          <string>two.example.com</string>
        </array>
      </dict>
    </array>
  </dict>

  <dict>
    <key>URLStringProbe</key>
    <string>http://a.url.that.returns.a.two.hundred.ok/</string>
    <key>Action</key>
    <string>Connect</string>
  </dict>

</array>

Según tengo entendido, como el conjunto de diccionarios OnDemandRules se evalúa en cada intento de conexión, y si el dispositivo accede a two.example.com, el primer diccionario coincidirá y el túnel no ser criado Si el dispositivo accede a otro dominio, por ejemplo, one.example.com, el primer diccionario no coincidirá, el segundo diccionario coincidirá y se abrirá el túnel. Esto no funciona, sin embargo, y el túnel nunca se abre. Si se cambia la orden y el diccionario Connect está en la parte superior, entonces siempre se abre el túnel (incluso cuando se accede a two.example.com ).

¿Mi comprensión de todo el asunto está muy lejos, o la documentación y / o la implementación de Apple están de alguna manera dañadas? ¿Alguien ha creado OnDemandRules que puedan usarse para activar o desactivar selectivamente una conexión VPN según los sitios a los que accede el dispositivo?

Editar: El túnel puede activarse "por dominio" mediante el uso de las siguientes reglas (esto supone que no hay un local de resolución presente):

<key>OnDemandRules</key>
<array>

  <dict>
    <key>Action</key>
    <string>EvaluateConnection</string>
    <key>ActionParameters</key>
    <array>
      <dict>
        <key>RequiredDNSServers</key>
        <array>
          <string>127.0.0.1</string>
        </array>
        <key>DomainAction</key>
        <string>ConnectIfNeeded</string>
        <key>Domains</key>
        <array>
          <string>one.example.com</string>
        </array>
      </dict>
    </array>
    <key>URLStringProbe</key>
    <string>http://a.url.that.returns.a.two.hundred.ok/</string>
  </dict>

  <dict>
    <key>Action</key>
    <string>Disconnect</string>
  </dict>
</array>

Sin embargo, esto se debe al hecho de que la resolución del nombre de dominio falla primero, lo que hace que la carga de la página inicial falle en Safari. Después de volver a cargar la página, se muestra la página y se abre el túnel. Esto sucede incluso si en lugar de 127.0.0.1 se proporciona una dirección de servidor DNS real, que funciona detrás del túnel. ¿Hay alguna manera de no fallar en la búsqueda inicial?

Además, este último diccionario ( Disconnect ) nunca se alcanza, y el túnel permanece activo durante algún tiempo. ¿Cómo puedo hacer el "opuesto" de lo anterior y derribar el túnel para algunos nombres de dominio? El DomainAction de NeverConnect no hace esto.

    
pregunta kahara 06.03.2016 - 11:00

1 respuesta

1
  

Sin embargo, esto se debe al hecho de que la resolución del nombre de dominio falla primero, lo que hace que la carga de la página inicial falle en Safari. Después de volver a cargar la página, se muestra la página y se abre el túnel. Esto sucede incluso si, en lugar de 127.0.0.1, se proporciona una dirección real del servidor DNS detrás del túnel. ¿Hay alguna manera de no fallar en la búsqueda inicial?

Si está utilizando un servidor DNS real, la búsqueda inicial no fallará en iOS 9.2. Es un error introducido desde iOS 9.3 y Apple no lo ha solucionado en la versión de lanzamiento de iOS 9.3.2.

VPN bajo demanda de iOS 9.3 beta ignora useDNSServers

    
respondido por el Dollar Zhang 19.05.2016 - 15:04

Lea otras preguntas en las etiquetas