Niekto vám pošle profil, vy ho naimportujete a o tridsať sekúnd neskôr klient vytáča cieľ, ktorý nikto nepreveril. Najprv si súbor prečítajte v textovom editore, pretože všetko podstatné sa zmestí do hŕstky direktív: remote, proto, port, ca, cert, tls-crypt a verify-x509-name. Všetko ostatné sú predvolené hodnoty a práve tam bývajú prekvapenia.

Vypíšte každý koncový bod, ktorý môže súbor použiť

Začnite koncovými bodmi, pretože jeden profil ich môže obsahovať niekoľko. grep -nE '^[[:space:]]*(remote|proto|port|remote-random|connection)' profile.ovpn vypíše každého kandidáta v poradí súboru, vrátane tých vnorených do vložených blokov <connection>.

Keď direktíva vynechá port, klient sa vráti k predvolenej hodnote naslúchajúceho procesu, takže samotné remote vpn.example.com znamená port 1194 s akýmkoľvek proto, ktorý sa v súbore objaví neskôr. Niekoľko obyčajných riadkov remote sú alternatívy: klient ich skúša po poradí, ak ich remote-random nezamieša, a nikdy potichu nenahradí hostiteľa iného operátora. Dva riadky remote na nesúvisiacich doménach sú miesto, kde sa zastavíte a opýtate sa, ktorý bol mienený.

Všimnite si aj pravopis proto. tcp sa prijíma ako synonymum klientského tcp-client, ale tcp-server v klientskom profile je chyba konfigurácie, ktorá skôr visí, než aby čisto zlyhala.

Najprv potvrďte meno, potom port

dig +short vpn.example.com vám povie, či meno existuje a ktoré adresy vracia, a koncový bod s viacerými adresami alebo za proxy môže legitímne vrátiť niekoľko. Rozlíšenie mena je predpoklad, nie dôkaz vlastníctva; ktokoľvek môže nasmerovať meno na adresu a jedna adresa môže odpovedať za mnoho mien.

Potom skontrolujte naslúchajúci proces na porte, ktorý ste našli, podľa transportu. Cez TCP openssl s_client -connect vpn.example.com:1194 -servername vpn.example.com vypíše reťazec, ktorý server predkladá. Cez UDP potrebujete DTLS: openssl s_client -dtls1_2 -connect vpn.example.com:1194 vedie ten istý handshake cez datagramy. Dokončený handshake dokazuje, že niečo naslúcha a drží certifikát, čo je viac, než ukáže ping, a menej, než vyžadujú vlastné nastavenia dôvery profilu.

Keď handshake zlyhá a hostiteľ odpovedá na ping, port je pravdepodobne nesprávny alebo filtrovaný. Berte to ako dôvod vyžiadať správny port, nie ako pozvánku prečesať tie susedné. nc -vzu navyše na niektorých zásobníkoch hlási úspech, aj keď nič nenaslúcha, takže holá UDP sonda nič neznamená bez handshaku za ňou.

Špendlíky dôvery čítajte oddelene od adresy

Adresa rozhoduje, kam klient ide; blok dôvery rozhoduje, komu uverí, keď dorazí. verify-x509-name "vpn.example.com" name pripína všeobecné meno subjektu a remote-cert-tls server vyžaduje rozšírené použitie kľúča na autentifikáciu servera. Profil, ktorý vám odovzdá operátor, by mal niesť oboje.

Hľadajte ca, vložený blok <ca> a buď tls-crypt, alebo tls-auth. Profil s tls-auth potrebuje na klientovi key-direction 1, keď strana servera používa smer 0, a nezhoda zhodí handshake chybou TLS, ktorá sa číta ako závada certifikátu. Vložená CA, ktorá nepatrí operátorovi, ktorého meno ste práve rozlíšili, znamená, že súbor bol zložený z dvoch zdrojov, a to je prípad, ktorý treba rozhodne odmietnuť.

verify-x509-name prijíma režimy name, name-prefix alebo subject a posledný očakáva plné rozlišujúce meno v presnom poradí, v akom ho server vypisuje. Vyberte režim, ktorý zodpovedá tvaru hodnoty, pretože klient odmietne každé spojenie namiesto varovania pred tesným minnutím. Pre súbor, ktorý ste nenapísali, je name s jednoduchým menom hostiteľa najmenej prekvapivá voľba.

Skontrolujte voľby, ktoré zlyhávajú potichu

OpenVPN 2.6 vyjednáva šifry cez data-ciphers a profil, ktorý nesie len starý riadok cipher AES-256-CBC, môže dokončiť riadiaci kanál a potom uviaznuť na dátach. Prečítanie tejto hodnoty vám povie, či súbor predchádza server, ku ktorému sa pripájate; stránka manuálu pre 2.6 uvádza poradie vyjednávania, ak to potrebujete operátorovi ocitovať.

auth-user-pass bez názvu súboru znamená, že sa klient opýta, takže profil, ktorý vyzerá sebestačne, napriek tomu potrebuje prihlasovacie údaje. auth-user-pass credentials.txt znamená, že očakáva súbor, ktorý vám pravdepodobne neposlali. nobind a resolv-retry infinite sú obyčajné a neškodné, kým explicit-exit-notify je len pre UDP a cez TCP zbytočný.

Nič z toho nemení, kam sa profil pripája, ale každé mení, či sa pripojí vôbec, a nič z toho nie je vidieť v dialógu importu klienta.

Rozhodnite a potom zapíšte, čo ste rozhodli

Po tomto čítaní existujú tri výsledky a len jeden je import. Keď koncový bod a špendlíky zodpovedajú pokynom, ktoré ste dostali iným kanálom, naimportujte ho. Keď koncový bod vyzerá správne, ale špendlíky alebo CA nesedia, požiadajte o opravený súbor. Keď súbor mieša koncové body alebo materiál CA z rôznych zdrojov, vymažte ho a požiadajte o čerstvú kópiu.

Zapíšte hash, ktorý ste prešli, aby ďalší človek vedel, či sa súbor zmenil: sha256sum profile.ovpn, vložený vedľa koncového bodu vo vašich poznámkach. Profil je celistvé usporiadanie, nie zoznam adries, takže nikdy nevkladajte funkčné remote do cudzieho bloku dôvery a pritom si nechajte ich prihlasovacie údaje.

Súkromné kľúče a heslá držte mimo snímok obrazovky a chatových vlákien, keď porovnávate poznámky. Koncový bod a neverejné voľby stačia na presnú otázku a zvyšok patrí do súboru.

Ak ho napriek tomu naimportujete a prvý pokus zlyhá, spustite klienta s --verb 3 a prečítajte si prvých desať riadkov: rozlíšená adresa remote, vyjednaný proto a chyba TLS sa objavia v tomto poradí, čo vám povie, ktorú z kontrol vyššie ste vynechali.

Súvisiace články