Hal sharci ayaa iko VPN la ogolaaday ka fogayn kara xadka ujeeddo iyada oo aan carqaladayn wax kale oo iriddu qabato. Sharciga laftiisu waa gaaban yahay; qaybaha go'aamiya haddii uu shaqeeyo waa hook-ga uu ku nool yahay iyo booskiisa silsiladda. Haddii aad labadan ku khaldanto, waxaad heli doontaa dab-damis u eg mid sax ah oo si aan iswaafaqsanayn u dhaqma. Ka bilow waxa baakaddu qabato marka sharcigu arko.

Waxa sharcigu dhab ahaan iswaafajinayo

Sharcigu wuxuu iswaafajiyaa saddex waxyaabood hal mar: interface gelitaanka, horgalaha isha iyo horgalaha ujeeddo. Saddexda waa inay run noqdaan ka hor inta aan la dhaqan gelin drop-ka, taasna waa waxa ku haysta cidhiidhi. In loo akhriyo hal tibaax ayaa ka fudud in loo akhriyo saddex siyaasadood oo kala duwan.

Iswaafajinta interface-ka waa waxa kala sooca taraafikada macmiilka ee la gudbiyo iyo xidhiidhada iridda lafteeda. Iyada la'aan, sharci magacaabaya kaliya ikota isha ayaa sidoo kale saameyn lahaa baakadaha iriddu lafteedu ka soo saarto cinwaankaas, haddii ay waligeed sidaas sameyso. Horgalaha ishu wuxuu siyaasadda ku xadidayaa macaamiisha la ogolaaday, horgalaha ujeeddaduna wuxuu ku xadidayaa hal xad. U akhri sharciga isgoys ma aha liis.

Qor saddexda qiime ka hor inta aadan wax beddelin: magaca interface-ka tunnel-ka, ikota uu server-ku qaybiyo, iyo horgalaha aad dooneyso inaad diiddo. Khalad teepa ah mid kasta oo iyaga ka mid ah wuxuu soo saaraa sharci si nadiif ah loo falanqeeyo oo aan waxba ilaalinayn. Saddexdaas qiime ku hay diiwaanka isbeddelka sharciga agtiisa.

Hook-ga ayaa go'aamiya cidda sharcigu khuseynayo

Silsilad netfilter ayaa ku xiran hook, iyo hook-ga ayaa go'aamiya baakadaha ay silsiladdu arko. Hook-ga forward wuxuu arkaa taraafikada laga maro iridda, taasna waa taraafikada macmiilka ilaa ujeeddo. Wax kasta oo kale oo silsiladda ku jira waxay u jeedaan dhagaystayaal kale.

Hook-ga input wuxuu arkaa taraafikada loo jeediyay iridda lafteeda, sidaas darteed sharci halkaas la dhigay wuxuu xakameynaa gelitaanka adeegyadeeda halkii uu xakameyn lahaa gudbinta. Hook-ga output wuxuu arkaa taraafikada iriddu lafteedu soo saarto, taas oo ka soo horjeedda waxa siyaasadda ikota macaamiishu u baahan tahay. Magacyada silsiladaha waa calaamado aan loo baahnayn oo uu doortay kii qoray xeerarka, sidaas darteed hook-ga ha ka qiyaasin magaca. Hubi halka silsiladdu ku xiran tahay ka hor inta aadan qiyaasin waxa ay iswaafajin karto.

HookTraffic it seesRight for this policy
inputAddressed to the gatewayNo, that is the host's own services
forwardRouted through the gatewayYes, for client-to-destination traffic
outputGenerated by the gatewayNo, that is the opposite direction

Akhriskii xidhnaanta waa hubin hal sadar ah oo ka hortagta in sharci ku dhaco silsilad aan waligeed arkin baakadda.

Dhig sharciga ka hor accept-ka ballaaran

Xeerarka waxaa lagu qiimeeyaa si isku xigta, oo go'aanka ugu horreeya ayaa guuleysta. Accept ballaaran oo hore silsiladda ku jira wuxuu joojiyaa qiimeynta baakadaha uu iswaafajiyo, sidaas darteed drop lagu daray kadib waligiis uma socdo iyaga. Xeerkaas nidaamka ah waa sababta oo dhan ee sharci u eg mid sax ah uu yeelan karo wax saameyn ah.

Geli sharciga ka hor accept-ka halkii aad ku dari lahayd dhammaadka. Haddii silsiladdu horey u leedahay accept guud oo loogu talagalay interface-ka tunnel-ka, sharciga cusub waa inuu ka horreeyaa haddii kale waa qurxin uun. Hubi nidaamka ka soo baxa ee ha hubin faylka aad beddeshay, sababtoo ah xeerar ka kooban dhowr fayl ayaa laga yaabaa in aanay la jaanqaadin midkoodna. Kadib ku xaqiiji baakad tijaabo ah oo ka timid ikota.

sudo nft list chain inet filter forward
sudo nft insert rule inet filter forward iifname "tun0" ip saddr 10.90.0.0/24 ip daddr 198.51.100.0/24 drop
sudo nft -c -f /etc/nftables.conf

Amarka saddexaad wuxuu falanqeeyaa faylka isagoo aan dhaqan gelin, taas oo qabata khaladaadka naxwe ahaaneed ka hor inta aanay noqon carqalad. Ku dhaqan geli qorshe dib u celin ah, sababtoo ah sharci qaldan oo ku jira silsilad forward ayaa gooyn kara tunnel-ka aad ka shaqeynayso.

Qulqulka jira dan kama hayaan sharcigaaga cusub

Gelitaanka conntrack oo la sameeyay ka hor inta uusan sharcigu jirin ayaa sii wada iswaafajinta accept-kii hore. Taasi waa sababta drop cusub mararka qaar ugu muuqdo mid u shaqeeya xidhiidhada cusub oo aan waxba u qaban kan la tijaabinayo.

Akhri iswaafajinta xaaladda ee silsiladda sare. Haddii ay aqbasho taraafikada established iyo related ka hor sharcigaaga, qulqul kasta oo socda ayaa sii soconaya ilaa uu xirmaan. Caadi ahaan taasi waa habdhaqanka aad rabto sharci degdeg ah, waana jahawareer marka aad filanayso goyn degdeg ah. Go'aanso saameynta aad rabto ka hor inta aadan geyn. Tijaabo isticmaalaysa xidhiidh furan ayaa kuu sheegta sheeko qaldan.

sudo conntrack -L -s 10.90.0.14 -d 198.51.100.20
sudo nft list ruleset | grep -n -A3 'ct state'

Amarka koowaad wuxuu muujinayaa haddii qulqul jiro, kan labaadna wuxuu muujinayaa haddii sharci xaalad hore uu weli aqbalayo. Labaduba waa akhris-kaliya oo ammaan ah in la socodsiiyo inta dhacdo dhacayso.

Waxa aan sharcigani ahayn

Sharcigu ma aha liis madow oo domain-yo, siyaasad IPv6 ama xaddid ku saabsan hal akoon oo application ah.

Mid kasta oo iyaga ka mid ah wuxuu u baahan yahay habkiisa. Xannibaadda domain-ku waa inay xalliso magacyo, taas oo shaandheynta baakaddu aanay qaban. Taraafikada IPv6 waxay u baahan tahay iswaafajinteeda, sababtoo ah tibaaxda ip waxba kama sheegto baakadaha ip6. Xaddidka heerka application-ku waxaa iska leh adeegga ama wakiil la xaqiijiyay, ma aha iswaafajinta horgalaha. In shuruudahaas la kala saaro ayaa ka hortagta in hal sharci cidhiidhi ah laga codsado afar shaqo.

Heshiiska uu sharcigani bixiyo waa mid saxan: taraafikada ka timaadda iko la ogolaaday oo u socota hal horgale ujeeddo waa la diidayaa, halka taraafikada iridda ee aan xidhiidhka lahayn uu haysto siyaasaddiisa jira. Qor jumladaas sharciga agtiisa, qofka xigana wuu ogaan doonaa waxa loogu talagalay.

Maqaallo la xiriira