NM OpenVPN: profilul salvat nu este fișierul tău .ovpn
Importul traduce opțiunile într-o conexiune salvată. Recitește vpn.data, verifică ta și ta-dir și actualizează o singură intrare în loc să înlocuiești dicționarul.
Același .ovpn fișier se conectează dintr-un shell și expiră după importul în NetworkManager. Concluzia firească este că VPN-ul este stricat. Explicația mai probabilă este mai mică: NetworkManager nu a păstrat fișierul, a importat o parte din el într-o conexiune salvată, iar tunelul care rulează folosește în schimb acele date salvate. Ce spune fișierul acum este irelevant pentru ce conține profilul.
Fișierul nu este profilul
Importul este o traducere, nu o montare. Opțiunile pe care pluginul le înțelege devin chei în vpn.data dicționarul conexiunii; opțiunile pe care nu le înțelege sunt aruncate sau înregistrate în altă parte, iar calea originală este doar o referință. Editarea ulterioară a fișierului sursă nu schimbă nimic la conexiunea deja salvată.
Acest decalaj explică o întreagă familie de rapoarte: cheia partajată a fost rotită, fișierul a fost actualizat, iar tunelul tot eșuează. Profilul salvat indică în continuare calea veche sau valoarea veche, iar linia de comandă continuă să funcționeze pentru că citește fișierul pe care l-ai editat. Doi clienți, două surse de adevăr și doar una dintre ele a fost actualizată.
Citește profilul salvat, nu dialogul
nmcli -f connection.id,connection.uuid,vpn.service-type,vpn.data connection show office-vpn
Folosește UUID-ul când două profile împart un nume și confirmă că tipul de serviciu este OpenVPN pluginul pe care îl aștepți, nu un alt tip de VPN care se întâmplă să fie instalat. Apoi compară punctul final, transportul și referințele certificatelor cu apelul care funcționează.
O valoare vizibilă într-un editor grafic nu este dovada că a fost salvată. Salvează, redeschide și citește-o din nou prin linia de comandă; defectele istorice de salvare sunt un motiv să verifici datele stocate, nu o dovadă că fiecare versiune actuală are aceeași eroare. Verificarea costă o singură comandă.
Două chei și o direcție care contează
Pentru o conexiune care folosește autentificarea TLS, pluginul stochează calea cheii partajate în ta și direcția în ta-dir, când implementarea folosește una. Ambele trăiesc în dicționarul de date al profilului și ambele trebuie să corespundă cu ce așteaptă serverul.
Direcția este o decizie din partea serverului exprimată pe client. Să alegi una pentru că o are un profil vecin este modul în care o cheie funcțională începe să eșueze o strângere de mână. Dacă configurația serverului este fără direcție, clientul nu ar trebui să inventeze o direcție.
Fișierul de cheie în sine trebuie să fie lizibil de către plugin în contextul în care rulează efectiv. Un pachet confinat are o vedere diferită asupra sistemului de fișiere decât o instalare obișnuită pe desktop, așa că o cale care există în shell-ul tău poate fi invizibilă pentru serviciu.
Actualizează o intrare, nu dicționarul
nmcli connection modify office-vpn +vpn.data 'ta=/etc/NetworkManager/certs/office-ta.key'
nmcli connection modify office-vpn +vpn.data 'ta-dir=1'
Plusul de la început actualizează intrări individuale ale dicționarului. A atribui vpn.data fără el înlocuiește tot dicționarul, și așa o cheie lipsă se transformă în cinci setări stricate. Citește profilul înapoi după modificare și confirmă că celelalte intrări au supraviețuit. Un dicționar care și-a pierdut punctul final la distanță și certificatele este o după-amiază mult mai lungă decât cea cu care ai început.
Reconectează-te prin controalele normale și urmărește etapa care eșuează. Dacă poarta cheii partajate trece acum și clientul raportează o eroare de certificat sau de autentificare a utilizatorului, ai avansat, iar următoarea investigație este alta.
Nu confunda modurile canalului de control
tls-auth, tls-crypt, și tls-crypt-v2 sunt aranjamente diferite. Un fișier de cheie care arată similar nu le face interschimbabile, iar completarea câmpurilor TLS-Auth pentru că un alt profil conține o cheie formatată produce un profil care eșuează într-un mod asemănător cu o cheie greșită.
Folosește maparea pluginului care corespunde modului din configurația serverului. Când modul nu este clar, întreabă proprietarul serverului în loc să ghicești din prima linie a fișierului.
Păstrează o cale de recuperare când tunelul transportă sesiunea ta de administrare. O modificare salvată nu este neapărat o modificare aplicată, iar un import reușit nu este dovada că fiecare opțiune sursă a fost acceptată. Ambele lacune merită cunoscute înainte de a reconecta legătura prin care lucrezi.