IP moja ya seva, njia mbili: kuweka alama kwenye mtiririko wa nje wa OpenVPN
Njia ya mwenyeji inayoisamehe seva ya VPN inaisamehe pia HTTPS kwenda kwake. Weka alama kwenye bahasha iliyosimbwa badala yake, kisha upe tunnel trafiki isiyo na alama.
Kinga ya kawaida ya mzunguko ni njia ya mwenyeji: tuma trafiki kwenye anwani ya umma ya seva ya VPN kupitia uplink ili kikao kilichosimbwa kisiingie kamwe kwenye tunnel yake yenyewe. Hiyo inafanya kazi hadi wakati unapotaka pia kufikia huduma ya wavuti kwenye seva hiyo hiyo kupitia tunnel, kwa sababu msamaha umefungwa kwa lengwa na lengwa ni lile lile. Njia ya kutoka ni kuacha kuainisha kwa lengwa na kuanza kuainisha kwa soketi ipi iliyotuma pakiti.
Anza na mitiririko miwili unayotaka kutenganisha
Mtiririko mmoja ni usafirishaji OpenVPN uliosimbwa wenyewe, ambao lazima utoke kupitia uplink, vinginevyo tunnel ingebeba muunganisho wake wa nje. Mwingine ni ombi la kawaida la HTTPS kwenye anwani hiyo hiyo ya umma, unayotaka liwe ndani ya tunnel ili lifikie huduma kutoka chanzo cha tunnel. Lengwa lile lile, mara nyingi namba ya bandari ile ile, njia inayohitajika tofauti.
Kwa mwongozo huu, chukulia mteja aliye kwenye 10.90.0.10 kupitia tun1, anwani ya umma ya seva 198.51.100.25, na jedwali kuu lisiloguswa ambalo njia yake chaguo-msingi inaelekea uplink ya kawaida. Upande wa seva pia lazima ukubali huduma ya wavuti kwenye njia ya ndani na urudishe trafiki kwenye chanzo cha tunnel; kutuma pakiti kwenye anwani ya umma hakubatilishi kiskiliza au sera ya firewall ya seva.
Kabla ya kubadilisha kitu chochote, rekodi sheria za sasa za mwenyeji na chagua thamani ambazo hakuna mtu mwingine anazotumia: alama, namba ya jedwali na vipaumbele vitatu vya sheria. Weka njia ya kurudi kwenye mashine ambayo haipiti muunganisho huu, kwa sababu kosa hapa huondoa ufikiaji wako mwenyewe wa mbali, badala ya kuvunja kichupo cha kivinjari tu.
Weka alama kwenye soketi inayobeba bahasha
Usanidi wa mteja unapata alama kwa pakiti zake za nje zilizosimbwa na huacha kufunga njia zenyewe, ili sera ya uingizwaji iwe kitu pekee kinachoamua njia:
mark 42
route-noexec
disable-dco
Desimali 42 ni heksadesimali 0x2a, na umbo la heksadesimali ndilo sheria za uelekezaji zitalinganisha nalo. Marejeo ya link-options yanaeleza mark kama kitu kinachotumika kwa pakiti za nje zilizosimbwa kwenye Linux, yaani soketi hasa ambayo unahitaji kudhibiti njia yake. Kuzima upakuaji wa chaneli ya data kunaweka mfano huu kwenye njia ya nafasi ya mtumiaji, ambapo tabia ya alama ndiyo iliyoelezwa.
route-noexec inazuia kuongeza na kuondoa njia kwa njia ya kiotomatiki kwa OpenVPN. Haiweki kitu chochote mahali pake, kwa hiyo kuanzia sasa mmiliki wa njia lazima atunze kila njia inayohitajika na tunnel. Iwapo lengwa la faragha linatoweka baada ya mabadiliko, hiyo ni sera ya uingizwaji inayokosekana, si kasoro kwenye alama.
Usiweke njia ya mwenyeji kwenye jedwali kuu kwa 198.51.100.25 unapofanya hivi. Njia kama hiyo inarudisha hasa msamaha ambao muundo unajaribu kuubana, na itashinda kwa mtiririko wa HTTPS kabla ya sera yoyote iliyo hapa chini kuulizwa.
Tuma kila kitu kingine kwenye jedwali la tunnel
Mara kiolesura cha tunnel kinapokuwepo na kinashikilia anwani yake, sera inaonekana hivi:
ip -4 route add default dev tun1 src 10.90.0.10 table 47100
ip -4 rule add priority 20000 lookup main suppress_prefixlength 0
ip -4 rule add priority 20001 not fwmark 0x2a lookup 47100
ip -4 rule add priority 20002 not fwmark 0x2a unreachable
Sheria ya kwanza inaendelea kuonyesha njia mahususi za mwenyeji, ikiwemo mtandao wowote wa ndani ulioidhinishwa, huku ikifanya njia chaguo-msingi ya jedwali kuu isionekane kwa utafutaji huu. Tofauti hiyo ni muhimu: kuzuia chaguo-msingi si sawa na kupuuza jedwali, na misamaha ya ndani unayohitaji bado inaendelea kwa sababu ya hiyo. Soma misamaha hiyo moja moja badala ya kudhani matokeo ni swichi ya dharura ya jumla.
Trafiki isiyo na alama kisha huanguka kwenye jedwali la tunnel, inachukua chanzo cha tunnel na kutoka kupitia VPN. Trafiki yenye alama inashindwa jaribio la fwmark kwenye sheria mbili zinazofuata na kuendelea hadi utafutaji mkuu wa kawaida chini zaidi kwenye orodha, ambapo chaguo-msingi la uplink bado lipo. Sheria ya mwisho ya unreachable ndiyo inayozuia mtiririko usio na alama kuanguka kimya kimya kurudi kwenye uplink wakati njia ya tunnel haipo. Kichaguzi ni alama kuanzia mwanzo hadi mwisho, na anwani ya lengwa haiingii kamwe kwenye uamuzi.
Weka ulinzi huo mahali pake kati ya kukatika, na uusakinishe pamoja na sera nyingine badala ya kwa mkono. Sheria inayotoweka pamoja na kiolesura si sera, ni bahati mbaya. Kufuta sera tunnel inapoanguka hubadilisha hali ya kushindwa kutoka “imezuiwa” hadi “imevuja”, na njia ya tunnel iliyopitwa na wakati inayokwisha muda baadaye ni tatizo rahisi zaidi kueleza kuliko trafiki iliyotoka kupitia kiolesura kisichofaa.
Acha njia ya kurudi iona alama hiyo hiyo
Alama za nje ni nusu tu ya utaratibu, na hii ni sehemu ambayo nakala nyingi huiacha. Majibu ya kikao kilichosimbwa hufika kwenye uplink na yanakabiliwa na uthibitishaji wa njia ya kurudi, ambao huuliza kama chanzo kingeelekezwa kurudi kwa njia ile ile. Bila msaada, utafutaji huo unatumia sera yako ya tunnel isiyo na alama na kuhitimisha kuwa pakiti iko kwenye kiolesura kisichofaa.
Marekebisho ni mali ya mmiliki wa firewall: hifadhi alama kwenye muunganisho wa nje, irejeshe kwenye pakiti zinazoingia zinazolingana na uwashe utunzaji wa alama uliothibitishwa na chanzo kwa njia husika. OpenVPN kuweka alama ya soketi haifanyi hata moja ya mambo hayo matatu, na kichocheo kinachoorodhesha chaguo za mteja pekee hakijakamilika. Omba ujumuishaji huo kwa maandishi, kwa sababu ni sehemu isiyoonekana zaidi ya muundo na rahisi zaidi kupotea wakati wa kujenga upya.
Ukaguzi legelege wa njia ya kurudi pia si mbadala. Hali legelege bado inahitaji njia fulani kuwepo kwa chanzo, na ulinzi wa unreachable ulioongeza huondoa moja kwa makusudi kwa utafutaji usio na alama. Kamilisha na ukague ujumuishaji wa alama ya muunganisho kabla ya kutegemea muundo huu, na chukulia vichujio vya mwenyeji kama swali tofauti: alama ni ishara ya uelekezaji, si ruhusa. Iwapo ujumuishaji haupo, dalili ni kikao kinachoundwa kisha kunyamaza mara tu majibu yanapoanza kufika.
Thibitisha kwa utafutaji wa njia mbili
Linganisha kile kernel inaamua kwa miktadha miwili, na soma sehemu za dev na src badala ya hali ya kutoka:
ip -4 route get 198.51.100.25
ip -4 route get 198.51.100.25 mark 0x2a
Utafutaji wa kwanza unapaswa kutatua hadi tun1 ukiwa na chanzo cha tunnel, na wa pili hadi uplink. Haya ni utafutaji sintetiki, kwa hiyo yanathibitisha sera na si mchakato unaoendesha: thibitisha kando njia halisi ya usafirishaji ya mteja anayeendesha, kisha fanya ombi halisi la HTTPS ukiwa umeacha uthibitishaji wa cheti ukiwa imewaka.
Andika kile muundo haujumuishi kabla ya kuutangaza umekamilika. DNS, IPv6 na mzunguko wa maisha wa sheria kila kimoja kinahitaji uamuzi wake, na huu ni mfano wa uelekezaji wa IPv4, si usanidi kamili wa faragha. Thamani yake ni kichaguzi: bahasha inapata msamaha wa uplink, na huduma ya kawaida kwenye anwani hiyo hiyo haitakiwi kuirithi.