Stavite TLS omotač ispred OpenVPN i implementacija dobiva drugi prijamnik, od kojih bi samo jedan ikada trebao gledati u internet. Kad tunel radi s istog stroja, a ne uspijeva izvana, smjer je obično uperen u pogrešan od ta dva. Ono što se mora poravnati jest lanac: javno pravilo stiže do omotača, a vlastita pozadinska veza omotača stiže do pravog VPN priključka. Četiri skoka nose taj lanac i bilo koji od njih može završiti istragu prerano.

Dvije utičnice, dva vlasnika, jedna od njih javna

Omotač završava TLS za vanjsku vezu i predaje dešifriran tok bajtova običnom OpenVPN TCP prijamniku. To su odvojene utičnice s odvojenim konfiguracijskim datotekama, pa uređivanje jedne ostavlja drugu netaknutom i još uvijek naizgled zdravom. To također znači da se dvije mogu razići kad se jedna promijeni bez druge.

Rad sa samog stroja zato dokazuje vrlo malo o javnom putu. Izravna veza na izvorni port preskače omotač, veza na omotač na njegovoj LAN adresi preskače prevođenje, a samo potpuni raspored na strani klijenta uvježbava ono što radi vanjski korisnik. Imena također treba čitati pažljivo, jer localhost znači host na kojem se izvodi taj konkretni komponent, a ne host na kojem slučajno tipkate. Držite tu razliku u svojim bilješkama, jer test zabilježen bez skoka koji je pokrio poziva na usporedbu dviju različitih stvari.

Gdje smjer doista stiže

Lanac je lakše držati kao četiri skoka nego kao tri broja portova, jer isti broj može značiti različite stvari na svakom kraju. Čitajte tablicu red po red: svaki red je jedna utičnica koja mora prihvatiti vezu i zatim otvoriti sljedeću. Kad je red uperen u pogrešnog partnera, simptom u zadnjem stupcu je ono što korisnik prijavljuje.

HopListens onMust reachSymptom when it points elsewhere
Client machineA local plaintext portThe wrapper's public TLS addressPlain text offered to a TLS endpoint
Router forwardPublic TCP 443The wrapper host on its translated portWrapper records no connection at all
Wrapper, server modeIts accepted port, 8443 hereThe native VPN socket on loopbackHandshake completes, then silence
Native VPN listenerLoopback TCP portIts peer, over TCP onlyA UDP socket behind a byte-stream relay

Pravilo koje cilja na izvorni VPN port umjesto na omotač potpuno preskače TLS završetak, što je najčešći oblik ove pogreške: klijent otvara rukovanje s prijamnikom koji očekuje OpenVPN uokvirenje, pa se veza može otvoriti i zatim stati. Potvrdite prevedeni port prema konfiguracijskoj datoteci omotača, a ne prema sjećanju, jer je sljedeća osoba koja bude uređivala tu datoteku možda odabrala drugi broj. Dvije naredbe ispod pokazuju obje strane tog pitanja odjednom.

grep -nE '^[[:space:]]*(accept|connect)' /etc/stunnel/stunnel.conf
ss -lntp | grep -E ':443|:8443|:1194'

Adresa vezivanja koja vas odbija

Accept redak vezan na 127.0.0.1 odgovara samo samom hostu, pa se smjer koji stiže na LAN adresu ne može spojiti i klijent vidi odbijanje koje zvuči kao problem filtra paketa. Pogledajte utičnicu prije nego što dirnete vatrozid, jer je utičnica jeftiniji odgovor. Ili vežite omotač na sučelje na koje smjer cilja, ili ga zadržite na loopbacku i učinite da smjer stigne do loopbacka kroz nešto što stvarno radi. To su dva dizajna i svaki treba svoje pravilo.

Miješanje njih je način na koji radni omotač postane nedostupan izvana dok svaka datoteka izgleda ispravno. Provjera ispod je jedna naredba i odgovara na pitanje na koje pregled pravila vatrozida ne može. Ako izlaz pokazuje loopback adresu dok smjer cilja na LAN adresu, ispravak pripada accept retku, a ne filtru paketa.

ss -lntp '( sport = :8443 )'

Što je lokalni test doista dokazao

Uspjeh zabilježen bez skoka koji je pokrio nije dokaz o ostalim skokovima. Zabilježite koju je adresu test koristio i koji je proces odgovorio. Zatim ponovite izvan mreže, a ne s telefona na istoj Wi-Fi mreži, jer se ponašanje ukosnice razlikuje među usmjerivačima i veza koja nikada nije napustila LAN može zadovoljiti klijenta bez ikakvog sudjelovanja smjera. Samo taj drugi pokušaj uvježbava put kojim prolazi stranac.

Kad pokušaj ne uspije, pratite jednu vezu kroz oba zapisa: prihvaćene i povezane retke omotača, zatim vlastiti zapis sesije VPN demona. Prva granica koja ništa ne bilježi mjesto je sljedeće promjene. Kad OpenVPN počne uspoređivati opcije partnera, procijenite te poruke prema pravilima te implementacije. Upozorenje o nekonzistentnosti link-mtu nije automatski kobno, pričvršćivanje link-mtu na 1500 ne dokazuje da je fragmentacija prestala, a pregovaranje šifre pripada unutarnjoj OpenVPN konfiguraciji, a ne smjeru usmjerivača.

nc -vz 127.0.0.1 1194
journalctl -u stunnel -n 50 --no-pager

Te sonde pokrivaju pozadinsku utičnicu i zapis omotača, što odvaja odbijenu pozadinu od odbijenog rukovanja. Pokrenite ih dok je jedan pokušaj u tijeku, a ne poslije. Vremenske oznake iz jednog pokušaja čine usporedbu pouzdanom.

Dva identiteta, dva redoslijeda neuspjeha

Vanjski certifikat pripada omotaču, a unutarnji identitet OpenVPN-u i mogu doći od različitih tijela. Isključivanje bilo koje provjere da bi put izgledao zdrav razmjenjuje stvarnu zaštitu za kozmetički rezultat. Zadržite obje provjere i otklanjajte ih po redu, jer slijed poruka imenuje sloj: problem s certifikatom omotača pojavljuje se prije nego što se pregovara bilo koja VPN opcija, dok se kvar unutarnjeg identiteta pojavljuje tek kad je tok uspostavljen.

stunnel priručnik precizno definira accept, connect i način rada klijenta, a ti odjeljci odgovaraju na pitanje o utičnici brže od nagađanja. Kad još ne možete reći koji je sloj odgovorio, pročitajte certifikat koji javni port predstavlja naredbom ispod. Certifikat omotača u izlazu znači da je smjer stigao do omotača, a tišina ili pogreška protokola znači da nije. Ta jedna razlika štedi više vremena od bilo koje druge provjere ovdje.

openssl s_client -connect vpn.example:443 -servername vpn.example </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer

Povezani članci