openvpn3 session-start figyelmen kívül hagyja a hitelesítőadat-fájlt
A 3.x kliens a munkamenet indításakor veszi át a hitelesítő adatokat, és nem olvas mentett fájlt. Használja a kérést vagy az automatikus betöltés útját, és fogadja el, mit tárol mindegyik.
Csatlakozzon a 2.x klienssel, és a profil működik; adja ugyanazt a fájlt a 3.x kliensnek, és megáll egy jelszókérésnél. Adja át a --auth-user-pass creds.txt kapcsolót a openvpn3 session-start parancsnak, és az eredmény ugyanaz, mert az újabb kliensben nincs olyan szakasz, amely a fájlt olvasná. Az elutasítás szándékos: a hitelesítő adatok egy munkamenethez tartoznak, és a munkamenetet egy szolgáltatás hozza létre, nem a termináljában futó folyamat. Válasszon az interaktív kérés és az automatikus betöltő segéd között, és tudja, mit tárol mindegyik.
Miért nincs hova mennie a mentett fájlnak
Az újabb tervezésben a konfigurációkezelés és a munkamenet-kezelés külön szolgáltatások, amelyek a rendszerbuszon keresztül beszélnek. Ez az elkülönítés teszi lehetővé, hogy egy egyszerű felhasználó munkamenetet indítson anélkül, hogy egy kiemelt jogú démon az ő nevében olvasna egy védett jelszófájlt. A fájlalapú hitelesítő adatoknak nincs helyük ebben a modellben, mert nincs démonoldali indítás, amely olvasná őket. Az elutasítás az architektúra következménye, nem hiányzó funkció.
Érdemes megnevezni a régi mintát, hogy könnyebb legyen elfelejteni: a profil egy hitelesítőadat-fájlra hivatkozik, és a démon akkor olvassa be, amikor az alagút elindul. Az új modellben a hitelesítő adatok egy munkamenethez tartoznak, és akkor kerülnek átadásra, amikor az a munkamenet elkezdődik. A openvpn3 session-start --config work.ovpn kéri őket, a --auth-user-pass creds.txt pedig elutasításra kerül, mert azon az úton semmi nem nyitná meg a fájlt. Minden 2.x recept, amit talál, olyan szakaszt feltételez, amely már nem létezik.
A konfiguráció és a helyszíni beállítások szintén elkülönülnek, ami egy második meglepetést magyaráz meg. Egy profil teljesnek tűnhet, miközben az általa létrehozott kapcsolatból hiányzik az útválasztási és feloldó konfiguráció. Ezeket a részeket helyszíni beállításként alkalmazzák, az importált fájltól elkülönítve.
A kérés útvonala és az általa hagyott munkamenet
A jelszó megadása a munkamenet indításakor az előirányzott munkafolyamat. A kliens egyszer kérdez, átadja a hitelesítő adatokat a munkamenet hátterének, és folytatja:
openvpn3 session-start --config work.ovpn
openvpn3 sessions-list
Ezen az úton semmi nem íródik lemezre. A munkamenet a terminál bezárása után is fut, ami meglepi azokat, akik azt várják, hogy a folyamat a héjukkal együtt meghal. Pontosan ez a lényege annak, hogy a munkamenet-kezelést szolgáltatásba helyezzük. A munkamenet túléli a terminált, amely kérte, és kifejezetten le kell állítani.
Egy munkaállomáson, ahol ember ül előtte, ez a legbiztonságosabb lehetőség is, mert nincs tárolt titok, amelyet védeni vagy elfelejteni kellene. Csak ott alkalmatlan, ahol senki nincs jelen gépelni.
Automatizálás ember nélkül a billentyűzetnél
Ahol egy gépre ember nélkül kell csatlakozni, a projekt openvpn3-autoload eszközt biztosít. Beolvassa a profilok könyvtárát és minden profilhoz egy illeszkedő leírót, a leíró pedig egyszerű szövegben adja át a hitelesítő adatokat. A segéd külön bináris fájl, általában a /usr/sbin/openvpn3-autoload alatt, nem a session-start kapcsolója. Beállítása a könyvtár létrehozását, a profilnak a leíró által várt néven való másolását és a leíró megírását jelenti.
A felhasználónkénti beállítás így néz ki, és a munkamenetet birtokló fiókként futtatják. A könyvtár módja kizárja a többi helyi felhasználót:
mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload
A leíró megnevezi a hitelesítő adatokat, és automatikus indítást kér. A jelszó értékét tartsa verziókezelésen kívül:
{
"autostart": true,
"user-auth": {
"autologin": true,
"username": "svc-vpn",
"password": "change-this-value"
}
}
Ezután hívja meg egyszer a segédet, és ellenőrizze, hogy megjelenik a munkamenet. A második parancs az ellenőrzés, nem újabb beállítási lépés:
/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list
Indításkor egy openvpn3-autoload.service nevű csomagolt egység a rendszerszintű /etc/openvpn3/autoload könyvtárat használja, nem a felhasználónkéntit. Az a hely root-tulajdont és szigorúbb módot igényel, a leíró pedig továbbra is egyszerű szövegben tárolja a jelszót. A kompromisszum nyilvánvaló: a jelszó most a lemezen van, ezért kezelje titokként azt a könyvtárat, zárja ki a hoszton kívüli biztonsági mentésekből, és válassza az interaktív utat, amikor ember van jelen.
Buszhibák, amelyek jelszóhibának látszanak
Néhány, a hitelesítő adatoknak tulajdonított hiba egyáltalán nem az. A szolgáltatás aktiválási útvonalát megnevező engedélyhiba két dolog egyikét jelenti: a háttér nem fut, vagy a hívónak nincs engedélye aktiválni. Egyik sem változik meg egyetlen profil szerkesztésétől sem. Ellenőrizze a szolgáltatás állapotát és a mellékelt buszházirendet, mielőtt hozzányúl a konfigurációhoz.
Az alábbi parancsok szétválasztják a kettőt. Az első azt jelenti, fut-e a háttér; a második a friss buszhibákat mutatja:
systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20
A másik gyakori félreolvasás egy munkamenet, amely megjelenik, majd azonnal eltűnik. Ez a minta általában azt jelenti, hogy a helyszíni beállítások soha nem kerültek alkalmazásra, így az alagút az útválasztási és feloldói változtatások nélkül jött fel, amelyek hasznossá teszik. Az eseménysort olvassa, ne az utolsó sort: létrejött-e a munkamenet, elérte-e a csatlakozott állapotot, és túlélte-e, három külön tény.
Amikor a régebbi kliens még használatban van
A 2.x kliens még elfogad egy hitelesítőadat-fájlt, és egy kulcstartó válaszolhat a kérésére anélkül, hogy a titok valaha lemezre kerülne. Egy burkoló feloldja a bejegyzést, így a fájl a keresést nevezi meg, nem a jelszót. Ez az elrendezés feloldott kulcstartótól függ, amit egy bejelentkezési munkamenet nélküli konténer vagy egy olyan egység, amely bárki bejelentkezése előtt elindul, nem tud biztosítani. A keresőeszköz ilyenkor egy olyan gyűjteményt jelez, amelybe nem tud írni, így a hiba hitelesítőadat-hibának látszik, holott kulcstartóhiba.
Mielőtt bármit is építene ebből, ellenőrizze, hogy a profil keepalive-beállítása teljesen megszünteti-e az újraindítás szükségességét. Egy fent maradó munkamenet soha nem éri el a kérést, amelyet automatizálni próbál.