L'inoltro X11 mette la finestra dell'editor sul vostro portatile mentre il processo continua a girare sull'host remoto. Quel divario è tutta la trappola: state guardando una finestra locale e modificando un profilo remoto, e un'ipotesi sbagliata su quale macchina possiede la modifica può tagliare il collegamento SSH su cui lavorate. La lista di controllo qui sotto fissa l'host e il profilo prima che qualsiasi cosa venga salvata. Ogni passo ha una condizione di arresto, quindi un errore precoce costa poco.

Passo 1: nominate la macchina che possiede il profilo

Eseguite i comandi di identità nella shell che state per configurare e leggete la risposta invece di dedurla dal prompt. Un nome host nel prompt è una stringa stampata dalla vostra shell; il nome host del kernel è ciò di cui si fida il resto di questa lista. Se i due non concordano, siete sulla macchina sbagliata o il prompt è decorato dalla vostra shell locale. Fermatevi e riconnettetevi all'host previsto prima di continuare.

hostnamectl
hostname -f
ip -brief address

La domanda successiva è se questa macchina debba ospitare la VPN. Configurare il client del portatile e configurare il client dell'host remoto producono rotte, DNS e modalità di errore diverse. Decidete quale intendete prima di toccare un profilo, e scrivete la decisione dove la troverà la persona successiva.

Passo 2: leggete il profilo tramite UUID, non tramite etichetta

NetworkManager identifica una connessione tramite UUID, mentre il nome è un'etichetta che chiunque può modificare o duplicare. Elencate entrambi e abbinate la voce che intendete davvero, soprattutto su un host dove negli anni sono stati importati diversi profili VPN.

nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
nmcli general permissions

Le voci salvate e le connessioni attive rispondono a domande diverse: la prima elenca ciò che esiste, la seconda elenca ciò che sta trasportando traffico in questo momento. La riga dei permessi descrive la policy locale della vostra sessione e non dice nulla sull'accettazione dell'account da parte del gateway VPN. Se il profilo che vi serve non è nell'elenco salvato, fermatevi qui, perché modificare la voce sbagliata è peggio che non modificare affatto.

Una volta ottenuto l'UUID, mettetelo in una variabile e usate quella variabile in ogni comando successivo. Questo elimina un'intera classe di errori di copia e incolla e rende la trascrizione riproducibile.

UUID=$(nmcli -g UUID connection show 'Corp VPN')
nmcli connection edit uuid "$UUID"

Passo 3: decidete se un editor grafico è lo strumento giusto

Un editor che richiede un prompt polkit o un agente di segreti non lo otterrà solo perché la sua finestra appare sul vostro portatile. Questi componenti girano nel contesto della sessione remota, e inoltrare un display non li inoltra. Se l'editor non riesce a salvare con un errore di autorizzazione o di segreto, il display non è il problema.

echo "$DISPLAY"
ssh -X you@vpn-host
xauth list

OpenSSH abilita l'inoltro X11 con -X e documenta la cautela che lo accompagna: l'host remoto può raggiungere il vostro display locale, che è un vero confine di fiducia. L'inoltro fidato con -Y rimuove alcuni di questi controlli e non dovrebbe mai essere la soluzione riflessa per un'applicazione che fallisce con le impostazioni predefinite. Se la vostra organizzazione pubblica un metodo di amministrazione remota, usate quello invece di inventare una variante. Nella maggior parte dei casi l'editor da riga di comando è la superficie più piccola e la risposta migliore.

Fermatevi qui se l'unico percorso funzionante richiede -Y e non sapete spiegare perché. È una decisione di chi possiede la policy di sicurezza, non una scorciatoia da tenere in uno script personale.

Passo 4: tenete un percorso di ripristino prima di attivare qualsiasi cosa

Una modifica VPN può rimuovere la rotta da cui dipende la vostra sessione SSH, quindi predisponete un modo per tornare prima di attivare il profilo. L'accesso alla console, un indirizzo di gestione out-of-band o un rollback pianificato contano; la speranza che la modifica funzioni non conta.

sudo systemctl status NetworkManager
ip route show default
ss -tn state established '( sport = :22 )'

Attivate solo il profilo previsto, poi verificate dall'host remoto: la rotta predefinita, il percorso di ritorno SSH e una risorsa che dovrebbe essere raggiungibile attraverso il tunnel. Un controllo riuscito dal vostro portatile prova il percorso del portatile e non dice nulla sull'host remoto. Se la sessione cade, usate il percorso di ripristino invece di riconnettervi alla cieca. Salvare un profilo non è attivarlo, e attivarlo non è verificarlo.

Annotate l'UUID, i valori delle proprietà che avete modificato e i comandi usati per verificarli. La prossima persona che toccherà questo host avrà bisogno di tutti e tre, e una trascrizione vale più di un riepilogo che dice che la VPN è stata riparata. Una lista di controllo che finisce senza una nota di rollback è mezza lista.

Articoli correlati