Povežite se z odjemalcem 2.x in profil deluje; predajte isto datoteko odjemalcu 3.x in ustavi se pri pozivu za geslo. Predajte --auth-user-pass creds.txt ukazu openvpn3 session-start in rezultat je enak, ker novejši odjemalec nima stopnje, ki bi brala datoteko. Zavrnitev je namerna: poverilnice pripadajo seji, sejo pa ustvari storitev, ne proces v vašem terminalu. Izberite med interaktivnim pozivom in pomočnikom autoload ter vedite, kaj vsak od njiju shrani.

Zakaj shranjena datoteka nima kam iti

V novejši zasnovi sta upravljanje konfiguracije in upravljanje sej ločeni storitvi, ki komunicirata prek sistemskega vodila. Prav ta ločitev omogoča običajnemu uporabniku, da začne sejo, ne da bi privilegirani demon v njegovem imenu bral zaščiteno datoteko z gesli. Poverilnice na podlagi datotek v tem modelu nimajo mesta, ker ni zagona na strani demona, ki bi jih bral. Zavrnitev je posledica arhitekture, ne manjkajoča funkcija.

Stari vzorec velja poimenovati, da ga bo lažje odvaditi: profil se sklicuje na datoteko s poverilnicami in demon jo prebere, ko se tunel zažene. V novem modelu poverilnice pripadajo seji in se zagotovijo, ko se ta seja začne. openvpn3 session-start --config work.ovpn zanje vpraša, --auth-user-pass creds.txt pa je zavrnjen, ker nič na tej poti ne bi odprlo datoteke. Vsak recept za 2.x, ki ga najdete, predpostavlja stopnjo, ki je ni več.

Konfiguracija in lokalne nastavitve mesta so prav tako ločene, kar pojasnjuje drugo presenečenje. Profil je lahko videti popoln, medtem ko povezavi, ki jo ustvari, manjka konfiguracija usmerjanja in resolverja. Ti deli se uporabijo kot lokalne nastavitve mesta, ločeno od uvožene datoteke.

Pot poziva in seja, ki jo pusti

Zagotavljanje gesla ob začetku seje je predviden delovni tok. Odjemalec vpraša enkrat, preda poverilnice zaledju seje in nadaljuje:

openvpn3 session-start --config work.ovpn
openvpn3 sessions-list

Po tej poti se na disk ne zapiše nič. Seja deluje naprej tudi po zaprtju terminala, kar preseneti ljudi, ki pričakujejo, da bo proces umrl skupaj z njihovo lupino. Prav to je smisel selitve obravnave sej v storitev. Seja preživi terminal, ki jo je zahteval, in jo je treba izrecno ustaviti.

Za delovno postajo s človekom pred njo je to tudi najvarnejša možnost, ker ni shranjene skrivnosti, ki bi jo bilo treba zaščititi ali pozabiti. Neustrezna je le tam, kjer ni nikogar, ki bi vnesel.

Avtomatizacija brez osebe za tipkovnico

Kjer se mora stroj povezati brez osebe, projekt ponuja openvpn3-autoload. Prebere imenik profilov in ustrezen opisnik za vsak profil, opisnik pa zagotovi poverilnice v čistem besedilu. Pomočnik je ločena binarna datoteka, običajno v /usr/sbin/openvpn3-autoload, ne zastavica session-start. Nastaviti ga pomeni ustvariti imenik, kopirati profil pod imenom, ki ga opisnik pričakuje, in zapisati opisnik.

Nastavitev za posameznega uporabnika je videti takole, izvedena kot račun, ki bo imel sejo. Način imenika zadrži druge lokalne uporabnike zunaj:

mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload

Opisnik poimenuje poverilnice in zahteva samodejni zagon. Vrednost gesla hranite zunaj nadzora različic:

{
  "autostart": true,
  "user-auth": {
    "autologin": true,
    "username": "svc-vpn",
    "password": "change-this-value"
  }
}

Nato enkrat pokličite pomočnika in potrdite, da se seja pojavi. Drugi ukaz je preverjanje, ne še en korak nastavitve:

/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list

Ob zagonu pakirana enota z imenom openvpn3-autoload.service uporablja sistemski imenik /etc/openvpn3/autoload, ne tistega za uporabnika. Ta lokacija potrebuje lastništvo roota in strožji način, opisnik pa še vedno hrani geslo v čistem besedilu. Kompromis je izrecen: geslo je zdaj na disku, zato to imenik obravnavajte kot skrivnost, izključite ga iz varnostnih kopij zunaj gostitelja in izberite interaktivno pot vsakič, ko je prisotna oseba.

Okvare vodila, ki so videti kot okvare gesla

Nekatere okvare, ki se pripisujejo poverilnicam, sploh niso takšne. Napaka dovoljenj, ki poimenuje pot aktivacije storitve, pomeni eno od dveh stvari: zaledje ne teče, ali klicatelj nima dovoljenja, da bi ga aktiviral. Nobeno urejanje profila ne bo spremenilo nobene od obeh. Preden se dotaknete konfiguracije, preverite stanje storitve in priloženo politiko vodila.

Spodnji ukazi ločijo to dvoje. Prvi poroča, ali zaledje teče; drugi prikaže nedavne napake vodila:

systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20

Drugo pogosto napačno branje je seja, ki se pojavi in takoj izgine. Ta vzorec običajno pomeni, da lokalne nastavitve mesta niso bile nikoli uporabljene, zato se je tunel dvignil brez poti in sprememb resolverja, ki ga naredijo koristnega. Berite zaporedje, ne zadnje vrstice: ali je bila seja ustvarjena, ali je dosegla povezano stanje in ali je preživela, so tri ločena dejstva.

Ko se starejši odjemalec še uporablja

Odjemalec 2.x še vedno sprejme datoteko s poverilnicami in keyring lahko odgovori na njegov poziv, ne da bi skrivnost kdaj prišla na disk. Ovoj reši vnos, zato datoteka poimenuje iskanje, ne gesla. Ta ureditev je odvisna od odklenjenega keyringa, ki ga vsebnik brez prijavne seje ali enota, ki se zažene, preden se kdo prijavi, ne moreta zagotoviti. Orodje za iskanje nato poroča o zbirki, v katero ne more pisati, zato je napaka videti kot okvara poverilnic, čeprav je okvara keyringa.

Preden karkoli od tega zgradite, preverite, ali nastavitev keepalive v profilu popolnoma odpravi potrebo po ponovnem zagonu. Seja, ki ostane pokonci, nikoli ne doseže poziva, ki ga poskušate avtomatizirati.

Sorodni članki