د هر VPN کلاینټ پول لپاره یوه منزل حد بنده کړئ
یو nftables قاعده کولای شي د یوې منل شوې VPN پول لپاره د منزل مخکښ بې له دې چې د ګېټوې خپل ترافیک ته لاس ووهي، رد کړي. هوک او موقعیت سره سم کړئ.
یوه قاعده کولای شي یوه منل شوې VPN پول له منزل حد څخه لېرې وساتي، پرته له دې چې د ګېټوې بل کار خراب کړي. پخپله قاعده لنډه ده؛ هغه برخې چې دا معلوموي چې کار کوي یا نه، هغه هوک دی چې پکې ژوند کوي او په زنځیر کې یې موقعیت. که په دې دواړو کې تېروتنه وکړئ، داسې فایر وال ترلاسه کوئ چې سم ښکاري خو ناسم چلند کوي. له هغې سره پیل وکړئ چې کله قاعده پاکټ ویني، پاکټ څه کوي.
قاعده واقعاً له څه سره سمون لري
قاعده په یو وخت درې شیان سره سمون لري: د ننوتلو انټرفېس، د سرچینې مخکښ او د منزل مخکښ. درېواړه باید ریښتیا وي مخکې له دې چې ډراپ تطبیق شي، او همدا دا تنګ ساتي. د یوې عبارت په توګه یې لوستل د درې جلا تګلارو په توګه له لوستلو اسانه دي.
د انټرفېس سمون هغه څه دي چې لېږدول شوی کسټمر ترافیک د ګېټوې له خپلو اړیکو جلا کوي. پرته له دې، یوه قاعده چې یوازې د سرچینې پول نوموي به هغو پاکټونو هم اغېزه وکړي چې پخپله ګېټوه له هغې پتې جوړوي، که دا کله هم وشي. د سرچینې مخکښ تګلاره منل شوو کسټمرانو ته محدوده کوي، او د منزل مخکښ یې یوه حد ته. قاعده د لیست په توګه نه، بلکې د تقاطع په توګه ولولئ.
مخکې له دې چې څه سم کړئ، درې ارزښتونه ولیکئ: د تونل انټرفېس نوم، هغه پول چې سرور یې ویشل کوي، او هغه مخکښ چې غواړئ رد یې کړئ. په هر یو کې تېروتنه داسې قاعده جوړوي چې پاکه تجزیه کېږي او له هېڅ شي ساتنه نه کوي. هغه درې ارزښتونه د قاعدې ترڅنګ په بدلون ثبت کې وساتئ.
هوک فیصله کوي چې قاعده پر چا تطبیقېږي
د netfilter زنځیر له یوه هوک سره تړل شوی، او هوک فیصله کوي چې زنځیر کوم پاکټونه ویني. د forward هوک هغه ترافیک ویني چې د ګېټوې له لارې لارښوونه کېږي، او له کسټمر څخه منزل ته ترافیک همدا دی. په زنځیر کې نور هر څه بل اورېدونکي ته روان دي.
د input هوک هغه ترافیک ویني چې پخپله ګېټوې ته مخاطب دی، نو هلته ایښودل شوې قاعده د تېرېدو پر ځای د هغې خپلو خدمتونو ته لاسرسی تنظیموي. د output هوک هغه ترافیک ویني چې ګېټوه یې پخپله جوړوي، او دا د هغه څه ضد دی چې د کسټمر پول تګلارې ته اړتیا ده. د زنځیرونو نومونه د قاعدو ټولګه لیکونکي لخوا ټاکل شوي خپل سري لیبلونه دي، نو له نوم څخه هوک مه اټکل کوئ. وګورئ زنځیر چېرته تړل شوی، بیا اټکل وکړئ چې له څه سره سمون کولای شي.
| Hook | Traffic it sees | Right for this policy |
|---|---|---|
| input | Addressed to the gateway | No, that is the host's own services |
| forward | Routed through the gateway | Yes, for client-to-destination traffic |
| output | Generated by the gateway | No, that is the opposite direction |
د تړلو لوستل یوه کرښه کتنه ده چې قاعده د هغې زنځیر څخه ساتي چې پاکټ هېڅکله نه ویني.
قاعده د پراخ accept مخکې ږدئ
قواعد په ترتیب ارزول کېږي، او لومړنی حکم ګټي. په زنځیر کې لومړنی پراخ accept د هغو پاکټونو لپاره ارزونه پای ته رسوي چې سره سمون لري، نو وروسته اضافه شوی ډراپ د دوی لپاره هېڅکله نه چلېږي. همدا ترتیب قاعده د دې ټول دلیل دی چې یوه سمه ښکارېدونکې قاعده څنګه بې اغېزې وي.
قاعده د پای ته اضافه کولو پر ځای د accept مخکې دننه کړئ. که زنځیر لا دمخه د تونل انټرفېس لپاره عمومي accept لري، نوې قاعده باید ترې مخکې وي، که نه یوازې ښکلا ده. پایله ترتیب وګورئ نه هغه فایل چې تاسو سم کړ، ځکه چې له څو فایلونو جوړه شوې قاعدو ټولګه ممکن له هېڅ یوه سره سمون ونه لري. بیا د پول څخه د ازموینې پاکټ سره تصدیق کړئ.
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
درېیم امر فایل پرته له تطبیق تجزیه کوي، چې د نحو تېروتنې د خنډ کېدو مخکې نیسي. د بیرته راګرځولو پلان سره یې تطبیق کړئ، ځکه چې په forward زنځیر کې ناسمه قاعده کولای شي هغه تونل پرې کړي چې تاسو پرې کار کوئ.
شته جریانونه ستاسو نوي قاعدې ته پام نه کوي
د قاعدې له موجودیت مخکې جوړ شوی conntrack ننوتنه د پخواني accept سره سمون ته دوام ورکوي. همدا لامل دی چې نوی ډراپ کله ناکله د نویو اړیکو لپاره کار کوونکی ښکاري او د هغې لپاره چې ازمویل کېږي هېڅ نه کوي.
د زنځیر په سر کې د حالت سمون ولولئ. که دا ستاسو د قاعدې مخکې established او related ترافیک مني، هر هغه جریان چې لا روان دی تر بندېدو پورې بهېږي. د بیړنۍ قاعدې لپاره معمولاً همدا هغه چلند دی چې غواړئ، او کله چې سملاسي پرې کول تمه لرئ، ګډوډوي. مخکې له ځای پرځای کولو پریکړه وکړئ چې کوم اغېز غواړئ. هغه ازموینه چې پرانیستې اړیکه بیا کاروي، تاسو ته ناسمه کیسه کوي.
sudo conntrack -L -s 10.90.0.14 -d 198.51.100.20
sudo nft list ruleset | grep -n -A3 'ct state'
لومړی امر ښیي چې جریان شته که نه، او دویم ښیي چې پخوانی حالت قاعده یې منلو ته دوام ورکوي که نه. دواړه یوازې لوستلو دي او د پېښې پر مهال یې چلول خوندي دي.
دا قاعده څه نه ده
قاعده د ډومینونو تور لیست، د IPv6 تګلاره یا پر یوې اپلیکیشن حساب بندیز نه دی.
له دې هر یوه خپله طریقه غواړي. د ډومین بندول باید نومونه حل کړي، چې د پاکټ فلټر یې نه کوي. د IPv6 ترافیک خپل سمون غواړي، ځکه چې د ip عبارت د ip6 پاکټونو په اړه هېڅ نه وایي. د اپلیکیشن کچې بندیز د مخکښ سمون نه، بلکې د خدمت یا تصدیق شوي پراکسي دی. همدا غوښتنې جلا ساتل د دې مخه نیسي چې له یوې تنګې قاعدې څلور کارونه وغوښتل شي.
هغه تړون چې دا قاعده یې وړاندې کوي دقیق دی: له منل شوې پول څخه یو منزل مخکښ ته ترافیک ردېږي، په داسې حال کې چې د ګېټوې بې اړیکه ترافیک خپله اوسنۍ تګلاره ساتي. هغه جمله د قاعدې ترڅنګ ولیکئ، او بل کس به پوه شي چې دا د څه لپاره وه.