mitmproxy, DevTools, Gradle: tliet saffi wara l-VPN
Loopback qatt ma jidħol fit-tunnel. Ikklassifika s-sintomu bħala listener, maħżen tal-fiduċja jew filtru tal-pakketti, u ssewwi s-saff li verament falla.
Il-VPN jgħaqqad, u tliet għodod mhux marbuta jonqsu fi tliet modi differenti fl-istess waranofsinhar. mitmproxy jieqaf jara talbiet, Chrome jirrifjuta d-debugger, u Gradle jitfa' BindException waqt li jorbot socket lokali. Is-suspett komuni huwa li t-tunnel jimblokka localhost. Ma jistax: 127.0.0.1 jiġi ttrattat ġewwa l-kernel u qatt ma jasal għal adapter, aħseb u ara għal gateway.
Tliet saffi, tliet ħsarat differenti
Dak li nbidel mal-klijent mhuwiex ir-rotta lejn loopback. Hija proxy lokali, maħżen tal-fiduċja tal-magna u filtru tal-pakketti, u kull wieħed minnhom ikisser parti differenti mill-fluss tax-xogħol ta' żviluppatur. Li tqiegħed sintomu fil-linja t-tajba huwa l-biċċa l-kbira tad-dijanjosi:
| Symptom | Layer | First check |
|---|---|---|
| Proxy sees no traffic | Local proxy or listener | ss -lntp, or netstat -ano on Windows |
| TLS error in one tool only | Trust store | Which CA bundle does that runtime read? |
| Local bind or connect refused | Packet filter or port owner | Who holds the port, and what rule drops it? |
Kważi kull rapport ta' dan it-tip jibda fl-aħħar linja u jimxi 'l fuq, li huwa bil-maqlub. It-tunnel huwa l-unika saff li b'mod ippruvat ma jistax jara traffiku loopback, għalhekk jistħoqqlu l-inqas suspett. Ibda b'dak li rabat il-proċess, imbagħad staqsi liema ċertifikati jafda, u biss wara ħares lejn il-politika fuq il-magna.
Ibda mil-listener, mhux mit-tunnel
Meta proxy fuq 127.0.0.1:8080 jieqaf jirċievi traffiku, ġara wieħed minn tliet affarijiet: qatt ma beda, rabat port ieħor, jew il-filtru waqqa' l-konnessjoni loopback. Li telenka s-sockets li qed jisimgħu jwieġeb għal dan b'kmand wieħed, u juri wkoll liema proċess għandu l-port meta żewġ għodod ma jaqblux min kien l-ewwel.
Indirizz lokali fi tfittxija tar-rotta jikkonferma l-istess ħaġa mid-direzzjoni opposta. ip route get lejn destinazzjoni loopback jirrapporta l-apparat loopback, qatt it-tunnel, li hija sentenza utli li jkollok lesta meta xi ħadd jipproponi bidla fir-routing bħala soluzzjoni.
Is-saff tal-proxy: l-ambjent mhuwiex konfigurazzjoni
Ħafna klijenti korporattivi jmexxu proxy HTTP u jistennew li l-applikazzjonijiet jużawh. Li tissettja HTTPS_PROXY f'shell isewwi l-għodod tal-linja tal-kmand li jirrispettawh, u ma jagħmel xejn għal għodda li taqra l-fajl tas-settings tagħha stess. Gradle, Selenium u gRPC kull wieħed jikkonsulta l-konfigurazzjoni tiegħu, u proxy esportat f'terminal wieħed huwa inviżibbli għal daemon li jibda l-IDE.
L-għodod tal-kontenituri huma l-post tas-soltu fejn dan isir viżibbli. Il-loopback ta' kontenitur huwa tiegħu stess, għalhekk 127.0.0.1 ġewwa l-kontenitur qatt ma jfisser il-proxy tal-host; hija meħtieġa l-indirizz tal-host jew setting tan-netwerk tal-host. Sewwija li taħdem fis-shell u tfalli fil-build normalment hija din il-linja, mhux it-tunnel.
Is-saff tal-fiduċja: l-għodda taqra maħżen ieħor
L-interċettazzjoni hija t-tieni bidla, u tipproduċi l-aktar żbalji qarrieqa. Il-klijent jippreżenta ċ-ċertifikat tiegħu għall-konnessjonijiet spezzjonati, għalhekk browser li jafda l-għerq korporattiv jirnexxi filwaqt li għodda b'maħżen CA inkorporat tfalli. requests ta' Python permezz ta' certifi huwa l-każ klassiku: il-maħżen tas-sistema operattiva jista' jkun korrett u t-talba xorta tfalli, għax dak ir-runtime qatt ma jaqrah. It-test tal-iżball rari jsemmi l-interċettazzjoni, u għalhekk din il-linja tiġi djanjostikata ħażin bħala endpoint miksur.
Qabbel dak li l-endpoint fil-fatt jippreżenta ma' dak li l-għodda vvalidat. openssl s_client juri l-katina li bagħat is-server; l-output tal-validazzjoni tal-għodda stess juri x'iddeċidiet. Meta ma jaqblux, REQUESTS_CA_BUNDLE jew SSL_CERT_FILE hija l-lieva għal dak ir-runtime, u l-għerq korporattiv jappartjeni fil-maħżen li dak ir-runtime jaqra, mhux f'post globali li jirrispettaw biss xi għodod.
Bidla fil-verżjoni li ssewwi żball SSL hija evidenza dwar il-politika tal-fiduċja u ċ-ċifrar, mhux dwar il-VPN. Tnaqqis tal-verżjoni ta' Python li għamel klijent SOAP jaħdem bidel il-maħżen CA inkorporat u s-settings TLS awtomatiċi; it-triq tan-netwerk ma mxietx.
Is-saff tal-filtru: jista' jwaqqa' wkoll il-loopback
It-tielet bidla hija filtru tal-pakketti, u xi prodotti jinstallaw regoli li jwaqqgħu traffiku li ma jidħolx fit-tunnel. Jistgħu jiġu inklużi listeners lokali. Dan ibiddel socket li jaħdem f'konnessjoni miċħuda jew skaduta, u l-iżball li jirriżulta jidher bħala bug fl-applikazzjoni, mhux bħala politika fuq il-magna.
Is-sjieda tal-port hija n-nofs l-ieħor ta' dan is-saff. BindException ifisser li s-socket ma setax jinfetaħ, li hija falliment differenti minn konnessjoni miċħuda. Iċċekkja jekk proċess ieħor diġà għandux il-port qabel ma tagħti t-tort lill-filtru, imbagħad fittex regola li twaqqa' traffiku lokali u żid l-aktar permess dejjaq li jappoġġa l-prodott. Żewġ għodod li qed jikkompetu għall-istess port tad-debug jipproduċu eżattament l-istess messaġġ bħal blokk tal-politika, u waħda biss minnhom tissewwa b'bidla fil-firewall.
Il-port tad-debug ta' Chrome ifalli fl-istess familja. Il-browser jibda, ix-xufier ma jistax jilħaq l-endpoint ta' DevTools, u l-messaġġ isemmi DevTools minflok in-netwerk. Flags tal-bidu addizzjonali u manager tax-xufiera żejjed ibiddlu liema proċess għandu l-port, u għalhekk it-tneħħija tagħhom xi drabi tidher li ssewwi l-VPN.
Sewwi s-saff li falla
Sewwi s-saff li falla, mhux it-tunnel. Listener loopback li ma jistax jiġi milħuq jeħtieġ li jiġi korrett il-listener jew il-port tiegħu. Ċertifikat mhux affidabbli jeħtieġ l-għerq korporattiv installat fejn iħares dak ir-runtime speċifiku, bl-eċċezzjoni miżmuma dejqa. Filtru li jwaqqa' traffiku lokali jeħtieġ regola ta' permess speċifika minflok filtru diżattivat, għax id-diżattivazzjoni terġa' tiftaħ ukoll kull ħaġa oħra li kien qed jipproteġi.
Li terġa' tqabbad il-VPN ma tittestja l-ebda wieħed minn dawn is-saffi. Hija biss terġa' tmexxi l-bidla li kissritthom, u għalhekk l-istess tliet fallimenti jerġgħu lura wara kull qbil mill-ġdid u jisparixxu wara kull restart li jħalli l-klijent inattiv.