Kaip patikrinti OpenVPN profilio serverį prieš jį importuojant
Pirmiausia teksto rengyklėje perskaitykite remote įrašus, transporto sluoksnį ir pasitikėjimo kaiščius; vardo išsprendimas įrodo pasiekiamumą, o ne nuosavybę.
Kažkas atsiunčia jums profilį, jūs jį importuojate, o po trisdešimties sekundžių klientas skambina tikslui, kurio niekas nepatikrino. Pirmiausia perskaitykite failą teksto rengyklėje, nes visa, kas svarbu, telpa saujoje direktyvų: remote, proto, port, ca, cert, tls-crypt ir verify-x509-name. Visa kita yra numatytosios reikšmės, ir būtent ten gyvena netikėtumai.
Išvardykite kiekvieną galinį tašką, kurį failas gali naudoti
Pradėkite nuo galinių taškų, nes vienas profilis gali turėti kelis. grep -nE '^[[:space:]]*(remote|proto|port|remote-random|connection)' profile.ovpn išspausdina kiekvieną kandidatą failo tvarka, įskaitant įterptus į eilutinius <connection> blokus.
Kai direktyva praleidžia prievadą, klientas grįžta prie klausytojo numatytosios reikšmės, todėl vien remote vpn.example.com reiškia 1194 prievadą su bet kokiu proto, kuris pasirodys vėliau faile. Keli paprasti remote įrašai yra alternatyvos: klientas bando juos iš eilės, nebent remote-random juos sumaišo, ir niekada tyliai nepakeičia kito operatoriaus mazgo. Du remote įrašai nesusijusiuose domenuose yra vieta, kur sustojate ir klausiate, kuris buvo numatytas.
Atkreipkite dėmesį ir į proto rašybą. tcp priimamas kaip kliento pusės tcp-client sinonimas, tačiau tcp-server kliento profilyje yra konfigūracijos klaida, kuri linkusi pakibti, o ne švariai žlugti.
Pirmiausia patvirtinkite vardą, paskui prievadą
dig +short vpn.example.com pasako, ar vardas egzistuoja ir kokius adresus grąžina, o kelių adresų ar už tarpinio serverio esantis galinis taškas gali teisėtai grąžinti kelis. Vardo išsprendimas yra prielaida, o ne nuosavybės įrodymas; bet kas gali nukreipti vardą į adresą, ir vienas adresas gali atsakyti už daugelį vardų.
Tada patikrinkite klausytoją rastame prievade pagal transporto sluoksnį. Per TCP openssl s_client -connect vpn.example.com:1194 -servername vpn.example.com išspausdina grandinę, kurią pateikia serveris. Per UDP reikia DTLS: openssl s_client -dtls1_2 -connect vpn.example.com:1194 atlieka tą patį rankos paspaudimą per datagramas. Baigtas rankos paspaudimas įrodo, kad kažkas klausosi ir turi sertifikatą, o tai yra daugiau nei parodo ping ir mažiau nei reikalauja paties profilio pasitikėjimo nustatymai.
Kai rankos paspaudimas nepavyksta, o mazgas atsako į ping, prievadas greičiausiai neteisingas arba filtruojamas. Laikykite tai priežastimi prašyti teisingo prievado, o ne kvietimu šluoti gretimus. nc -vzu kai kuriuose stekuose taip pat praneša sėkmę, kai niekas neklauso, todėl plikas UDP bandymas nieko nereiškia be rankos paspaudimo už jo.
Pasitikėjimo kaiščius skaitykite atskirai nuo adreso
Adresas nusprendžia, kur klientas eina; pasitikėjimo blokas nusprendžia, kuo jis tiki atvykęs. verify-x509-name "vpn.example.com" name prisega subjekto bendrą vardą, o remote-cert-tls server reikalauja išplėstinio rakto naudojimo serverio autentifikavimui. Operatoriaus duotas profilis turėtų turėti abu.
Ieškokite ca, eilutinio <ca> bloko ir arba tls-crypt, arba tls-auth. Profiliui su tls-auth kliente reikia key-direction 1, kai serverio pusė naudoja 0 kryptį, o neatitikimas sugriauna rankos paspaudimą TLS klaida, kuri skaitoma kaip sertifikato defektas. Eilutinis CA, kuris nepriklauso tam operatoriui, kurio vardą ką tik išsprendėte, reiškia, kad failas surinktas iš dviejų šaltinių, ir būtent šį atvejį verta ryžtingai atmesti.
verify-x509-name priima name, name-prefix arba subject režimus, o paskutinis tikisi viso skiriamojo vardo tokia pačia tvarka, kokia jį spausdina serveris. Pasirinkite režimą, atitinkantį reikšmės formą, nes klientas atmeta kiekvieną ryšį, o ne įspėja apie beveik sutapimą. Failui, kurio nerašėte, name su paprastu mazgo vardu yra mažiausiai netikėtas pasirinkimas.
Patikrinkite parinktis, kurios tyliai žlunga
OpenVPN 2.6 derasi dėl šifrų per data-ciphers, o profilis, turintis tik seną cipher AES-256-CBC eilutę, gali užbaigti valdymo kanalą ir tada sustoti ties duomenimis. To vertės perskaitymas pasako, ar failas senesnis už serverį, prie kurio jungiatės; 2.6 vadovo puslapis išvardija derybų tvarką, jei reikia pacituoti operatoriui.
auth-user-pass be failo vardo reiškia, kad klientas klaus, todėl savarankiškai atrodančiam profiliui vis tiek reikia prisijungimo duomenų. auth-user-pass credentials.txt reiškia, kad jis tikisi failo, kuris jums greičiausiai nebuvo atsiųstas. nobind ir resolv-retry infinite yra įprasti ir nekenksmingi, o explicit-exit-notify skirtas tik UDP ir beprasmis per TCP.
Nė vienas iš jų nekeičia, kur profilis jungiasi, bet kiekvienas keičia, ar jis apskritai prisijungs, ir nė vienas nematomas kliento importavimo dialoge.
Nuspręskite, tada užrašykite, ką nusprendėte
Po šio skaitymo yra trys baigtys, ir tik viena yra importavimas. Kai galinis taškas ir kaiščiai atitinka nurodymus, gautus kitu kanalu, importuokite jį. Kai galinis taškas atrodo teisingas, bet kaiščiai ar CA nesutampa, paprašykite pataisyto failo. Kai failas maišo skirtingų šaltinių galinius taškus ar CA medžiagą, ištrinkite jį ir paprašykite naujos kopijos.
Užrašykite peržiūrėtą maišą, kad kitas žmogus žinotų, ar failas pasikeitė: sha256sum profile.ovpn, įklijuotas prie galinio taško jūsų užrašuose. Profilis yra visas išdėstymas, o ne adresų sąrašas, todėl niekada neįterpkite veikiančio remote į kito pasitikėjimo bloką, palikdami jo prisijungimo duomenis.
Laikykite privačius raktus ir slaptažodžius toliau nuo ekrano kopijų ir pokalbių gijų, kol lyginate užrašus. Galinio taško ir ne slaptų parinkčių pakanka tiksliam klausimui užduoti, o likusi vieta yra faile.
Jei vis dėlto importuosite ir pirmas bandymas nepavyks, paleiskite klientą su --verb 3 ir perskaitykite pirmas dešimt eilučių: išspręstas remote adresas, suderėtas proto ir TLS klaida pasirodo šia tvarka, o tai pasako, kurią iš aukščiau išvardytų patikrų praleidote.