Poġġi wrapper TLS quddiem OpenVPN u d-deployment jikseb it-tieni listener, li minnhom wieħed biss għandu qatt iħares lejn l-internet. Meta t-tunnel jaħdem mill-istess magna u jonqos minn barra, it-trażmissjoni normalment tkun diretta lejn il-ħażin minn tnejn. Li jrid jaqbel hija katina: ir-regola pubblika tasal sal-wrapper, u l-konnessjoni backend tal-wrapper stess tasal sal-socket VPN vera. Erba' qabżiet iġorru din il-katina, u kwalunkwe waħda minnhom tista' ttemm l-investigazzjoni kmieni.

Żewġ sockets, żewġ sidien, wieħed minnhom pubbliku

Il-wrapper itemm TLS għall-konnessjoni ta' barra u jgħaddi l-fluss tal-bytes deċifrat lil listener OpenVPN TCP ordinarju. Dawn huma sockets separati b'fajls ta' konfigurazzjoni separati, allura l-editjar ta' wieħed iħalli lill-ieħor mhux mittiefes u xorta jidher b'saħħtu. Dan ifisser ukoll li t-tnejn jistgħu jitbiegħdu minn xulxin kull meta wieħed jinbidel mingħajr l-ieħor.

Ħidma mill-magna stess għalhekk tipprova ftit ħafna dwar it-triq pubblika. Konnessjoni diretta mal-port nattiv taqbeż il-wrapper, konnessjoni mal-wrapper fl-indirizz LAN tiegħu taqbeż it-traduzzjoni, u biss it-tqassim sħiħ fuq in-naħa tal-klijent jeżerċita dak li jagħmel utent minn barra. L-ismijiet ukoll iridu jinqraw b'attenzjoni, għax localhost ifisser il-host li jħaddem dak il-komponent partikolari, u mhux il-host li qed tittajpja fuqu b'kumbinazzjoni. Żomm dik id-distinzjoni fin-noti tiegħek, għax test irreġistrat mingħajr il-qabża li kien ikopri jistieden paragun bejn żewġ affarijiet differenti.

Fejn it-trażmissjoni tassew tinżel

Il-katina tinżamm aħjar bħala erba' qabżiet milli bħala tliet numri tal-port, għax l-istess numru jista' jfisser ħwejjeġ differenti f'kull tarf. Aqra t-tabella ringiela b'ringiela: kull ringiela hija socket wieħed li jrid jaċċetta konnessjoni u mbagħad jiftaħ l-ieħor. Meta ringiela tkun diretta lejn is-sieħeb ħażin, is-sintomu fl-aħħar kolonna huwa dak li jirrapporta l-utent.

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

Regola li timmira lejn il-port VPN nattiv minflok il-wrapper taqbeż għal kollox it-tmiem tat-TLS, u din hija l-aktar forma komuni ta' dan l-iżball: il-klijent jiftaħ handshake ma' listener li jistenna l-qafas OpenVPN, allura l-konnessjoni tista' tiftaħ u mbagħad toqgħod. Ikkonferma l-port tradott mal-fajl tal-konfigurazzjoni tal-wrapper u mhux mal-memorja, għax il-persuna li jmiss li teditja dak il-fajl forsi għażlet numru differenti. Iż-żewġ kmandi hawn taħt juru ż-żewġ naħat ta' dik id-domanda fl-istess ħin.

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

L-indirizz tal-irbit li jirrifjutak

Linja accept marbuta ma' 127.0.0.1 twieġeb biss lill-host innifsu, allura trażmissjoni li tasal fuq l-indirizz LAN ma tistax tikkonnettja u l-klijent jara rifjut li jinstema' bħal problema tal-filtru tal-pakketti. Ħares lejn is-socket qabel ma tmiss il-firewall, għax is-socket huwa l-iktar tweġiba rħisa. Jew orbot il-wrapper mal-interface li lejha hija mmirata t-trażmissjoni, jew żommu fuq loopback u agħmel biex it-trażmissjoni tasal għal loopback permezz ta' xi ħaġa li tassew taħdem. Dawn huma żewġ disinni, u kull wieħed jeħtieġ ir-regola tiegħu.

It-taħlit tagħhom huwa kif wrapper li jaħdem isir ma jintlaħaqx minn barra waqt li kull fajl jidher korrett. Il-verifika hawn taħt hija kmand wieħed, u twieġeb domanda li reviżjoni tar-regoli tal-firewall ma tistax. Jekk il-ħruġ juri indirizz loopback waqt li t-trażmissjoni hija mmirata lejn l-indirizz LAN, il-korrezzjoni tappartjeni għal-linja accept u mhux għall-filtru tal-pakketti.

ss -lntp '( sport = :8443 )'

X'uriet tassew il-prova lokali

Suċċess irreġistrat mingħajr il-qabża li kien ikopri mhuwiex prova dwar il-qabżiet l-oħra. Innota liema indirizz uża t-test u liema proċess wieġeb. Imbagħad erġa' minn barra n-netwerk u mhux minn telefon fuq l-istess Wi-Fi, għax l-imġiba tal-ħairpin tvarja bejn ir-routers u konnessjoni li qatt ma ħarġet mil-LAN tista' tissodisfa klijent mingħajr it-trażmissjoni ma tkun involuta xejn. Biss dak it-tieni attentat jipprattika t-triq li jieħu barrani.

Meta l-attentat jonqos, segwi konnessjoni waħda fiż-żewġ logs: il-linji aċċettati u konnessi tal-wrapper, imbagħad il-log tas-sessjoni tad-daemon VPN stess. L-ewwel fruntiera li ma tirreġistra xejn hija fejn jappartjeni l-bidla li jmiss. Ladarba OpenVPN jibda jqabbel l-għażliet tas-sieħeb, iġġudika dawk il-messaġġi skont ir-regoli ta' dik l-implimentazzjoni. Twissija ta' inkonsistenza fil-link-mtu mhijiex awtomatikament fatali, l-iffissar tal-link-mtu għal 1500 ma jipprovax li l-frammentazzjoni waqfet, u n-negozjar taċ-ċifru jappartjeni għall-konfigurazzjoni interna tal-OpenVPN u mhux għat-trażmissjoni tar-router.

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

Dawk il-provi jkopru s-socket backend u l-log tal-wrapper, li jifred backend miċħud minn handshake miċħud. Ħaddimhom waqt li attentat wieħed ikun għaddej u mhux warajh. It-timbri tal-ħin minn attentat wieħed huma dak li jagħmlu l-paragun affidabbli.

Żewġ identitajiet, żewġ ordnijiet ta' falliment

Iċ-ċertifikat ta' barra jappartjeni lill-wrapper u l-identità ta' ġewwa tappartjeni lill-OpenVPN, u jistgħu jiġu minn awtoritajiet differenti. L-iżattar ta' waħda miż-żewġ verifiki biex triq tidher b'saħħitha jbiddel protezzjoni vera ma' riżultat kosmetiku. Żomm iż-żewġ verifiki u ddebuggjahom fl-ordni, għax l-ordni tal-messaġġi ssemmi s-saff: problema taċ-ċertifikat tal-wrapper tidher qabel ma jiġi nnegozjat kwalunkwe għażla VPN, filwaqt li falliment tal-identità interna jidher biss ladarba jiġi stabbilit il-fluss.

manwal ta' stunnel jiddefinixxi accept, connect u l-mod tal-klijent b'mod preċiż, u dawk it-taqsimiet iwieġbu d-domanda tas-socket aktar malajr milli taħsibha. Meta għadek ma tistax tgħid liema saff wieġeb, aqra ċ-ċertifikat li jippreżenta l-port pubbliku bil-kmand hawn taħt. Ċertifikat tal-wrapper fil-ħruġ ifisser li t-trażmissjoni waslet għall-wrapper, u s-skiet jew żball fil-protokoll ifisser li ma waslitx. Dik id-distinzjoni waħda tiffranka aktar ħin milli kwalunkwe verifika oħra hawn.

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

Artikli relatati