Tasker: connetti la VPN prima di aprire un URL privato
Tasker deve connettersi e attendere prima di aprire un URL privato: definisci la disponibilità, usa l'interfaccia di controllo del client e mantieni la modalità sempre attiva per un limite rigido.
Aprire un URL privato e sperare che il tunnel salga per primo è una corsa, e di solito vince il browser. Una scorciatoia che reagisce a una pagina già in caricamento ha perso la risoluzione DNS e spesso la prima connessione, cioè proprio la parte che aveva bisogno della VPN. Il flusso di lavoro deve possedere l'ordine invece di osservarlo. Tre condizioni decidono se quel flusso appartiene a Tasker.
Un solo punto di ingresso deve possedere la sequenza
Dai al servizio privato un unico punto di ingresso approvato e lascia che quel punto esegua i passaggi in ordine. Convalida la destinazione, seleziona il profilo previsto, richiedi la connessione, attendi un risultato di disponibilità con un limite su quanto aspettare, e solo allora apri l'URL. Se un passaggio fallisce, fermati e dillo invece di passare a un'apertura diretta.
È quest'ultima clausola che la gente salta. Un flusso che apre comunque l'URL allo scadere del tempo è peggio di nessuna automazione, perché produce una richiesta che sembra una VPN fallita quando non ne ha mai usata una.
1. validate destination against the approved list
2. select the intended VPN profile
3. request connection through the client's supported interface
4. wait for readiness, maximum 20 seconds
5. open the URL only if readiness succeeded
6. on timeout, stop and report
L'elenco numerato sopra è il contratto, non un profilo esportato. Ogni client implementa la propria superficie di controllo in modo diverso, e alcuni richiedono un componente aggiuntivo, un permesso di controllo esplicito o un consenso utente una tantum che nessuna automazione può fornire.
Connesso non è la stessa cosa di pronto
Uno stato che dice che il tunnel è partito dimostra che il client ha accettato la richiesta. Non dimostra che il resolver restituisca ora indirizzi privati né che il servizio previsto sia raggiungibile. Sono risultati separati, e lo scarto tra loro è il punto in cui una scorciatoia che apre troppo presto fallisce in silenzio. Il client riporta il proprio stato, non lo stato del percorso che l'URL userà.
Definisci la disponibilità rispetto a qualcosa che il flusso può osservare. Uno stato di connessione dal client, un indirizzo risolto nell'intervallo atteso o una sonda di raggiungibilità verso il servizio specifico funzionano, purché la sonda non possa ricadere sul percorso di rete ordinario. Una sonda che riesce dalla rotta normale non ti dice nulla.
Limita l'attesa. Una condizione di disponibilità senza timeout trasforma un profilo rotto in una scorciatoia che si blocca, e gli utenti lo segnalano come telefono che si freeza, non come problema di VPN.
Cosa Tasker può e non può fare
Tasker fornisce la colla: un trigger, un elenco ordinato di azioni, condizioni e un'azione URL. La sua azione di apertura URL esegue solo il passaggio di apertura e nient'altro. Il passaggio di connessione deve venire dal client VPN, tramite un componente aggiuntivo, un intent o un servizio esposto che il client documenta e consente.
OpenVPN for Android, per esempio, documenta un'interfaccia di controllo remoto costruita su AIDL e intent. Questa è una capacità di quel client, non una licenza per qualsiasi attività del dispositivo di pilotarlo. Concedi il controllo solo all'app che intendi, perché uno strato di automazione che può connettere e disconnettere un tunnel è una superficie di controllo che merita protezione.
Se il client installato non espone alcun meccanismo di controllo supportato, la risposta onesta è che questo flusso non può essere costruito su quel client. Una vecchia pagina di confronto funzionalità non è una specifica delle capacità per la versione presente sul telefono.
Quando il limite deve essere obbligatorio
L'automazione è una comodità, e una comodità non può imporre un limite di sicurezza. Se il requisito è che le applicazioni coperte non comunichino mai senza la VPN, usa l'impostazione VPN sempre attiva e blocco della piattaforma, o la configurazione gestita equivalente. Un evento del browser che scatta dopo l'inizio della navigazione non può sostituire quell'imposizione, per quanto la mansione sia ordinata con cura.
Decidi quale stai costruendo. Una scorciatoia che prima connette e poi apre è utile e non è una garanzia. Un dispositivo gestito con il blocco attivo è una garanzia e non ha affatto bisogno di una sequenza Tasker.
| Requirement | Mechanism |
|---|---|
| Open the page after the tunnel is ready | Ordered task with a bounded readiness wait |
| Never allow traffic outside the tunnel | Always-on VPN with blocking, or managed policy |
| Only some apps use the tunnel | Per-app VPN or work-profile scope |
| Different URL every time | Validate the input before opening it |
Prova tre esiti, non uno
Esegui il flusso contro una connessione riuscita, un timeout deliberato e una riconnessione ordinaria dopo la caduta del tunnel. Il caso del timeout è quello che rivela se la sequenza si ferma davvero, e il caso della riconnessione rivela se la disponibilità viene controllata o solo presunta da un successo precedente. Esegui prima il caso del timeout, perché un flusso che ignora il fallimento non merita di essere provato per il successo.
Consenti solo destinazioni dall'elenco approvato, e controlla qualsiasi link che arrivi dall'esterno prima di aprirlo. Un'attività che accetta link arbitrari diventa un modo per lanciare schemi inattesi, e una pagina di amministrazione privata raggiunta così è un esito peggiore di una scorciatoia fallita.
Annota il profilo, la condizione di disponibilità e il timeout accanto all'attività. La prossima persona che cambierà il client VPN avrà bisogno di tutti e tre, e nessuno di essi è visibile dall'icona della scorciatoia.