Startigu la VPN ene de sia propra nomspaco, rulu unu aplikaĵon tie, kaj trafiko ankoraŭ eliras laŭ la itinero de la gastiganto. Nenio estas rompita: la nomspaco regas nur procezojn, kiuj eniras ĝin, kaj la liko venis de unu, kiu neniam eniris. Interfacoj, adresoj, itineroj, fajromuraj reguloj kaj ingoj estas tio, kion la nomspaco posedas. Dosieroj, kontoj kaj jam kurantaj servoj ne estas, kaj de tie venas la plej multaj surprizoj.

Kion posedas la nomspaco, kaj kie naskiĝas la ingo

Movu interfacon en nomspacon kaj la gastiganto perdas ĝin; konstruu tunelon interne kaj la gastiganto ne povas vidi ĝin. Tio estas la mekanismo malantaŭ nomspaco-limigita VPN: la aparato kaj la itineroj al ĝi vivas en kunteksto, kiun nur la elektitaj procezoj povas atingi. La gastiganto konservas sian implican itinero, do ĉio ekstere restas netuŝita.

Por WireGuard la krea kunteksto gravas same kiel la nuna loko: la UDP-ingo estas ligita en la nomspaco, kie la interfaco estis kreita, eĉ post kiam la aparato moviĝas aliloken. Kiun enkursigan tabelon la ĉifritaj pakaĵoj sekvas, dependas de tiu naskiĝloko. Kiam la ingo restas en kunteksto sen itinero al la samulo, la interfaco serĉas kaj la manpremo neniam eliras. Kontrolu ĝian naskiĝlokon, poste ĝian nunan lokon.

Kion nomspaco ne izolas

Nenio ĉi tie apartigas dosiersistemojn, kontojn aŭ sekretojn, kaj neniu el tiuj limoj aperas ĉar vi kreis nomspacon. La agordo de la solvilo estas dosiero, do procezo interne ankoraŭ povas legi agordon, kiu montras al la solvilo de la gastiganto, kaj sendi sian peton eksteren laŭ kiu ajn itinero tio implicas. Aplikaĵo, kiu transdonas la peton al jam kuranta peranto aŭ sistema servo, implikas procezon en tute alia kunteksto. Ambaŭ estas petoj, kiujn la limo neniam celis respondi.

La solvo estas dosiero por nomspaco ĉe /etc/netns/<name>/resolv.conf, aŭ bind mount de preparita dosiero, direktita al solvilo atingebla de interne. Redakti /etc/resolv.conf sur la gastiganto ŝanĝas nenion el tio, kion la nomspaco vidas.

La lokigo de procezoj estas la regilo

La izoliteco, kiun vi ricevas, estas ĝuste la izoliteco de la procezoj, kiujn vi startigas interne. Ŝelo startigita per la exec-helpilo de la nomspaco, kaj ĉio, kion ĝi generas, restas interne; labortabla aplikaĵo lanĉita el la seanco de la gastiganto ne. Kreu la kuntekston, movu la aparaton, poste pruvu ambaŭ flankojn:

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

Legu la unuan wg show de interne de la nomspaco kaj la duan de la gastiganto, kaj atendu, ke nur unu el ili listigu la samulon. Se ambaŭ faras tion, la aparato neniam moviĝis; se neniu, ĝi iris aliloken. Kiam la lanĉilo estas servomanaĝero, la unuodosiero estas tio, kion redakti, ne la labortabla fulmoklavo. Unuo sen la nomspaca agordo startigas la demonon en la kunteksto de la gastiganto kaj kviete nuligas la dezajnon.

Testu el la kunteksto de la aplikaĵo

Rulu la kontrolon per la sama plenumilo kaj la sama uzanto, kiujn la aplikaĵo uzas, interne de la nomspaco. Inkluzivu DNS kaj ambaŭ adresfamiliojn, ĉar IPv6-itinero, kiun vi neniam pripensis, estas ofta elirejo. Testo el via propra ŝelo pruvas nur, ke via ŝelo estas izolita.

Poste rulu la saman kontrolon sur la gastiganto kaj konfirmu, ke la respondoj diferencas: tunela adreso kaj celata eliro interne, gastiganta itinero kaj oficeja eliro ekstere, kaj la solvilo laŭ nomo. Nomu nomspacojn laŭ la deplojo anstataŭ la protokolo, por ke puriga skripto ne konfuzu du el ili.

Plusendado, malsukcesa politiko kaj purigado

Por enirejo, ŝaltu plusendadon konscie kaj decidu, kio devus okazi, kiam la tunelo falas. Nomspaco ne blokas itinerojn, kiujn vi instalas interne, do rezerva itinero al la gastiganto estos uzata, se vi kreos unu. Tio estas politika decido, kaj ĝi devus esti skribita antaŭ ol paneo testos ĝin.

Notu la nomspacajn nomojn, la interfacojn kaj kiu posedas la agordon, por ke purigado forigu nur tion, kion kreis la deplojo. Restarigi la retaron de la gastiganto dum retroigo igas purigadon paneo. La paĝo network_namespaces(7) estas mallonga kaj indas legi antaŭ ol vi desegnos tiun vojon.

Rilataj artikoloj