Vklopili ste hotspot, povezali VPN, odprli vrata v aplikaciji, druga naprava pa se še vedno ne more povezati. Manjkajoči del skoraj nikoli ni sama vrata. Gre za vprašanje, kateri stroj ima vtičnico za poslušanje in kateri naslov naj doseže druga naprava. To obravnavam od telefona navzven, ker zaslon, na katerem ste, pove, katero od treh vstopnih točk dejansko preizkušate.

Začnite tam, kjer storitev resnično deluje

Odprite aplikacijo, ki naj bi sprejela povezavo, in preberite njeno stran stanja. Če pravi, da posluša, zapišite naslov, na katerega je vezana, ker ta ena podrobnost odloči večino spodnjih primerov. Aplikacija, vezana na 127.0.0.1, je dosegljiva samo s telefona, in tega ne bo spremenil noben odjemalec hotspota, preslikava operaterja ali izhod VPN.

Nato potrdite, katera naprava izvaja storitev. To je bodisi telefon, in takrat vtičnica pripada tej aplikaciji, bodisi prenosnik za hotspotom, in takrat poslušalec in njegov požarni zid pripadata prenosniku, telefon pa samo posreduje pakete. To so različne zasnove z različnimi lastniki, njihovo mešanje pa je razlog, da vrata, odprta na enem mestu, na drugem ne naredijo ničesar.

V gradnji z razhroščevanjem lahko adb shell našteje vtičnice prek /proc/net/tcp, a za večino ljudi je pošten vir stanje same aplikacije. Izognete se tudi pasti preizkušanja vtičnice, ki jo je aplikacija odprla na naslovu, ki ga niste pričakovali.

Prva vstopna točka: druga naprava na hotspotu

To je lokalni primer in najlažje ga je narediti pravilno. Druga naprava doseže telefon na naslovu, ki ga vidi kot svoj prehod, na vratih, na katerih aplikacija posluša, in nič zunaj hotspota ne sme biti vključeno. Preslikava operaterja ni potrebna in nobena funkcija ponudnika ni potrebna, ker promet nikoli ne zapusti lokalnega segmenta.

Dve stvari to pokvarita. Aplikacija je vezana na povratno zanko, ali odjemalska politika v telefonu ne dovoljuje lokalne povezave. Če se aplikacija overja, preizkusite s protokolom same aplikacije namesto s surovo povezavo TCP, ker poslušalec, ki sprejme in nato zavrne, od daleč izgleda enako kot zaprta vrata.

Če storitev teče na prenosniku, povezanem s telefonom, naslov hotspota telefona sploh ni cilj. Potrebujete naslov prenosnika na vmesniku hotspota in poslušalca na prenosniku, telefon pa ni več lastnik ničesar razen posredovanja.

Druga vstopna točka: pot operaterja

Doseči telefon iz mobilnega omrežja je druga težava in najpogosteje preprosto ne deluje za IPv4. Operaterji postavljajo naprave za skupno prevajanje, zato je RFC 6598 prav za takšno ureditev določil skupni obseg naslovov. Nezahtevani dohodni povezavi ni na voljo nobena preslikava, skozi katero bi prišla, in nobena lokalna nastavitev je ne ustvari, ker prevajalnik ni vaša naprava.

Tudi dostop root tega ne spremeni. Daje vam nadzor nad skladom telefona, ne nad prevajalnikom operaterja, v recepti, ki obetajo nasprotno, običajno predvidevajo javni naslov, ki ga operater nikoli ni dodelil. Kjer operater ponuja javni predpono IPv6, lahko dohodna pot obstaja, a poslušalec in požarni zid telefona še vedno potrebujeta zavestno dovoljenje, preden se kdo odzove.

Tretja vstopna točka: izhod VPN

Naslov, ki ga spletno mesto navede, medtem ko je tunel aktiven, je naslov izhoda za zajeti odhodni promet. To ni isto kot naslov, ki v vašem imenu sprejema dohodne povezave. Za uporabo v dohodni smeri je potrebna funkcija, ki jo ponudnik dejansko ponuja, na primer posredovana vrata ali dohodna preslikava, vezana na vaš račun, ter uporabna pot od izhoda do odjemalca.

Lokalno pravilo dovoljenja ne more ustvariti takšne preslikave. Lahko pa spremeni, po kateri poti gredo odgovori aplikacije, kar je pomembno, ko je aplikacija izključena iz tunela: zahteva in odgovor lahko prideta v različna omrežna konteksta in povezava spodleti tako, da izgleda kot težava požarnega zidu.

Preizkusite eno pot od začetka do konca, nato poimenujte lastnika

Pred preizkusom zapišite tuple: predvideni vir, ciljni naslov, transport, vrata in stroj, ki ima vtičnico za poslušanje. Če je kateri element ugibanje, vam preizkus ne bo povedal nič koristnega in na koncu boste spremenili drugo plast, da bi razložili prvo.

Nato preizkusite to eno dovoljeno pot z nedotaknjenim overjanjem aplikacije. Izognite se objavi širokega poslušalca ali izklopu nepovezanih kontrol samo zato, da bi nejasno preverjanje javnega naslova odgovorilo, ker obe spremembi preživita preizkus in nobena ne dokaže, da zasnova deluje.

Androidov podsistem tethering posreduje navzdolnji promet po svoji poti, ločeno od običajnega zajema VPN v aplikacijah, zato delujoč brskalnik na povezanem prenosniku ne pove ničesar o dohodnem dostopu do storitve v telefonu. Preden to imenujete delujoče:

  • Vtičnica za poslušanje je na naslovu, ki ga predvideni partner lahko doseže, ne na povratni zanki.
  • Partner uporablja naslov, ki pripada tej vstopni točki, ne izhodnega naslova s strani stanja.
  • Vsaka preslikava na strani operaterja ali ponudnika je podprta funkcija, ne pravilo, ki ste ga dodali lokalno.
  • Zahteva in odgovor potujeta skozi isti omrežni kontekst in overjanje aplikacije še vedno uspe.

Sorodni članki