openvpn3 session-start ignoră fișierul tău de acreditări
Clientul 3.x preia acreditările la începutul sesiunii și nu citește un fișier salvat. Folosește promptul sau calea autoload și află ce stochează fiecare.
Conectează-te cu clientul 2.x și profilul funcționează; dă același fișier clientului 3.x și se oprește la un prompt de parolă. Dă --auth-user-pass creds.txt către openvpn3 session-start și rezultatul este același, pentru că clientul mai nou nu are o etapă care să citească fișierul. Refuzul este deliberat: acreditările aparțin unei sesiuni, iar o sesiune este creată de un serviciu, nu de procesul din terminalul tău. Alege între promptul interactiv și ajutorul autoload, și află ce stochează fiecare.
De ce fișierul salvat nu are unde să ajungă
În designul mai nou, gestionarea configurației și gestionarea sesiunilor sunt servicii separate care comunică prin magistrala sistemului. Această separare este ce permite unui utilizator obișnuit să pornească o sesiune fără ca un demon privilegiat să citească în numele lui un fișier de parole protejat. Acreditările bazate pe fișiere nu au loc în acel model, pentru că nu există o pornire pe partea demonului care să le citească. Refuzul este o consecință a arhitecturii, nu o funcție lipsă.
Merită numit vechiul tipar ca să fie mai ușor de dezvățat: un profil face referire la un fișier de acreditări, iar demonul îl citește când pornește tunelul. În modelul nou, acreditările aparțin unei sesiuni și sunt furnizate când acea sesiune începe. openvpn3 session-start --config work.ovpn le cere, iar --auth-user-pass creds.txt este respins pentru că nimic de pe acea cale nu ar deschide fișierul. Fiecare rețetă 2.x pe care o găsești presupune o etapă care nu mai există.
Configurația și setările locale ale site-ului sunt și ele separate, ceea ce explică o a doua surpriză. Un profil poate părea complet în timp ce conexiunea pe care o produce nu are configurație de rutare și resolver. Acele părți sunt aplicate ca setări locale ale site-ului, separat de fișierul importat.
Calea promptului și sesiunea pe care o lasă
Furnizarea parolei la începutul sesiunii este fluxul de lucru dorit. Clientul întreabă o dată, predă acreditările backendului sesiunii și continuă:
openvpn3 session-start --config work.ovpn
openvpn3 sessions-list
Pe acea cale nu se scrie nimic pe disc. Sesiunea continuă să ruleze și după ce terminalul se închide, ceea ce îi surprinde pe cei care se așteaptă ca procesul să moară odată cu shell-ul lor. Acesta este rostul mutării gestionării sesiunilor într-un serviciu. Sesiunea supraviețuiește terminalului care a cerut-o și trebuie oprită explicit.
Pentru o stație de lucru cu o persoană în față, aceasta este și cea mai sigură opțiune, pentru că nu există niciun secret stocat de protejat sau de uitat. Este nepotrivită doar acolo unde nu este nimeni să tasteze.
Automatizare fără o persoană la tastatură
Acolo unde o mașină trebuie să se conecteze fără o persoană, proiectul oferă openvpn3-autoload. Acesta citește un director de profiluri și un descriptor potrivit pentru fiecare profil, iar descriptorul furnizează acreditările în text simplu. Ajutorul este un binar separat, de obicei la /usr/sbin/openvpn3-autoload, nu un flag al session-start. Configurarea lui înseamnă crearea directorului, copierea profilului sub numele pe care descriptorul îl așteaptă și scrierea descriptorului.
O configurare pe utilizator arată astfel, rulată ca contul care va deține sesiunea. Modul directorului ține ceilalți utilizatori locali afară:
mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload
Descriptorul numește acreditările și cere o pornire automată. Ține valoarea parolei în afara controlului versiunilor:
{
"autostart": true,
"user-auth": {
"autologin": true,
"username": "svc-vpn",
"password": "change-this-value"
}
}
Apoi invocă ajutorul o dată și confirmă că sesiunea apare. A doua comandă este verificarea, nu un alt pas de configurare:
/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list
La pornire, o unitate împachetată numită openvpn3-autoload.service folosește directorul la nivel de sistem /etc/openvpn3/autoload, nu cel pe utilizator. Acea locație necesită proprietate root și un mod mai strict, iar descriptorul ține în continuare parola în text clar. Compromisul este explicit: parola stă acum pe disc, așa că tratează acel director ca pe un secret, exclude-l din copiile de rezervă din afara gazdei și alege calea interactivă ori de câte ori este o persoană prezentă.
Defecțiuni de magistrală care par defecțiuni de parolă
Unele defecțiuni atribuite acreditărilor nu sunt deloc așa. O eroare de permisiune care numește calea de activare a serviciului înseamnă unul din două lucruri: backendul nu rulează, sau apelantul nu are permisiunea să îl activeze. Nicio editare a profilului nu va schimba niciuna. Verifică starea serviciului și politica de magistrală furnizată înainte de a atinge configurația.
Comenzile de mai jos separă cele două. Prima raportează dacă backendul rulează; a doua arată erorile recente de magistrală:
systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20
Cealaltă citire greșită frecventă este o sesiune care apare și apoi dispare imediat. Acel tipar înseamnă de obicei că setările locale ale site-ului nu au fost aplicate niciodată, așa că tunelul a urcat fără rutele și modificările de resolver care îl fac util. Citește secvența, nu ultima linie: dacă sesiunea a fost creată, dacă a ajuns într-o stare conectată și dacă a supraviețuit sunt trei fapte separate.
Când clientul mai vechi este încă în uz
Clientul 2.x acceptă încă un fișier de acreditări, iar un keyring poate răspunde la promptul lui fără ca secretul să ajungă vreodată pe disc. Un wrapper rezolvă intrarea, așa că fișierul numește căutarea, nu parola. Această aranjare depinde de un keyring deblocat, pe care un container fără sesiune de login sau o unitate care pornește înainte ca cineva să se conecteze nu îl pot oferi. Instrumentul de căutare raportează atunci o colecție în care nu poate scrie, așa că eroarea arată ca o defecțiune de acreditări când este o defecțiune de keyring.
Înainte de a construi oricare dintre acestea, verifică dacă o setare keepalive din profil elimină complet nevoia de repornire. O sesiune care rămâne sus nu ajunge niciodată la promptul pe care încerci să îl automatizezi.