App ġewwa namespace VPN mhix aċċessibbli mil-LAN
In-namespace tan-netwerk jagħti lil programm wieħed it-tunnel tiegħu u l-loopback tiegħu. Ippubblika biss il-port tiegħu b'qabża socat jew par veth minflok il-host.
Is-servizz tiegħek qiegħed jaħdem fuq il-magna, it-tunnel huwa mtella’, u xorta l-browser fuq l-iskrivanija tiegħek għadu qed jistenna tweġiba. Xejn mhu miksi fis-sens tas-soltu: l-applikazzjoni qed tisma’ ġewwa namespace tan-netwerk, u dak il-munzell huwa inviżibbli għal-LAN. Il-loopback tiegħu jappartjeni lin-namespace, għalhekk klijent fuq magna oħra m’għandu l-ebda indirizz li jilħaq il-port. Qabża waħda maħsuba, jew par veth wieħed, jissewwi dan mingħajr ma jċaqlaq il-bqija tal-host.
Għaliex xejn mhu qed iwieġeb fuq l-indirizz tal-LAN
Namespace huwa munzell tan-netwerk sħiħ: interfaces, rotot, regoli tal-firewall u loopback privat. Proċess mniedi permezz ta’ ip netns exec jara biss dak il-munzell u xejn ieħor, għalhekk l-indirizz li jorbot miegħu jiġi solvut biss ġewwa n-namespace. Il-127.0.0.1 tal-host stess huwa loopback kompletament ieħor.
Hu għalhekk li curl fuq il-host ifalli filwaqt li l-istess kmand ġewwa n-namespace jirnexxi. L-applikazzjoni hija sana; l-indirizz sempliċement m’għandux jeżisti fil-munzell tal-host.
Ippubblika port wieħed b’qabża socat
socat jaqsam iż-żewġ munzelli fl-ispazju tal-utent, li huwa biżżejjed meta jrid jgħaddi port TCP wieħed. In-naħa tal-host tisma’ fil-LAN u, għal kull konnessjoni aċċettata, tniedi t-tieni socat ġewwa n-namespace li jgħaqqad mal-loopback tal-app. Il-proċess ta’ ġewwa jilħaq l-applikazzjoni eżattament kif kien jagħmel klijent lokali. Xejn fir-rotta tan-namespace ma jinbidel, għalhekk l-app tkompli tuża t-tunnel bħala l-unika ħarġa tiegħu.
socat TCP-LISTEN:9100,reuseaddr,fork EXEC:'ip netns exec vpn socat STDIO tcp-connect:127.0.0.1:9100',nofork
Il-proċess ta’ barra jeħtieġ root jew il-kapaċità li jidħol fin-namespace. Jekk il-VPN taqa’, l-app titlef it-triq tagħha u l-port ippubblikat ifalli magħluq, u dan huwa l-imġieba li trid minn ħabs.
Uża par veth meta jgħaddi iktar minn port wieħed
Par veth huwa t-tweġiba t-tajba meta jridu jgħaddu diversi ports jew protokolli, jew meta hosts oħra jridu jibdew konnessjonijiet. Tarf wieħed jibqa’ fil-host, l-ieħor jimxi fin-namespace, u /30 żgħir jagħti liż-żewġ naħat indirizz stabbli. Imbagħad rotta tal-host tibgħat l-indirizz tan-namespace fuq il-par.
ip link add veth0 type veth peer name veth1
ip link set veth1 netns vpn
ip addr add 10.77.0.1/30 dev veth0
ip link set veth0 up
ip netns exec vpn ip addr add 10.77.0.2/30 dev veth1
ip netns exec vpn ip link set veth1 up
Żidx rotta default permezz tal-host sakemm ma tkunx qed taħseb biex tkisser il-ħabs. It-tunnel għandu jibqa’ l-ħarġa, għalhekk fuq il-par tista’ tilħaq biss l-indirizz tas-servizz ippubblikat. Agħti lin-namespace ukoll il-fajl resolver tiegħu stess, għax ip netns exec jaqra /etc/netns/vpn/resolv.conf u mingħajru s-soluzzjoni tal-ismijiet ġewwa l-ħabs hija vojta.
Ittestja minn magna oħra, mhux mill-host
Mexxi t-test minn magna oħra, għax il-host jista’ jasal għal semmiegħ lokali permezz ta’ toroq li ma jgħidu xejn dwar il-LAN. Iċċekkja l-ewwel ma’ xiex l-app fil-fatt marbut fin-namespace, imbagħad qabbad mill-barranin mal-indirizz ippubblikat. L-irbit ma’ kull indirizz hemmhekk ma jwessax il-ħabs, għax il-wildcard għadu jappartjeni lin-namespace u l-LAN ma jistax jarah.
ip netns exec vpn ss -lntp
Jekk il-konnessjoni mill-host taħdem u dik mill-LAN le, il-biċċa neqsin hija l-qabża jew ir-rotta, mhux l-indirizz tal-irbit. Ibda OpenVPN ġewwa n-namespace minflok ma ċċaqlaq apparat tun ħaj ġo fih, għax iċ-ċaqliq tal-interface jitfih u jista’ jħassar rotot li mbagħad ma tistax issewwihom mill-barranin. Żomm il-kmandi tal-irkupru fuq il-console, mhux ġewwa l-ħabs.