Yadda za a bi da manhaja ɗaya ta VPN ba tare da dukan na’ura ba
Babu wani tebur da ba a sarrafa shi da ke ba da mabudin VPN ga kowace tsari. Zaɓi matakin da ke zaɓar zirga-zirga: soket ɗaure, dokar UID, bayanin wuta ko tsallen SOCKS.
Abokin ciniki na VPN yana haɗawa, mai bincike yana aiki, kuma umarnin da kake da gaske a kai har yanzu yana fita ta hanyar haɗin gidanka. Ko kuma akasin haka yakan faru: ramin yana ɗaukar hanyar da aka saba kuma sabar fayil na gida ta ɓace daga tebur. Na haɗu da wannan da wakilin gini wanda ya kasance dole ya isa madubin kayan aiki na ciki yayin da sauran masaukin suka tsaya a LAN na ofis, kuma abokin ciniki ya ba da zaɓi biyu kacal: dukan zirga-zirga ko babu. Buƙatar a kowane gefe ɗaya ce, wannan manhaja ba dukan na’ura ba, kuma yawancin abokan ciniki ba su da akwatin zaɓi don haka, domin teburin hanya bai taɓa sanin menene manhaja ba.
Me ya sa teburin hanya ba zai iya ganin manhajarka ba
Lokacin da tsari ya aika fakiti, tarin yana neman adireshin inda za a kai a teburin hanya. Ko sunan fayil ɗin da ake aiwatarwa ko tashar ba sa shiga wannan binciken. Sunayen yanki suna kasawa saboda wannan dalili ɗaya: rami yana ɗaukar zirga-zirga zuwa adireshi, kuma da zarar suna ya koma adireshi, hanya ita ce kawai gungu da kernel ke da shi. Shi ya sa «VPN don wannan shafi kawai» a ƙarshe yana nufin wakili, kuma «VPN don wannan manhaja kawai» yana nufin ɗaya daga ƙaramin rukuni na hanyoyi.
| Mechanism | What selects | Covers | On tunnel drop |
|---|---|---|---|
| Socket bind | source address | a client you control | connections fail |
| UID rule (Linux) | owning user | every process of one account | connections fail |
| Firewall profile (Windows) | adapter profile | one program | fails closed |
| Network namespace | namespace membership | everything started inside | connections fail |
| SOCKS hop | app proxy setting | one app or one browser profile | connections fail |
Babu ɗaya daga cikin waɗannan da yake hanya ta kowane tsari. Kowanne yana motsa shawarar zuwa wani mataki da ke iya ganin manhaja, mai amfani ko tsarin manhajar kanta.
Wuri ɗaya har yanzu hanya ce, ba dokar manhaja ba. A macOS hanyar da aka saba ita ce cire alamar «Aika dukan zirga-zirga ta VPN» sannan a ƙara hanyar masauki: sudo route add -host internal-tuner.example -interface ppp0, wanda ake cirewa kuma da sudo route delete -host internal-tuner.example -interface ppp0. Ka fara karanta sunan fuskar sadarwa daga ifconfig, domin ppp0 misali ne kawai. Alamun daji ba sa aiki a hanyar masauki, don haka sabis ɗin da ke magana da sunaye da yawa yana buƙatar shigarwa ɗaya ga kowace suna, kuma dokar tana rufe kowane tsari a na’urar, ba wanda kake da shi a zuciya ba.
Ka ɗaure soket ɗin zuwa adireshin ramin
Lokacin da kake sarrafa abokin ciniki, ɗaure shi ne mafi arha zaɓi. Soket ɗin da aka ɗaure zuwa adireshin gida na ramin yana fita ta wannan fuskar sadarwa muddin akwai hanya zuwa inda za a kai, kuma duk sauran abin da ke cikin na’urar yana riƙe da hanyarsa ta al’ada. Sirrin shi ne cewa ɗaurewar tana zaɓar adireshin tushe yayin da teburin hanya har yanzu yana zaɓar mafita. Ɗaurewa ita kaɗai ba ta motsa zirga-zirgar da ba ta da hanya zuwa cikin ramin, kuma wannan ita ce kuskuren da ke bayan yawancin rahotannin «na ɗaure shi kuma har yanzu yana fita ta gefen da ba daidai ba».
import socket
s = socket.socket()
s.bind(("10.8.0.2", 0))
s.connect(("build.internal.example", 443))Kayan aiki na mataki mafi girma suna nuna wannan ra’ayi: curl --interface 10.8.0.2, CURLOPT_INTERFACE a cikin PHP, da hujjar source_address a cikin abokan cinikin HTTP na Python. Adireshin dole ya kasance na ramin, kuma kuskuren rubutu a nan yana kasawa a matsayin kuskuren haɗi na yau da kullum, ba korafin hanya ba. Ɗaurewa ga sunan na’ura maimakon adireshi wata dama ce ta Linux kuma ba ta wuce zuwa Windows ko macOS ba, shi ya sa rubutun da ake ɗauka suna ba da adireshin.
Linux: ka daidaita mai shi, ba sunan manhaja ba
Kernel na iya daidaita mai soket ɗin, don haka keɓaɓɓen asusu ya zama zaɓaɓɓen. Ka saka ramin a cikin teburin hanyarsa na kansa ka aika zirga-zirgar wancan asusun ne kawai zuwa can:
ip rule add uidrange 1001-1001 lookup 100
ip route add default dev tun0 table 100Wannan yana aiki ne kawai idan ramin ba ya zama hanyar da aka saba. Ka fara abokin ciniki da --route-nopull, ko ka tace juyar da aka tura da --pull-filter ignore "redirect-gateway" a kan OpenVPN 2.4 da sabbi, sannan ka ƙara shigarwar tebur ɗin da kanka. In ba haka ba duka biyun da aka saba suna nan kuma wanda ke da ƙarancin fifiko shi ne zai yi nasara. Sigar da aka yi da gangan ita ce a nuna hanyar da aka saba zuwa ƙofar ramin, ko a yi ta daga rubutun cire haɗi: yana hana zirga-zirga daga intanet lokacin da ramin ya faɗi, amma wannan shine maɓallin kashewa, ba zaɓaɓɓe ba, kuma yana nan har sai wani ya cire shi.
Sigar da ta fi ƙarfi ita ce sararin suna na cibiyar sadarwa. Ka ƙirƙira shi, ka gudanar da abokin ciniki a ciki, ka fara manhajar da ip netns exec. Babu abin da ke wajen sararin suna da ke ganin fuskar sadarwar ramin, don haka manhajar ba za ta iya komawa hanyar masauki da gangan ba. Kuɗin yana nan: sararin suna yana buƙatar veth biyu don isa cibiyar sadarwar zahiri da nasa fayil ɗin warwarewa, domin sararin sunan haɗawa ba ya raba saitunan warwarewar masauki.
Hanyoyi biyu na kasawa sun bayyana yawancin ɓarkewa. Warware sunaye har yanzu yana faruwa a cikin mai warwarewar masauki, don haka tambayar tana fita wajen ramin ko da haɗin TCP yana shiga ciki. Kuma IPv6 yana buƙatar nasa ip -6 rule, domin dokar v4 ba ta rufe shi.
Windows da macOS: ka iyakance bangon wuta ko ka ba da wakili
Windows ma ba shi da zaɓaɓɓen hanya ga kowace manhaja, amma ana iya iyakance dokokinsa na bangon wuta ga wani bayani, kuma ana iya rarraba adaftar VPN a matsayin «na jama’a» yayin da LAN na gida ya kasance «na sirri». Ka ƙirƙira dokokin toshewar fita ga manhajar a cikin bayanan «na sirri» da «yanki», ka bar «na jama’a» a buɗe, kuma manhajar za ta isa cibiyar sadarwa ne kawai ta ramin. Ka fara saita nau’in cibiyar sadarwar haɗin, sannan ka tabbatar dokar ta yi daidai a cikin kwamitin sa ido na bangon wuta. Toshewa ne, ba hanya ba: yana kasawa a rufe lokacin da ramin ya faɗi, kuma ba zai iya tsayar da manhajar da ke watsi da bangon wuta ba.
macOS yana bin wannan tunani da wasu kayan aiki. Mai saurare na SOCKS da ake samu ta SSH shine zaɓi mafi ƙarancin tsoma baki, domin ssh -D 1080 user@host yana ƙirƙirar tasha ɗaya ta gida kuma manhajojin da aka saita don amfani da ita ne kawai ke bin wannan hanya. Dokar pf na iya toshe manhaja ta mai amfani ko rukuni, amma har yanzu ba za ta iya zaɓar ramin ga wannan manhaja kaɗai ba. Tunnelblick ba zai iya tacewa ta yanki ko kaɗan ba, domin hanyoyi suna aiki da adireshi; masu amfani da OpenConnect suna koma zuwa vpn-slice lokacin da sabar ta tura jerin prefix mai faɗi da yawa.
Hanyoyi biyu na dabam sun rufe abin da kayan aikin dandali ke watsi da shi. Ƙarin mai bincike da ke canza wakili ta yanki shine amsa mai amfani ga «wannan shafi kawai», domin suna aiki a matakin manhaja inda sunaye har yanzu suke; suna rufe mai bincike ɗaya kuma babu wani abu. Hanyar da ba ta da kyau ita ce a gudanar da abokin cinikin mai sayarwa a cikin na’urar kama-karya domin baƙon ya mallaki canjin hanya yayin da masaukin ke riƙe da hanyarsa, da kuɗin kula da tarin cibiyoyin sadarwa biyu.
Tsallen SOCKS ga kayan aikin da ba su da zaɓin ɗaurewa
Yawancin manhajoji ana iya nuna su zuwa wakilin HTTP ko SOCKS ko da ba su san komai game da fuskar sadarwa ba. Abokin cinikin SSH yana bayar da ɗaya ba tare da wani canji a gefen sabar ba:
ssh -N -D 127.0.0.1:9999 [email protected]Duk abin da aka saita don amfani da wannan tasha yana fita a bastion yayin da sauran tebur ɗin ke riƙe da haɗinsa na al’ada. Wani misali na gida na 3proxy da aka ɗaure zuwa adireshin ramin yana yin haka ga tasha ɗaya ba tare da SSH ba, kuma stunnel yana rufe tasha ɗaya da aka naɗe a TLS. Iyakoki na aiki ne: wakili yana ɗaukar kaɗai ka’idojin da suka san yadda ake amfani da shi, UDP yana buƙatar haɗin SOCKS5 UDP wanda saitin «SOCKS5» na yawancin abokan ciniki ba ya kunna, kuma DNS dole ne wakili ya warware shi (socks5h a cikin curl), in ba haka ba sunan zai ɓuya zuwa mai warwarewar gida.
Ka riƙe mai saurare a kan loopback sai dai idan wata na’ura tana buƙatarsa.
Ka tabbatar da hanya da kamawa, ba da saƙon yanayi ba
Tagogin yanayi na manhaja suna bayyana saitin, ba fakitin ba. Ka yi kamawa a duka fuskar sadarwa biyu ka kwatanta:
tcpdump -i any -n port 443
ss -tnp | grep 443Idan haɗin ya bayyana a fuskar sadarwar zahiri ba tare da shigarwa mai dacewa a ramin ba, zaɓaɓɓen ba ya aiki, ko me abokin ciniki ya bayar da rahoto. Ka duba IPv6 da mai warwarewa daban, kuma ka duba ko akwai hanya ta biyu kamar tsarin taimako ko wakilin tsarin da aka gado.
Sannan ka zaɓi iyakar da ta dace da buƙatar: wakili ya isa ga shafi ɗaya, dokar UID ta isa ga asusu ɗaya, bayanin bangon wuta ya isa lokacin da haɗin dole ya kasawa a rufe, kuma sararin suna shine kawai zaɓi da ke ɓoye ramin daga duk abin da ke wajensa.