Anzisha VPN ndani ya nafasi yake ya jina, endesha programu moja hapo, na trafiki bado inatoka kwa njia ya mwenyeji. Hakuna kilichovunjika: nafasi ya jina hudhibiti tu michakato inayoingia ndani yake, na uvujaji ulitoka kwa ule ambao haukuingia kamwe. Violesura, anwani, njia, sheria za firewall na soketi ndivyo nafasi ya jina inamiliki. Faili, akaunti na huduma zinazoendesha tayari sivyo, na hapo ndipo mshangao mwingi unatoka.

Nafasi ya jina inamiliki nini, na soketi huzaliwa wapi

Hamisha kiolesura kwenye nafasi ya jina na mwenyeji atakipoteza; jenga handaki ndani na mwenyeji hawezi kukiona. Huu ni utaratibu wa VPN iliyozuiwa na nafasi ya jina: kifaa na njia zinazoelekea kwacho huishi katika muktadha ambao ni michakato iliyochaguliwa pekee inaweza kufikia. Mwenyeji huhifadhi njia yake chaguo-msingi, kwa hivyo kila kitu nje hubaki bila kuguswa.

Kwa WireGuard muktadha wa uundaji ni muhimu kama mahali pa sasa: soketi ya UDP hufungwa katika nafasi ya jina ambapo kiolesura kiliundwa, hata baada ya kifaa kuhamia mahali pengine. Jedwali la uelekezaji ambalo pakiti zilizosimbwa hufuata hutegemea mahali hapo pa kuzaliwa. Soketi inapobaki katika muktadha usio na njia kwa mwenza, kiolesura hutafuta na kupeana mkono hakutoki kamwe. Angalia mahali pake pa kuzaliwa, kisha mahali pa sasa.

Nafasi ya jina haitengi nini

Hakuna kitu hapa hutenganisha mifumo ya faili, akaunti au siri, na hakuna hata moja ya mipaka hiyo inayojitokeza kwa sababu uliunda nafasi ya jina. Mipangilio ya kitatuzi ni faili, kwa hivyo mchakato ndani bado unaweza kusoma mpangilio unaoelekea kwenye kitatuzi cha mwenyeji na kutuma swali lake nje kwa njia ambayo hiyo inamaanisha. Programu inayokabidhi ombi kwa mpatanishi au huduma ya mfumo inayoendesha tayari inahusisha mchakato katika muktadha tofauti kabisa. Zote mbili ni maombi ambayo mpaka haukuwa umekusudiwa kuyajibu.

Suluhisho ni faili kwa kila nafasi ya jina katika /etc/netns/<name>/resolv.conf, au bind mount ya faili iliyoandaliwa, inayoelekea kwenye kitatuzi kinachofikika kutoka ndani. Kuhariri /etc/resolv.conf kwenye mwenyeji hakubadilishi chochote kile nafasi ya jina inachoona.

Uwekaji wa michakato ndio udhibiti

Utengaji unaopata ni sawa kabisa na utengaji wa michakato unayoanzisha ndani. Shell iliyoanzishwa kupitia msaidizi wa exec wa nafasi ya jina, na kila kitu inachozalisha, hubaki ndani; programu ya desktop iliyozinduliwa kutoka kipindi cha mwenyeji haibaki. Unda muktadha, hamisha kifaa, kisha thibitisha pande zote mbili:

ip netns add vpn1
ip link set wg0 netns vpn1
ip netns exec vpn1 wg show
wg show

Soma wg show ya kwanza kutoka ndani ya nafasi ya jina na ya pili kutoka kwa mwenyeji, na utarajie kuwa ni moja tu kati yao itaorodhesha mwenza. Ikiwa zote mbili zinafanya hivyo, kifaa hakikuhamia kamwe; ikiwa hakuna, kilienda mahali pengine. Mzinduzi anapokuwa msimamizi wa huduma, faili ya unit ndiyo ya kuhariri, si njia ya mkato ya desktop. Unit isiyo na mpangilio wa nafasi ya jina huanzisha daemon katika muktadha wa mwenyeji na kubatilisha muundo kimya kimya.

Jaribu kutoka muktadha wa programu

Endesha ukaguzi kwa binari sawa na mtumiaji sawa ambao programu inatumia, ndani ya nafasi ya jina. Jumuisha DNS na familia zote mbili za anwani, kwa sababu njia ya IPv6 ambayo hukuwahi kuifikiria ni njia ya kawaida ya kutoka. Jaribio kutoka shell yako mwenyewe linathibitisha tu kuwa shell yako imetengwa.

Kisha endesha ukaguzi huo huo kwenye mwenyeji na uthibitishe kuwa majibu yanatofautiana: anwani ya handaki na kutoka kunakokusudiwa ndani, njia ya mwenyeji na kutoka kwa ofisi nje, na kitatuzi kwa jina. Taja nafasi za jina kwa msingi wa usambazaji na si itifaki, ili script ya kusafisha isichanganye mbili kati yao.

Uelekezaji, sera ya kushindwa na kusafisha

Kwa lango, washa uelekezaji kwa makusudi na uamue kitakachotokea handaki linapoanguka. Nafasi ya jina haizuii njia unazoweka ndani yake, kwa hivyo njia mbadala kwa mwenyeji itatumika ikiwa utaunda moja. Hii ni uamuzi wa sera, na inapaswa kuandikwa kabla ya hitilafu kuujaribu.

Rekodi majina ya nafasi za jina, violesura na nani anamiliki mpangilio, ili kusafisha kuondoe tu kile usambazaji uliunda. Kuweka upya mtandao wa mwenyeji wakati wa kurudi nyuma hubadilisha kusafisha kuwa hitilafu. Ukurasa network_namespaces(7) ni mfupi na unafaa kusomwa kabla ya kubuni njia hiyo.

Makala zinazohusiana