WireGuard DNS DNAT: د ځواب لاره فعاله وساتئ
DNAT منزل بیا لیکي، نه سرچینه۔ د قاعدې له اضافه کولو مخکې پریکړه وکړئ چې پورتنۍ resolver څنګه ځواب ورکولی شي، او هر مطابقت تنګ وساتئ۔
د WireGuard کليانټ DNS پوښتنه بل resolver ته اړول یوې قاعدې ته ورته ښکاري خو د درېو پریکړو په څیر عمل کوي۔ منزل باید بیا ولیکل شي، پاکټ باید ولېږل شي، او ځواب باید د ګیټوې لخوا جوړ شوي ژباړې حالت له لارې بیرته خپله لاره ومومي۔ که درېیم پریږدئ، پوښتنه پاکه وځي خو کليانټ تل لپاره انتظار کوي۔
د 10.77.0.0/24 دننه اجازه لرونکي کليانټونه wg0 له لارې راځي، اعلان شوې پته 10.77.0.1 پوښتني او 203.0.113.53 کې resolver ته اړتیا لري — دا بېلګه واخلئ۔ پورتنۍ پته د اسنادو لپاره ځای نیوونکې ده، نه فعاله خدمت۔
د پوښتنې بیا لارښوونه یوازې د هغې منزل بدلوي
په PREROUTING کې د منزل-NAT قاعده د لارښوونې پریکړې دمخه پته بیا لیکي، نو پاکټ بیا زاړه منزل پرځای نوي منزل ته لارښوونه کیږي۔ د کليانټ سرچینه پته دې عملیاتو ته نه رسیدلې پاتې کیږي۔ له همدې امله بشپړ ښکاره شوې قاعده بیا هم ګنګوسه پیدا کولی شي: غوښتنه اوس داسې resolver ته ځي چې د کليانټ خصوصي حد په اړه یې هیڅکله نه دی اوریدلی۔ ګیټوې یوه ساحه وژباړله او دوهمه ستونزه یې میراث ترلاسه کړه۔
د DNS دواړو لېږدونو ته سمون خوړونکې قاعدې ته اړتیا ده، ځکه کليانټ TCP ته بیرته ځي کله چې ځواب پرې شي۔
لاندې قاعدې یوه راتلونکې انټرفیس، یوه کليانټ حد او یوه اصلي منزل پته ټاکي۔ په ګیټوې کې بل هیڅ شی اغیزمن نه دی، او د ګیټوې خپله پوښتنه هیڅ سره سمون نه خوري۔
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i wg0 -s 10.77.0.0/24 -d 10.77.0.1 -p udp --dport 53 -j DNAT --to-destination 203.0.113.53:53
iptables -t nat -A PREROUTING -i wg0 -s 10.77.0.0/24 -d 10.77.0.1 -p tcp --dport 53 -j DNAT --to-destination 203.0.113.53:53
د ځواب لاره جلا پریکړه ده
دوه ترتیباتو ځواب ته د بیرته راتلو اجازه ورکوي، او یو ژر ټاکل یوه ډیبګ غونډه ژغوري۔ یا پورتنۍ resolver دې ګیټوې له لارې 10.77.0.0/24 ته بیرته د راستنیدو لاره لري، یا ګیټوې په وتلو کې سرچینه ژباړي ترڅو ځواب هغې پتې ته ورسیږي چې پورتنۍ پخوا پیژني۔ دواړه کار کوي؛ یوازې یوه د پورتنۍ باندې ستاسو د کنټرول سره سمون خوري۔
لارښوونه لومړي هڅې ته وړ ده، ځکه د کليانټ پته resolver لپاره لیدونکې ساتي او د ژباړې دوهم پوړ څخه مخنیوی کوي۔ کله چې پورتنۍ ستاسو له کنټرول بهر وي، په ځانګړي وتلو انټرفیس کې د سرچینې ژباړه عملي انتخاب دی۔
هغه ژباړه د بیا لارښوونې په اندازه کلکه محدوده کړئ، که نه قاعده د هغې سره ناڅاپي سمون خوړونکې هرې شی لپاره عمومي NAT کیږي:
iptables -t nat -A POSTROUTING -s 10.77.0.0/24 -d 203.0.113.53 -o eth0 -p udp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.77.0.0/24 -d 203.0.113.53 -o eth0 -p tcp --dport 53 -j MASQUERADE
د اتصال تعقیب نقشه جوړه ساتي، نو ځواب د بیرته راتلو په لاره کې د کليانټ اصلي tuple ته بیا لیکل کیږي۔ د وتلو قاعدې پرته resolver خپل ځواب هغې خصوصي پتې ته لیږي چې هلته نشي رسیدلی، او کليانټ د خطا پرځای د وخت پای ویني۔
قاعدې د کار له ښکاریدو څخه تنګې ولیکئ
د لیږلو اجازه همدې حد پورې اړه لري۔ په ماشین کې هره DNAT اړیکه ومنئ، پرځای یې له کليانټ څخه resolver ته بهیر او هغه بیرته راتلونکې ترافیک چې conntrack پخوا پیژني اجازه ورکړئ۔ عمومي اجازه هغه پورټ لیږلو ته هم اختیار ورکوي چې DNS سره هیڅ تړاو نلري۔
د ګیټوې خپله resolver بله کوډ لاره ده۔ په محلي ډول صادره پوښتنه OUTPUT څخه تیریږي، نو د ګیټوې شیل څخه ازموینه نه PREROUTING قاعده تمرینوي او نه د لیږلو تګلاره۔ له همدې امله محلي ازموینه بریالۍ کیدلی شي پداسې حال کې چې هر کليانټ ناکام شي، او برعکس یې هم هومره عام دی۔
دلته هیڅ شی په 443 پورټ کې د HTTPS باندې DNS یا په 853 پورټ کې د TLS باندې DNS نه رانغاړي، او هیڅ شی IPv6 نه رانغاړي۔ IPv6 resolver لرونکی کليانټ به ټول ترتیب په خوښۍ سره له پامه وغورځوي۔
نوې پوښتنه څه ثابتوي
د اتصال تعقیب پخوانۍ نقشې یادې ساتي، نو د قاعدې د بدلون دمخه لیږل شوې پوښتنه کیدلی شي له زاړه حالت څخه ځواب شي او نوې قاعده ماتې ښکاره کړي۔ له نوي سرچینې پورټ سره پیل وکړئ او، چیرې چې کليانټ ځوابونه کیش کوي، له نوي نوم سره۔
dig @10.77.0.1 example.com A +short
conntrack -L -p udp --dport 53 | head
لومړی کمانډ ښیي چې د کليانټ لاره اصلاً حل کیږي که نه، او دوهم هغه ژباړه ښیي چې ګیټوې واقعاً نصب کړې، د tuple دواړه جهتونه په ګډون۔ هغه نقشه چې سم resolver ته اشاره کوي خو د ځواب شمیرونکی یې په صفر بند پاتې دی، د فلټر ستونزه نه بلکې د بیرته راتلو لارې ستونزه ده۔
له هر څه بیا لارښوونې دمخه تایید کړئ چې resolver هغه نومونه پیژني چې تاسو یې تمه لرئ۔ داسې بدیل چې عامه نومونو ځواب ورکوي خو ستاسو خصوصي زون ته نه یوه کار کوونکې پلټنه NXDOMAIN ته اړوي چې د مات شوي تونل په څیر ښکاري۔ د کليانټ لارې له ښکیلیدو دمخه resolver مستقیم له ګیټوې څخه وازموئ۔ او د iptables توسیعونو مرجع هغه د DNAT او masquerade معنی لیکي چې دا قاعدې پرې تکیه کوي۔