Ez dago aplikazio hau baztertzeko etengailurik: eman prozesuari bere iturria
Bideratzeak helbideak konparatzen ditu, ez prozesuen izenak. Eman baztertutako programari bere iturria eta taula, edo eraman erabakia bideratzailera, hori zintzoa den lekuan.
Programa batek konexio arrunta erabili beharko luke, beste guztia tunelean geratzen den bitartean, eta bezeroak ez du horretarako etengailurik. Ez dago ezkutuko menurik ere. Bidea paketearen barruko eremuetatik hautatzen da, eta paketeak helbideak eta atakak daramatza, ez sortu zuen prozesuaren identitatea, beraz baztertzea eremu horietako batean adierazi behar da. Jarraitu pakete bat behin eta eskuragarri dauden aukerek misteriotsua izateari uzten diote.
Zergatik ezin duen bezeroak eskaini
Helmugaren bideratzeak helmuga-helbidea aurrizkiekin konparatzen du eta bat etorrerarik luzeena gordetzen du. Une horretan pakete guztiek berdin dirudite, edozein dela sortu zituena. Iturri-politikaren bideratzeak konparazioa iturri-helbidera zabaltzen du, eta hori da konponbide praktiko guztiek erabiltzen duten amua: aldatu iturria eta beste taula bat bihurtzen da hautagarri.
Atakek ez dute laguntzen. Atakaren araberako baztertzea helmugaren bilaketaren aurretik ebaluatu beharko litzateke, eta atakak ez du inolako eginkizunik erabaki horretan. Atakaren araberako baztertze gisa iragartzen den edozein gauzak beste eremu batez baztertzen du eta zabarkeriaz deskribatzen du.
Benetako aplikazio bakoitzeko bideratzea existitzen da plataformak horretarako mekanismoak gehitu dituen lekuan, adibidez Windows-eko iragazki-deiak edo Android-eko VPN zerbitzuaren lotura. Mahaigaineko OpenVPN instantzia batek ez du horrelakorik ekartzen, eta konfigurazio-flag batek ere ez du asmatzen.
Linux: markatu prozesua, gero bideratu marka
Hurbilketa garbienak erabakia socketaren jabe den prozesuari lotzen dio. owner bat etorrerak OUTPUT katean tokian tokiko sortutako trafikoarentzat funtzionatzen du, beraz han aplikatutako marka batek taula bereizi bat hauta dezake:
iptables -t mangle -A OUTPUT -m owner --uid-owner 1001 -j MARK --set-mark 0x1
ip rule add fwmark 0x1 table 200
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.0 table 200
ip route add default via 192.168.1.1 dev eth0 table 200
1001 erabiltzailearen paketeek 200 taulari galdetzen diote orduan eta ohiko atebidetik irteten dira, taula nagusiak beste guztia tunelean bidaltzen jarraitzen duen bitartean. owner bat etorrera tokian tokiko sortutako paketeetan bakarrik aplikatzen da, eta hori da hain zuzen hemen axola zaizun trafikoa, eta ezin ditu beste ostalari batentzat birbidalitako paketeak sailkatu. Egiaztatu tresnekin, asmoarekin baino: ss -tnp konexio ezarrien tokiko helbidea eta jabe den prozesua erakusten ditu, eta ip route get 1.1.1.1 mark 0x1 markak zein taula hautatzen duen erakusten du.
Sare izengunea erantzunik sendoena da programa burujabe baterako, izan ere barruan sortutako socket bakoitza eraikuntzagatik bertara lotuta dago, beraz prozesu laguntzaileek eta konexio umeek portaera heredatzen dute inolako sailkapenik gabe. Kostua hoditeria da: veth pare bat, helbide bat mutur bakoitzean, eta izengunearen barruan ostalarira itzultzen duen bide lehenetsia.
ip netns add novpn
ip link add veth-host type veth peer name veth-ns
ip link set veth-ns netns novpn
ip addr add 10.200.0.1/24 dev veth-host
ip netns exec novpn ip addr add 10.200.0.2/24 dev veth-ns
ip netns exec novpn ip route add default via 10.200.0.1
Windows: helmugak erabakitzen du oraindik
Windowsek irteerako interfazea helmugaren arabera hautatzen du, beraz bide desberdina nahi duen programak hautaketa horren aurretik pila kontsultatzen duen zerbait aldatu behar du. ForceBindIP-ek lehen erdia estaltzen du: programa bat abiatzen du soketak jada izendatzen duzun tokiko helbide batera lotuta dituela. Hori soilik ez du aldatzen paketeak zein interfazetatik uzten duen, helmugak oraindik bidea hautatzen duelako. Lotu iturri bat bide lehenetsia tunelean sartzen den ordenagailu eramangarri batean, eta paketea tunelean sartuko da hala ere.
Sintomak forma irakurgarria du ezagutzen duzunean. Hautatutako interfazeak zuzenean iristen duen LAN helbide baterako balio du, eta interneten bidea tunelean sartzen den edozertarako huts egiten du. Badirudi funtzionatzen duela programak laguntzaile bati lana eman arte, izan ere bere socket propioa irekitzen duen laguntzaileari ez zitzaion loturaren berri eman.
Eraman erabakia prozesu bat unitate okerra denean
Benetako beharra programa bat ez bada, gailu bat baizik, jarri bere SSID edo VLANean eta utzi bideratzailari erabakitzen: iturri horrek bide arrunta hartzen du beste iturriek tunelea erabiltzen duten bitartean. Atebide-makina dedikatu bat beste diseinu zintzoa da: VPNa gordetzen du eta bideratzaileak bidaltzen dizkion helmugak soilik jasotzen ditu. VLAN batean politikak gailuak irekitzen duen jario bakoitza estaltzen du, Windowsen hurbilketa hautsi zuten prozesu laguntzaileak barne. Trukea irismena da: gailu horretako bi programa ezin dira jada modu desberdinean tratatu.
Biak iturri edo helmuga politikak dira, esaldi bakarrean esan dezakezun irismenarekin. Bat ere ez da aplikazio bakoitzekoa, eta aplikazio bakoitzeko gisa iragartzen den diseinu batek huts egiten du programak bere lana bigarren prozesu bati delegatzen dion lehen aldian.