openvpn3 session-start ignorē jūsu pieteikšanās datu failu
3.x klients pieteikšanās datus paņem sesijas sākumā un nelasa saglabātu failu. Izmantojiet uzvedni vai autoload ceļu un ziniet, ko katrs saglabā.
Pieslēdzieties ar 2.x klientu, un profils darbojas; nododiet to pašu failu 3.x klientam, un tas apstājas pie paroles uzvednes. Nododiet --auth-user-pass creds.txt komandai openvpn3 session-start, un rezultāts ir tāds pats, jo jaunākajam klientam nav posma, kas lasītu failu. Atteikums ir apzināts: pieteikšanās dati pieder sesijai, un sesiju veido pakalpojums, nevis process jūsu terminālī. Izvēlieties starp interaktīvo uzvedni un autoload palīgu un ziniet, ko katrs saglabā.
Kāpēc saglabātajam failam nav kur palikt
Jaunajā dizainā konfigurācijas pārvaldība un sesiju pārvaldība ir atsevišķi pakalpojumi, kas sazinās pa sistēmas kopni. Tieši šī atdalīšana ļauj parastam lietotājam sākt sesiju, priviliģētam dēmonam viņa vietā nelasot aizsargātu paroles failu. Uz failiem balstītiem pieteikšanās datiem šajā modelī nav vietas, jo nav dēmona puses palaišanas, kas tos lasītu. Atteikums ir arhitektūras sekas, nevis trūkstoša funkcija.
Veco modeli ir vērts nosaukt, lai to vieglāk atmestu: profils atsaucas uz pieteikšanās datu failu, un dēmons to nolasa, kad tunelis startē. Jaunajā modelī pieteikšanās dati pieder sesijai un tiek sniegti, kad šī sesija sākas. openvpn3 session-start --config work.ovpn tos pieprasa, un --auth-user-pass creds.txt tiek noraidīts, jo šajā ceļā nekas neatvērtu failu. Katrs 2.x receptes variants, ko atrodat, paredz posmu, kas vairs neeksistē.
Konfigurācija un vietnes lokālie iestatījumi arī ir atdalīti, kas izskaidro otru pārsteigumu. Profils var izskatīties pilnīgs, kamēr tā radītajam savienojumam trūkst maršrutēšanas un resolvera konfigurācijas. Šīs daļas tiek piemērotas kā vietnes lokālie iestatījumi, atsevišķi no importētā faila.
Uzvednes ceļš un sesija, ko tas atstāj
Paroles sniegšana sesijas sākumā ir paredzētā darbplūsma. Klients jautā vienreiz, nodod pieteikšanās datus sesijas backendam un turpina:
openvpn3 session-start --config work.ovpn
openvpn3 sessions-list
Pa šo ceļu diskā nekas netiek ierakstīts. Sesija turpina darboties arī pēc termināļa aizvēršanas, kas pārsteidz cilvēkus, kuri gaida, ka process mirs kopā ar viņu apvalku. Tieši tāpēc sesiju apstrāde pārcelta uz pakalpojumu. Sesija pārdzīvo termināli, kas to pieprasīja, un tā ir skaidri jāaptur.
Darbstacijai, kuras priekšā sēž cilvēks, tas ir arī drošākais variants, jo nav saglabāta noslēpuma, kas jāaizsargā vai jāaizmirst. Tas nav piemērots tikai tur, kur nav neviena, kas ievadītu.
Automatizācija bez cilvēka pie klaviatūras
Tur, kur mašīnai jāpieslēdzas bez cilvēka, projekts nodrošina openvpn3-autoload. Tas nolasa profilu direktoriju un katram profilam atbilstošu aprakstu, un apraksts sniedz pieteikšanās datus atklātā tekstā. Palīgs ir atsevišķs binārs fails, parasti /usr/sbin/openvpn3-autoload, nevis session-start karodziņš. Tā iestatīšana nozīmē izveidot direktoriju, nokopēt profilu ar nosaukumu, ko apraksts sagaida, un uzrakstīt aprakstu.
Viena lietotāja iestatījums izskatās šādi, izpildīts ar kontu, kuram piederēs sesija. Direktorijas režīms neielaiž citus lokālos lietotājus:
mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload
Apraksts nosauc pieteikšanās datus un pieprasa automātisku startu. Turiet paroles vērtību ārpus versiju kontroles:
{
"autostart": true,
"user-auth": {
"autologin": true,
"username": "svc-vpn",
"password": "change-this-value"
}
}
Pēc tam vienreiz izsauciet palīgu un apstipriniet, ka sesija parādās. Otrā komanda ir pārbaude, nevis vēl viens iestatīšanas solis:
/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list
Sāknēšanas laikā iepakota vienība ar nosaukumu openvpn3-autoload.service izmanto sistēmas mēroga direktoriju /etc/openvpn3/autoload, nevis lietotāja direktoriju. Šai vietai nepieciešama root īpašumtiesības un stingrāks režīms, un apraksts joprojām glabā paroli atklātā tekstā. Kompromiss ir skaidrs: parole tagad atrodas diskā, tāpēc uzskatiet šo direktoriju par noslēpumu, izslēdziet to no ārpus resursdatora dublējumiem un vienmēr, kad ir cilvēks, izvēlieties interaktīvo ceļu.
Kopnes kļūmes, kas izskatās kā paroles kļūmes
Dažas kļūmes, kas tiek attiecinātas uz pieteikšanās datiem, nemaz nav tādas. Atļauju kļūda, kas nosauc pakalpojuma aktivizēšanas ceļu, nozīmē vienu no diviem: backends nedarbojas, vai izsaucējam nav atļaujas to aktivizēt. Nekāda profila rediģēšana nemainīs ne vienu, ne otru. Pirms pieskaraties konfigurācijai, pārbaudiet pakalpojuma stāvokli un piegādāto kopnes politiku.
Tālāk esošās komandas atdala šos divus. Pirmā ziņo, vai backends darbojas; otrā rāda jaunākās kopnes kļūdas:
systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20
Vēl viens bieži nepareizs nolasījums ir sesija, kas parādās un uzreiz pazūd. Šāds modelis parasti nozīmē, ka vietnes lokālie iestatījumi nekad netika piemēroti, tāpēc tunelis pacēlās bez maršrutiem un resolvera izmaiņām, kas to padara noderīgu. Lasiet secību, nevis pēdējo rindu: vai sesija tika izveidota, vai tā sasniedza savienotu stāvokli un vai tā izdzīvoja, ir trīs atsevišķi fakti.
Kad vecākais klients vēl tiek lietots
2.x klients joprojām pieņem pieteikšanās datu failu, un atslēgu glabātuve var atbildēt uz tā uzvedni, noslēpumam nekad nenokļūstot diskā. Ietinējs atrisina ierakstu, tāpēc fails nosauc meklējumu, nevis paroli. Šis izkārtojums ir atkarīgs no atslēgtas atslēgu glabātuves, ko nevar nodrošināt konteiners bez pieteikšanās sesijas vai vienība, kas startē pirms kāds piesakās. Tad meklēšanas rīks ziņo par kolekciju, kurā tas nevar rakstīt, tāpēc kļūda izskatās kā pieteikšanās datu kļūme, lai gan tā ir atslēgu glabātuves kļūme.
Pirms kaut ko tādu būvējat, pārbaudiet, vai keepalive iestatījums profilā pilnībā novērš nepieciešamību restartēt. Sesija, kas paliek augšā, nekad nesasniedz uzvedni, kuru mēģināt automatizēt.