Profilo VPN Android: trova il proprietario prima di modificarlo
La riga VPN di sistema nasconde l'app che possiede l'endpoint, le rotte e le chiavi. Identifica il proprietario, poi confronta lo stato richiesto, ricevuto e applicato.
La schermata VPN di Android mostra una riga con un nome, un'icona a forma di chiave e forse un interruttore sempre attivo. Raramente mostra l'endpoint, la politica delle rotte, i server DNS o le credenziali che fanno funzionare la connessione, perché in un tunnel basato su app appartengono all'app. La conseguenza pratica è una domanda da runbook, non filosofica: prima di modificare un file scaricato o cercare un archivio centralizzato di profili, scopri quale componente possiede l'impostazione che vuoi cambiare.
Identifica prima il tipo di connessione
Ci sono almeno tre disposizioni nella stessa schermata delle impostazioni. Un'app può usare VpnService per creare un'interfaccia virtuale e possedere il protocollo e la configurazione privata, compresa un'app di filtro locale senza uscita remota. Android può anche fornire un profilo IKEv2 di piattaforma tramite Ikev2VpnProfile, disponibile dall'API 30, dove la piattaforma trattiene più parte del profilo. E un'app del fornitore può presentare il proprio elenco di server e comporre le impostazioni internamente.
adb shell dumpsys connectivity | grep -i -A12 "VPN"
adb shell cmd connectivity list-owners 2>/dev/null || true
Il primo comando mostra la rete VPN attiva e le proprietà del suo collegamento, cioè lo stato applicato. Se la riga nomina un pacchetto che riconosci, inizia dalla vista del profilo di quell'app invece che dalla schermata di sistema.
Annota il proprietario e l'ambito del profilo
Annota quattro fatti prima di cambiare qualsiasi cosa: il pacchetto proprietario, se la connessione vive nel profilo personale o in quello di lavoro, il nome del profilo o della connessione come lo mostra l'app, e chi lo amministra. Il proprietario di un dispositivo può fornire una VPN di profilo lavoro che un utente del profilo personale non può modificare, e la stessa app installata due volte ti dà due proprietari indipendenti.
Questo passo evita l'ora persa più comune, cioè modificare un profilo che non è quello connesso. Le app conservano spesso diversi profili, e quello attivo è una proprietà dell'app, non della riga Android.
Confronta lo stato richiesto, ricevuto e applicato
Sono tre fasi diverse, e una discrepanza tra loro ti dice quale componente correggere.
| Stage | Where to look | What it proves |
|---|---|---|
| Requested | The app's profile editor or imported file | What the owner intends to use |
| Received | Sanitized app log of server-supplied options | What the peer actually pushed |
| Applied | Link properties and routes after connect | What the device is really using |
La fase applicata è quella che puoi osservare senza fidarti del log di nessuno. Confronta i server DNS e le rotte nelle proprietà del collegamento attivo con quelli dichiarati dal profilo; se differiscono, il server ha inviato qualcosa o l'app ha applicato una politica che non ti aspettavi.
adb shell ip addr show tun0
adb shell ip route show table all | head -40
I nomi delle interfacce differiscono tra le app, quindi elenca prima le interfacce e leggi quella comparsa quando il tunnel si è connesso. Una rotta presente nell'editor dell'app ma assente qui non è mai stata applicata; una rotta presente qui ma assente dall'editor è arrivata da altrove.
Modifica l'artefatto che il proprietario legge davvero
Per un profilo OpenVPN importato, l'app di solito conserva una propria copia. Modificare in seguito il file scaricato in origine non cambia la connessione successiva; usa l'editor documentato dell'app, oppure reimporta e conferma quale profilo è ora attivo. È la differenza tra cambiare un file e cambiare una configurazione.
Le app dei fornitori spesso compongono le impostazioni da un elenco di server invece di scrivere un file modificabile dall'utente. L'assenza di un pulsante di esportazione non è prova che la VPN sia falsa, e un file esportato può omettere chiavi legate al dispositivo o materiale di registrazione che un altro dispositivo richiederebbe. Tratta esportazione e importazione come operazioni separate con i propri prerequisiti.
Scrivi la nota di supporto senza esporre segreti
Una nota utile nomina l'app e il profilo esatti, l'impostazione che sembra sbagliata e le prove di ogni fase. Per esempio: questo profilo riceve un indirizzo DNS privato dal server, ma l'app di lavoro prevista non riesce a risolvere il proprio servizio, e le proprietà del collegamento applicate mostrano quel resolver mentre l'editor del profilo ne mostra un altro.
Tieni le credenziali fuori dalla nota. Fare il root del dispositivo per cercare nello spazio privato dell'app non è necessario per identificare il proprietario, e un percorso indovinato alla directory dei dati non è un'interfaccia supportata. Se la risposta richiede byte che solo l'app vede, chiedi al proprietario un'esportazione diagnostica invece di improvvisarne una.
Quando il lavoro è finito, chiudi il ciclo: conferma il nome del profilo attivo, rileggi lo stato applicato e disconnetti una volta per verificare che la modifica sopravviva a una riconnessione. Un'impostazione che esiste solo nell'editor non è stata distribuita.