OpenVPN wara stunnel: għaddi l-wrapper, mhux il-port 1194
Żewġ listeners, tliet ports. Iċċekkja fejn tinżel it-trażmissjoni, fejn tgħaqqad il-wrapper, fejn tikkonnettja, x'in qabeż test lokali u ż-żewġ identitajiet.
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.
| Hop | Listens on | Must reach | Symptom when it points elsewhere |
|---|---|---|---|
| Client machine | A local plaintext port | The wrapper's public TLS address | Plain text offered to a TLS endpoint |
| Router forward | Public TCP 443 | The wrapper host on its translated port | Wrapper records no connection at all |
| Wrapper, server mode | Its accepted port, 8443 here | The native VPN socket on loopback | Handshake completes, then silence |
| Native VPN listener | Loopback TCP port | Its peer, over TCP only | A 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