Yadda za a ɗaure wata manhaja ta Linux ga VPN da dokokin UID
Dokar UID tana ganin soket na gida ne kawai, kuma keɓewar loopback ta saba tana kashe ramin. Ka fara ba da hanya ga asusun, sannan ka tace kuma ka tabbatar da kowane mataki.
Ɗaure wata manhaja guda ɗaya ga VPN a Linux galibi matsalar tuƙin hanya ce, kuma dokar wutar bango tana yanke shawara ne kawai kan abin da zai faru bayan an zaɓi hanyar. Idan ka daidaita UID na manhajar a OUTPUT kafin ramin ya mallaki tsohuwar hanya, dokar za ta watsar da ainihin zirga-zirgar da kake son karewa. Wannan dokar ita ma ba ta ganin tsarin resolver da ke amsa tambayoyin DNS na manhajar. Ka daidaita tsari kuma asusu ɗaya mara gata zai zama mai zaɓen rami mai rarrabuwa abin dogaro.
Ba wa asusun hanya kafin yanke hukunci
Daidaiton mai shi yana amsa tambaya ɗaya: shin soket na gida da ke cikin wannan UID ne ya gina fakitin? Ba ya zaɓen muƙamari, kuma ba zai iya motsa zirga-zirgar da babban tebur ke aikawa ta NIC ta zahiri ba. Shi ya sa dokar UID marar hanyar da ta dace tana toshe manhajar maimakon juya ta.
Ka fara tura asusun ta teburinsa, sannan ka bar wutar bango ta tabbatar da sakamakon. Wannan yana aiki a kan uwar garke da iproute2 nata ya fahimci uidrange, wanda ip rule help ke bayar da rahoto a layi ɗaya. Tebur 100 yana riƙe da tsohuwar hanya ta ramin, kuma dokar tana aika UID 1000 ne kawai zuwa wannan tebur. Duk sauran suna zama a babban tebur kuma suna ci gaba da amfani da hanyar zahiri.
ip rule add uidrange 1000-1000 table 100 ip route add default dev tun0 table 100
Asusu na biyu da ke buƙatar wani rami daban yana samun tebur 101 da nasa dokar, domin bayanai biyu ba za su iya mallakar tsohuwar hanya a tebur ɗaya tare ba. Bayanan NetworkManager na dukan tsarin, don haka wannan ɓangaren ya kasance da hannu, kuma dokokin suna ɓacewa a sake kunnawa sai wani ya dawo da su. Rubuta teburin a cikin rubutun taya kusa da bayanin ramin, don sake haɗawa ba zai bar asusu ɗaya a kan hanyar da ba daidai ba.
Me ya sa keɓewar loopback ke kashe ramin
Yawancin kwafin dokar suna watsar da kowane fakitin da bai fito ta loopback ba. Ramin ba loopback ba ne, don haka wannan siffar tana watsar da zirga-zirgar ramin ma, kuma sakamakon yana kama da VPN matattu maimakon kuskuren wutar bango.
Lokacin da OUTPUT ke aiki, kernel ya riga ya zaɓi muƙamarin fita, don haka -o ana kwatanta da amsar hanyar, ba da kan fakitin ba. Ana daidaiton mai shi ne kawai a OUTPUT da POSTROUTING, kuma fakitin da aka tura gaba ba su da soket da zai karanta. Wannan haɗin yana nufin keɓewar dole ta ambaci muƙamarin ramin kuma ta musanta wannan daidaito, maimakon musanta loopback.
Loopback har yanzu ya cancanci ACCEPT nasa a kan DROP, domin fakitin DNS na farko daga manhajar yana zuwa stub na gida ta lo. Sanya dokokin biyu a wannan tsari, kuma asusun ya isa stub, sannan ramin, kuma babu wani abu.
iptables -I OUTPUT 1 -o lo -m owner --uid-owner vpnapp -j ACCEPT iptables -A OUTPUT -m owner --uid-owner vpnapp ! -o tun0 -j DROP
IPv6 wani tsarin dokoki ne daban, kuma biyun da aka yi wa v4 kawai suna barin ip6tables ba a taɓa ba. Manhajar da ta fifita rubutun AAAA za ta fito ta hanyar zahiri ba tare da ta taɓa isa DROP ba. Ka kwatanta dokokin biyu a ip6tables, ko ka kashe IPv6 a uwar garke lokacin da ramin ba ya ɗauke da adireshin v6. Dokokin da aka ƙara da hannu ma suna ɓacewa a sake kunnawa, don haka ka adana su da netfilter-persistent save ko ka sake gina wannan dabaru a matsayin teburin nftables da sashin taya ke lodawa.
Amsoshin DNS suna zuwa daga wani tsari
Tambayar manhajar zuwa 127.0.0.53 tana wucewa ta ACCEPT na loopback, kuma a nan ne daidaiton UID ya tsaya. Resolver na stub yana tura gaba daga asusun sabis ɗinsa, don haka dokar da ta danganta da vpnapp ba za ta taɓa ganin tambaya ta biyu ba. Idan resolver ya zaɓi sabar LAN don hanyar, amsoshin suna dawowa ta NIC ta zahiri yayin da fakitin manhajar kansu ke zama a cikin ramin. Sakamakon da ake gani shine rami mai aiki da sunaye da suka lalace, ko sunayen da wani sabar da ba ka zaɓa ba ta amsa.
Gyara warware sunaye a hanyar ramin, ba a manhajar ba. Ba wa bayanin ramin sabar DNS da yankin tuƙin hanya, sannan ka tabbatar da resolvectl query da resolvectl status tun0 cewa resolver yana amfani da shi don sunayen da suka fi muhimmanci. A cikin sararin sunan cibiyar sadarwa matsalar tana ɓacewa, domin resolver na sararin ya san ramin ne kawai.
Duba dokar daga asusun kansa
Tambayi kernel wace hanya UID zai samu, sannan ka yi buƙata a matsayin wannan asusun kuma ka kwatanta adireshin fita da na asusunka. Idan duka biyun sun ba da rahoton adireshi ɗaya, dokar tana daidaitawa da wani abu dabam da zirga-zirgar da ka gwada. Umarnin farko da ke ƙasa yana nuna binciken hanya ba tare da aika fakitin ba, wanda ke raba kuskuren tuƙin hanya da kuskuren wutar bango.
ip route get 1.1.1.1 uid 1000 sudo -u vpnapp curl -s https://ifconfig.co
Ma'auni suna nuna ko dokar ta taɓa yin aiki. Ka gudanar da iptables -vnL OUTPUT, karanta adadin fakitin kusa da kowace dokar, kuma ka ɗauki sifili kusa da DROP bayan ainihin zirga-zirga a matsayin kuskuren daidaito.
Zirga-zirgar da aka tura gaba tana wajen wannan zane. Kwano ko VM bayan gada ba shi da soket na gida mallakar vpnapp, don haka daidaiton mai shi ba ya taɓa yin aiki kuma waɗannan fakitin suna bin manufar FORWARD maimakon. Idan dole a rufe wannan aikin, gwada shi daban kuma rubuta manufar da ta danganta da gada ko adireshin kwanon. Zanen yana tsayawa lokacin da tebur, keɓewar muƙamari, resolver da dokokin v6 duk suna nuni ga gefe ɗaya; bar ɗaya daga cikinsu kuma asusun ko yana zubowa ko ya rasa haɗi.