Povežite se s klijentom 2.x i profil radi; predajte istu datoteku klijentu 3.x i ona se zaustavlja na upitu za lozinku. Predajte --auth-user-pass creds.txt naredbi openvpn3 session-start i rezultat je isti, jer noviji klijent nema fazu koja čita datoteku. Odbijanje je namjerno: vjerodajnice pripadaju sesiji, a sesiju stvara servis, a ne proces u vašem terminalu. Odaberite između interaktivnog upita i pomoćnika za automatsko učitavanje i znajte šta svaki od njih pohranjuje.

Zašto spremljena datoteka nema kamo otići

U novijem dizajnu, upravljanje konfiguracijom i upravljanje sesijama su odvojeni servisi koji razgovaraju preko sistemske sabirnice. Upravo to razdvajanje omogućuje običnom korisniku da započne sesiju bez da privilegovani demon čita zaštićenu datoteku lozinki u njegovo ime. Vjerodajnice zasnovane na datoteci nemaju mjesto u tom modelu, jer nema pokretanja na strani demona koje bi ih čitalo. Odbijanje je posljedica arhitekture, a ne nedostajuća značajka.

Starom obrascu vrijedi dati ime da bi ga se lakše odviklo: profil upućuje na datoteku s vjerodajnicama, a demon je čita kad tunel kreće. U novom modelu vjerodajnice pripadaju sesiji i dostavljaju se kad ta sesija počne. openvpn3 session-start --config work.ovpn ih traži, a --auth-user-pass creds.txt se odbija jer ništa na tom putu ne bi otvorilo datoteku. Svaki recept za 2.x koji nađete pretpostavlja fazu koja više ne postoji.

Konfiguracija i lokalne postavke stranice također su odvojene, što objašnjava drugo iznenađenje. Profil može izgledati potpun dok veza koju stvara nema konfiguraciju usmjeravanja i razrješivača. Ti se dijelovi primjenjuju kao lokalne postavke stranice, odvojeno od uvezene datoteke.

Put upita i sesija koju ostavlja

Dostavljanje lozinke pri početku sesije predviđeni je tijek rada. Klijent pita jednom, predaje vjerodajnice pozadini sesije i nastavlja:

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

Tim se putem ništa ne zapisuje na disk. Sesija nastavlja raditi i nakon zatvaranja terminala, što iznenađuje ljude koji očekuju da će proces umrijeti sa svojom ljuskom. Upravo je to smisao premještanja upravljanja sesijama u servis. Sesija nadživljava terminal koji ju je zatražio i mora se zaustaviti izričito.

Za radnu stanicu s čovjekom pred njom ovo je i najsigurnija opcija, jer nema spremljene tajne koju treba štititi ili zaboraviti. Neprikladna je samo tamo gdje nema nikoga da upiše.

Automatizacija bez osobe za tipkovnicom

Gdje se stroj mora povezati bez osobe, projekt isporučuje openvpn3-autoload. On čita direktorij profila i odgovarajući deskriptor za svaki profil, a deskriptor dostavlja vjerodajnice u običnom tekstu. Pomoćnik je zasebna binarna datoteka, obično na /usr/sbin/openvpn3-autoload, a ne zastavica naredbe session-start. Postavljanje znači stvaranje direktorija, kopiranje profila pod imenom koje deskriptor očekuje i pisanje deskriptora.

Postavka po korisniku izgleda ovako i pokreće se računom koji će posjedovati sesiju. Način rada direktorija drži druge lokalne korisnike van:

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

Deskriptor imenuje vjerodajnice i traži automatski početak. Držite vrijednost lozinke izvan kontrole verzija:

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

Zatim jednom pozovite pomoćnika i potvrdite da se sesija pojavljuje. Druga naredba je provjera, a ne još jedan korak postavljanja:

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

Pri podizanju sustava pakirani unit nazvan openvpn3-autoload.service koristi sistemski direktorij /etc/openvpn3/autoload, a ne onaj po korisniku. To mjesto zahtijeva vlasništvo roota i stroži način rada, a deskriptor još drži lozinku u čistom tekstu. Kompromis je jasan: lozinka sad leži na disku, pa tretirajte taj direktorij kao tajnu, isključite ga iz sigurnosnih kopija izvan hosta i odaberite interaktivni put kad je osoba prisutna.

Kvarovi sabirnice koji izgledaju kao kvarovi lozinke

Neki kvarovi koji se pripisuju vjerodajnicama nisu takvi. Pogreška dopuštenja koja imenuje put aktivacije servisa znači jedno od dvoga: pozadina ne radi ili pozivatelj nema dopuštenje da je aktivira. Nijedno uređivanje profila neće to promijeniti. Provjerite stanje servisa i isporučenu politiku sabirnice prije nego dotaknete konfiguraciju.

Naredbe u nastavku razdvajaju to dvoje. Prva izvješćuje radi li pozadina; druga prikazuje nedavne pogreške sabirnice:

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

Drugo često pogrešno čitanje je sesija koja se pojavi i odmah nestane. Taj obrazac obično znači da lokalne postavke stranice nikada nisu primijenjene, pa je tunel podignut bez promjena usmjeravanja i razrješivača koje ga čine korisnim. Čitajte slijed, a ne zadnji redak: je li sesija stvorena, je li dosegnula spojeno stanje i je li preživjela jesu tri odvojene činjenice.

Kad se stariji klijent još koristi

Klijent 2.x još prihvaća datoteku s vjerodajnicama, a privjesak ključeva može odgovoriti na njegov upit bez da tajna ikada dođe na disk. Omotač razrješava zapis, pa datoteka imenuje pretragu, a ne lozinku. Taj raspored ovisi o otključanom privjesku ključeva, što kontejner bez sesije prijave ili unit koji kreće prije nego se bilo tko prijavi ne može osigurati. Alat za pretragu tada izvješćuje o zbirci u koju ne može pisati, pa pogreška izgleda kao kvar vjerodajnica, a to je kvar privjeska ključeva.

Prije nego išta od toga izgradite, provjerite uklanja li postavka keepalive u profilu potrebu za ponovnim pokretanjem. Sesija koja ostaje podignuta nikada ne dolazi do upita koji pokušavate automatizirati.

Povezani članci