E 'possibile far apparire o abbattere un tunnel OnDemand di iOS basato su un sito a cui si accede da un dispositivo mobile?

1

Di ', se l'accesso a one.example.com dovrebbe sempre far apparire il tunnel, come può essere espresso con OnDemandRules? O se two.example.com dovrebbe sempre abbattere il tunnel?

Profilo di configurazione Riferimento chiave afferma che quest'ultimo caso potrebbe essere in qualche modo gestito utilizzando un DomainAction con valore NeverConnect che "non innescherà mai un tentativo di connessione VPN". Quale sarebbe, anche se meglio di niente, non esattamente quello che sto cercando - tranne che anche questo non funziona come previsto (se ho capito bene la documentazione):

<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>

La mia comprensione è che come la matrice OnDemandRules di dizionari viene valutata ad ogni tentativo di connessione e se il dispositivo accede a two.example.com, il primo dizionario corrisponderà e il tunnel non essere educato Se il dispositivo accede a un altro dominio, ad esempio one.example.com, il primo dizionario non corrisponde, il secondo dizionario corrisponderà e il tunnel verrà visualizzato. Ciò non funziona, tuttavia, e il tunnel non viene mai visualizzato. Se l'ordine è cambiato e il dizionario Connect è in cima, il tunnel viene sempre visualizzato (anche quando si accede a two.example.com ).

La mia comprensione dell'intera faccenda è ben lontana, oppure la documentazione e / o l'implementazione di Apple sono in qualche modo infranti? Qualcuno ha escogitato OnDemandRules che può essere utilizzato per far apparire o abbattere selettivamente una connessione VPN in base ai siti ai quali il dispositivo sta accedendo?

Modifica: il tunnel può essere richiamato "per dominio" utilizzando le seguenti regole (ciò presuppone che non sia presente un resolver locale):

<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>

Ciò tuttavia risente del fatto che la risoluzione del nome di dominio non riesce prima, causando il fallimento del caricamento iniziale della pagina in Safari. Dopo che una pagina è stata ricaricata, viene visualizzata la pagina e il tunnel viene visualizzato. Ciò accade anche se al posto di 127.0.0.1 viene fornito un indirizzo server DNS reale e funzionante dietro il tunnel. C'è un modo per non fallire nella ricerca iniziale?

Inoltre, il secondo dizionario ( Disconnect ) non viene mai raggiunto e il tunnel rimane attivo per qualche tempo. Come posso fare il "contrario" di quanto sopra e abbattere il tunnel per alcuni nomi di dominio? Il DomainAction di NeverConnect non lo fa.

    
posta kahara 06.03.2016 - 11:00
fonte

1 risposta

1

This however suffers from the fact that resolving the domain name first fails, causing the initial page load to fail in Safari. After a page reload the page is shown, and the tunnel is brought up. This happens even if instead of 127.0.0.1 a real, working behind-the-tunnel DNS server address is provided. Is there a way to not fail the initial lookup?

Se si utilizza un server DNS reale, la ricerca iniziale non avrà esito negativo su iOS 9.2. È un bug introdotto da iOS 9.3 e Apple non lo hanno corretto sulla versione di rilascio di iOS 9.3.2.

iOS 9.3 beta VPN su richiesta ignora useDNSServers

    
risposta data 19.05.2016 - 15:04
fonte

Leggi altre domande sui tag