Fermate la connessione OpenVPN giusta: primo piano, systemd o NM
Il comando che disconnette un tunnel dipende da chi l’ha avviato. Confrontate i proprietari di primo piano, systemd, NetworkManager e OpenVPN 3 prima di inviare un segnale.
Chiudere una finestra del terminale non è come chiudere un tunnel, e uccidere un processo non è come fermare un servizio. Su Linux il comando che disconnette davvero dipende da quale componente ha avviato la connessione e quindi ne possiede il ciclo di vita. Il confronto qui sotto copre le quattro disposizioni che incontrerete più probabilmente, e l’identificatore che ciascuna richiede.
Client in primo piano e client demonizzati
Un client avviato a mano in un terminale appartiene a quel terminale. Ctrl+C invia un’interruzione, il client smonta la sua interfaccia e il tunnel termina. Non serve avvisare altro.
Un client avviato tramite un wrapper di shell e lasciato in background non appartiene a nessuno in particolare, ed è il caso in cui la gente ricorre a killall. Trovate prima il processo, confermate che la sua riga di comando menzioni il profilo voluto, poi inviate il normale segnale di terminazione. Un processo supervisionato ucciso sotto il suo supervisore verrà semplicemente riavviato, perciò identificare il proprietario conta più che scegliere un segnale. Inviate il segnale al gruppo di processi solo quando avete confermato che nessun altro tunnel lo condivide.
SIGUSR1 non è una disconnessione; chiede al client di riavviare il tunnel.
Istanze systemd
Quando un’unità possiede la connessione, l’unità è l’oggetto da fermare. Le istanze modello come openvpn-client@office portano il nome del profilo, e fermare il target del modello invece dell’istanza può influire su ogni client dell’host.
systemctl list-units 'openvpn-client@*'
systemctl stop [email protected]
Leggete l’ExecStart dell’unità quando non siete sicuri di quale profilo abbia caricato l’istanza.
Un’unità abilitata tornerà al prossimo avvio, il che è una decisione separata dal fermarla adesso. Disabilitatela solo dopo aver deciso che la connessione non deve tornare, e annotate quella decisione dove la troverà il prossimo amministratore.
Profili NetworkManager
Un profilo gestito da NetworkManager non è un processo a cui inviare un segnale. Il gestore possiede il ciclo di vita, e l’oggetto su cui agire è la connessione attiva, identificata da UUID e non dal nome visualizzato. Leggere prima l’elenco attivo mostra anche se un secondo tunnel è in esecuzione con un nome che non aspettavate.
nmcli connection show --active
nmcli connection down uuid actual-uuid
I nomi visualizzati si ripetono, e il nome di un file di profilo non è il suo identificatore, quindi copiate l’UUID dall’elenco. Se la connessione torna subito, qualcosa la sta attivando: una voce secondaries su una connessione base, uno script dispatcher o un flag di connessione automatica. Fermare la connessione del gestore è il primo passo corretto, e la riattivazione è la domanda successiva. Non eliminate il profilo per fermare la riattivazione, perché questo rimuove anche le credenziali che potreste servire domani.
Il riferimento ai comandi del gestore documenta come si seleziona un target down.
Sessioni OpenVPN 3
OpenVPN 3 Linux usa un modello a sessioni invece di un processo per tunnel. Esaminate le sessioni che il servizio conosce, poi agite su un percorso di sessione. Il percorso è l’identificatore, e non è interscambiabile con un nome di configurazione.
openvpn3 sessions-list
openvpn3 session-manage --path /net/openvpn/v3/sessions/... --disconnect
Disconnettere ogni sessione è un’azione diversa, e dovrebbe essere deliberata.
Lo stesso host può ospitare sessioni di più utenti, quindi elencate prima di agire e confermate il proprietario della sessione che state per terminare.
Cosa verificare dopo
Controllate tre cose dopo ciascuna di queste fermate: l’elenco delle connessioni attive non contiene più il tunnel, l’interfaccia è sparita, e una ricerca di route per un indirizzo interno non seleziona più un dispositivo di tunnel. Poi decidete cosa succede al prossimo avvio.
ip -brief address
ip route get 10.8.0.1
Rimuovere un’interfaccia a mano non ferma il proprietario, e lascia la pulizia a metà.
Disconnettere ora, impedire il prossimo avvio automatico e consentire poi il traffico non VPN sono tre scelte separate. Rendete ciascuna esplicita.