openvpn3 session-start injoron skedarin tënd të kredencialeve
Klienti 3.x i merr kredencialet në fillim të sesionit dhe nuk lexon një skedar të ruajtur. Përdor promptin ose rrugën autoload, dhe di çfarë ruan secili.
Lidhu me klientin 2.x dhe profili funksionon; jep të njëjtin skedar klientit 3.x dhe ai ndalon në një prompt fjalëkalimi. Jep --auth-user-pass creds.txt tek openvpn3 session-start dhe rezultati është i njëjtë, sepse klienti më i ri nuk ka një fazë që lexon skedarin. Refuzimi është i qëllimshëm: kredencialet i përkasin një sesioni, dhe sesionin e krijon një shërbim, jo procesi në terminalin tënd. Zgjidh midis promptit interaktiv dhe ndihmësit autoload, dhe di çfarë ruan secili.
Pse skedari i ruajtur nuk ka ku të shkojë
Në dizajnin më të ri, menaxhimi i konfigurimit dhe menaxhimi i sesioneve janë shërbime të veçanta që komunikojnë përmes autobusit të sistemit. Pikërisht kjo ndarje lejon një përdorues të zakonshëm të nisë një sesion pa qenë nevoja që një demon i privilegjuar të lexojë në emrin e tij një skedar të mbrojtur fjalëkalimesh. Kredencialet e bazuara në skedar nuk kanë vend në atë model, sepse nuk ka nisje nga ana e demonit që do t'i lexonte. Refuzimi është pasojë e arkitekturës, jo një funksion që mungon.
Vlen të përmendet modeli i vjetër që ta harrosh më lehtë: profili referon një skedar kredencialesh, dhe demoni e lexon kur tuneli nis. Në modelin e ri, kredencialet i përkasin një sesioni dhe jepen kur ai sesion fillon. openvpn3 session-start --config work.ovpn i kërkon ato, dhe --auth-user-pass creds.txt refuzohet sepse asgjë në atë rrugë nuk do ta hapte skedarin. Çdo recetë 2.x që gjen supozon një fazë që nuk ekziston më.
Konfigurimi dhe cilësimet lokale të sajtit janë gjithashtu të ndara, gjë që shpjegon një surprizë të dytë. Një profil mund të duket i plotë ndërsa lidhja që prodhon i mungon konfigurimi i rrugëtimit dhe i zgjidhësit. Këto pjesë aplikohen si cilësime lokale të sajtit, veçmas nga skedari i importuar.
Rruga e promptit dhe sesioni që ajo lë
Dhënia e fjalëkalimit kur fillon sesioni është rrjedha e punës e synuar. Klienti pyet një herë, i dorëzon kredencialet backend-it të sesionit dhe vazhdon:
openvpn3 session-start --config work.ovpn
openvpn3 sessions-list
Në atë rrugë nuk shkruhet asgjë në disk. Sesioni vazhdon të funksionojë edhe pasi terminali mbyllet, gjë që i surprizon ata që presin që procesi të vdesë me shell-in e tyre. Ky është pikërisht qëllimi i zhvendosjes së trajtimit të sesioneve në një shërbim. Sesioni jeton më shumë se terminali që e kërkoi, dhe duhet ndalur në mënyrë eksplicite.
Për një stacion pune me një njeri përpara, ky është gjithashtu opsioni më i sigurt, sepse nuk ka sekret të ruajtur për të mbrojtur ose harruar. Është i papërshtatshëm vetëm atje ku nuk ka njeri të shkruajë.
Automatizim pa një person në tastierë
Aty ku një makinë duhet të lidhet pa një person, projekti ofron openvpn3-autoload. Ai lexon një drejtori profilesh dhe një përshkrues që përputhet për çdo profil, dhe përshkruesi i jep kredencialet në tekst të thjeshtë. Ndihmësi është një binar i veçantë, zakonisht në /usr/sbin/openvpn3-autoload, jo një flamur i session-start. Konfigurimi i tij do të thotë krijimi i drejtorisë, kopjimi i profilit me emrin që pret përshkruesi, dhe shkrimi i përshkruesit.
Një konfigurim për përdorues duket kështu, i ekzekutuar si llogaria që do të zotërojë sesionin. Modaliteti i drejtorisë i mban jashtë përdoruesit e tjerë lokalë:
mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload
Përshkruesi emërton kredencialet dhe kërkon një nisje automatike. Mbaj vlerën e fjalëkalimit jashtë kontrollit të versioneve:
{
"autostart": true,
"user-auth": {
"autologin": true,
"username": "svc-vpn",
"password": "change-this-value"
}
}
Pastaj thirr ndihmësin një herë dhe konfirmo se sesioni shfaqet. Komanda e dytë është kontrolli, jo një hap tjetër konfigurimi:
/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list
Në nisje, një njësi e paketuar e quajtur openvpn3-autoload.service përdor drejtorinë e të gjithë sistemit /etc/openvpn3/autoload, jo atë për përdorues. Ai vend kërkon pronësi root dhe një modalitet më të rreptë, dhe përshkruesi ende mban fjalëkalimin në tekst të qartë. Shkëmbimi është eksplicit: fjalëkalimi tani qëndron në disk, prandaj trajto atë drejtori si sekret, përjashtoje nga kopjet rezervë jashtë hostit, dhe zgjidh rrugën interaktive sa herë që një person është i pranishëm.
Dështime autobusi që duken si dështime fjalëkalimi
Disa dështime që i atribuohen kredencialeve nuk janë fare të tilla. Një gabim leje që emërton rrugën e aktivizimit të shërbimit do të thotë një nga dy gjëra: backend-i nuk është në punë, ose thirrësi nuk ka leje për ta aktivizuar. Asnjë redaktim profili nuk do të ndryshojë asnjërën. Kontrollo gjendjen e shërbimit dhe politikën e autobusit të ofruar përpara se të prekësh konfigurimin.
Komandat më poshtë i ndajnë të dyja. E para raporton nëse backend-i po punon; e dyta shfaq gabimet e fundit të autobusit:
systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20
Leximi tjetër i gabuar i shpeshtë është një sesion që shfaqet dhe pastaj zhduket menjëherë. Ai model zakonisht do të thotë që cilësimet lokale të sajtit nuk u aplikuan kurrë, ndaj tuneli u ngrit pa rrugët dhe ndryshimet e zgjidhësit që e bëjnë të dobishëm. Lexo sekuencën dhe jo rreshtin e fundit: nëse sesioni u krijua, nëse arriti një gjendje të lidhur, dhe nëse mbijetoi janë tre fakte të veçanta.
Kur klienti i vjetër është ende në përdorim
Klienti 2.x ende pranon një skedar kredencialesh, dhe një varg çelësash mund t'i përgjigjet promptit të tij pa arritur sekreti kurrë në disk. Një mbështjellës e zgjidh zërin, kështu që skedari emërton kërkimin dhe jo fjalëkalimin. Ky rregullim varet nga një varg çelësash i shkyçur, të cilin një kontejner pa sesion hyrjeje ose një njësi që niset përpara se dikush të hyjë nuk mund ta ofrojnë. Mjeti i kërkimit atëherë raporton një koleksion ku nuk mund të shkruajë, kështu që gabimi duket si një defekt kredencialesh kur është defekt i vargut të çelësave.
Përpara se të ndërtosh ndonjë nga këto, kontrollo nëse një cilësim keepalive në profil e heq plotësisht nevojën për rinisje. Një sesion që qëndron lart nuk arrin kurrë promptin që po përpiqesh të automatizosh.