Az érvénytelen titok tárolóprobléma, nem jelszószabály
Egy elutasított hitelesítő adat lehet, hogy soha nem ért el az átjáróig. Először a bemeneti tárolót, a hitelesítési szakaszt és magát a fiókot hasonlítsa össze.
Az „érvénytelen titok” üzenet rendszerint egyetlen következtetést szül: a VPN nem kedveli az írásjeleket. Ez a következtetés többnyire téves, mert az üzenet gyakran helyi feldolgozásból származik, mielőtt bármely átjáró a fiókra pillantott volna. Két megoldás ugyanazt a jelszót továbbítja, egy grafikus mező és egy hitelesítő adatfájl, és más-más ponton hibáznak. Hasonlítsa össze a tárolókat, mielőtt egyszerűsítene egy jelszót, amely végig rendben volt.
A hiba az átjáró előtt keletkezik
A helyi ellenőrzés, a zárolt titoktár, a hiányzó ügynök és a hibás formátumú hitelesítő adatfájl mind olyan hibát okoz, amelyet a felhasználó egyetlen elutasításként él meg. Egyikben sem szerepel a hitelesítési kiszolgáló. Az átjáró saját elutasítása külön esemény, és rendszerint más üzenettel és más időzítéssel érkezik. Akkor történik, amikor már létezik az alagút, és az adatok átadása megtörtént.
Az első kérdés tehát nem az, mely karakterek megengedettek, hanem hogy hol állt meg a kísérlet. Azt az ügyfelet, amely soha nem nyitott kapcsolatot, senki nem utasította el. Jegyezze fel a megfigyelt szakaszt, mert minden további lépés ezen a besoroláson múlik.
A megkülönböztetés azt is megváltoztatja, ki javítja. A tárolóprobléma az eszközhöz és annak tulajdonosához tartozik, a fiók elutasítása pedig ahhoz, aki a hitelesítési hátteret üzemelteti.
A tárolókat hasonlítsa össze, ne a karaktereket
A grafikus jelszómező, a kulcstároló bejegyzés, a kétsoros hitelesítő adatfájl és az automatizálás titka ugyanazt az értéket hordozza más-más borítékban. A borítéknak saját szabályai vannak, és rendszerint ezek a szabályok sérülnek. Az érték ritkán a probléma; az érték továbbítása az. Tartsa külön a két gondolatot, és a diagnózis rövidebb lesz.
| Where the value stops | What you see | What you check | Who owns the fix |
|---|---|---|---|
| GUI field or managed profile | A validation message before any connection opens | The selected authentication mode and whether the field holds the secret or the username | The device owner or the profile author |
| Keychain or secret agent | A prompt that keeps reappearing, or an agent error | Whether the agent is unlocked and holds an entry for this profile | The user who owns the keychain |
| Two-line credential file | A prompt for a password that was already supplied | Line count, line order and whether a trailing newline is present | Whoever generated the file |
| Shell argument or environment | Works interactively but fails in automation | Whether the shell expanded, trimmed or logged the value | Whoever wrote the automation |
A OpenVPN 2.6 közösségi ügyfélopciói leírják ezt a kétsoros fájlt a auth-user-pass számára, beleértve azt a viselkedést, amikor a jelszósor hiányzik: az ügyfél ilyenkor kérdez. Ez az egyetlen részlet magyarázza az „már megadtam a jelszót, mégis kéri” típusú jelentések egy egész osztályát. Arra is figyelmeztet, hogy az üres második sor jelentéssel bíró állapot, nem ártalmatlan formázási választás.
Az idézőjelek megint külön réteg: egy egyszerű hitelesítő adatfájlban az idézőjelek adatként tárolódnak, míg a héj eltávolítja őket, mielőtt a program bármit látna. Ugyanaz a karakter az egyik helyen ártalmatlan, a másikon szerkezeti elem. A táblázat nem tudja megmondani, melyik tárolót használta az ügyfél, ezért olvassa el magát az ügyfél konfigurációját, mielőtt sort választ.
A sortörések is szerkezetiek. A sorokkal tagolt mezőket tartalmazó fájl nem hordozhat sortörést tartalmazó értéket, és ez a formátum korlátja, nem a jelszó erősségéről szóló ítélet. Használja a telepítés által támogatott átadási mechanizmust, ahelyett hogy a titkot egy rögtönzött fájlhoz igazítva csonkítaná.
Építse fel a hitelesítő adatfájlt héj okozta kár nélkül
A legbiztonságosabb helyi útvonal távol tartja a titkot a héj előzményeitől és a folyamat argumentumlistájától. Olvassa be interaktívan mindkét mezőt, majd írja ki a két sort, amelyet az ügyfél vár. Minden más maradhat egy könnyen áttekinthető konfigurációs fájlban.
read -r VPN_USER
read -rs VPN_PASS
printf '%s\n%s\n' "$VPN_USER" "$VPN_PASS" > /etc/openvpn/client/creds
chmod 600 /etc/openvpn/client/creds
openvpn --config /etc/openvpn/client/office.conf --auth-user-pass /etc/openvpn/client/creds
Az első két parancs beolvassa a felhasználónevet, majd a jelszót kiírás nélkül, a harmadik kiírja mindkét sort, a negyedik korlátozza a fájlt, az utolsó pedig elindítja az ügyfelet ezzel a fájllal. Vegye észre, hogy a read -r megtartja a visszaperjeleket, és éppen az ilyen részlet teszi a működő jelszót működésképtelenné, ha kimarad.
Kerülje a fájl építését idézőjel nélküli változóval vagy héj-kiterjesztésekkel teli here-dokumentummal. Mindkettő átalakíthat karaktereket, mielőtt a fájlba kerülnek, és az így keletkező hiba VPN-elutasításnak látszik, mert a lemezen lévő jelszó valóban más, mint amelyet ismer. Ha erre gyanakszik, hasonlítsa össze a fájl bájthosszát a várt értékkel, magát a titkot kiírása nélkül. Az egy-két bájtos eltérés az idézőjelhiba jellemző jele.
Olvassa ki a szakaszt az első hibából
Tartson meg egy kísérlet első konkrét üzenetét, majd sorolja be. A helyi ellenőrzési hiba, a hiányzó privát kulcs, az elérhetetlen titokügynök és az átjáró hitelesítési hibája négy különböző eredmény, négy különböző felelőssel. Közülük csak egy szól a fiókról.
Ha az átjáró valóban elutasít egy helyesen átadott hitelesítő adatot, vizsgálja meg a fiókot, a hitelesítési hátteret és minden szükséges kihívást a rendszergazdával. Az általános hitelesítési hiba nem nevez meg tiltott karaktert.
A jóváhagyott értéket a megfelelő mechanizmuson keresztül állítsa vissza, ahelyett hogy betűkre és számjegyekre redukálná. A jelszószabály az üzemeltetőé, és az a kerülőút, amely csendben kijátssza, nem javítás. Elrejti a valódi hibát a következő ember elől is, aki ugyanazzal a hibával találkozik majd gyengébb jelszóval és jobb ötlet nélkül.