ولې د OpenVPN UDP ځواب له غلط پتې راځي
څو سیمهایزې پتې لرونکی UDP سرور کېدای شي پیرودونکي ته له هغې پتې پرته بلې پتې ځواب ورکړي چې اړیکه یې ورسره کړې وه۔ multihome په ملاتړ شوو پلیټ فورمونو کې سرچینه سمول کوي۔
د OpenVPN پیرودونکی یوه پته غواړي، سرور له بلې پتې ځواب ورکوي، او ټنل هېڅکله نه پورته کېږي۔ د سرور لاګ د بستې راتګ ښیي او یو ثبت د ځواب وتل ښیي، نو تېروتنه پر پیرودونکي اچول کېږي۔ په هغه کوربه چې څو انټرفېسونه لري، یا په یوه انټرفېس څو پتې لري، دواړه خواوې یوازې په دې نه سلا کېږي چې کومه پته کارول کېږي۔ ځواب په IP پوړ کې سم دی، خو ډېر پیرودونکي هغه ډاټاګرام غورځوي چې سرچینه یې هغه پته نه ده چې دوی ورسره اړیکه کړې وه۔
پیرودونکی څه ویني کله چې سرچینه بدلېږي
هغه UDP ساکټ چې ځانته ټاکلې سیمهایزه پته نه وي تړل شوې، ثابته سرچینه نه لري، نو کرنل د لېږلو پر مهال یوه ټاکي۔ دا ټاکنه د پیرودونکي پتې په لور د لارې پلټنې څخه راځي، او سرچینه د هغه انټرفېس پته کېږي چې پلټنه یې ټاکي۔ په یو انټرفېس لرونکي ماشین کې ټاکنه نه لیدل کېږي؛ په هغه کوربه چې د مدیریت پته، عامه پته او په همدې شبکه کې دویمه پته لري، دا د لارې معیارونو او تګلارې پورې اړه لري۔ د تګلارې پر بنسټ لارښوونه ناسازګاري کموي نه، بلکې زیاتوي، ځانګړی قانون کېدای شي هغه پورتنۍ لاره وټاکي چې پیرودونکی هېڅکله نه ده رسېدلی۔ له یوه چمتو کوونکي زده شوې اصلي لاره او بل ته اشاره کوونکی سرچینه قانون یې د رامنځته کولو لپاره بس دي۔
هغه پیرودونکي چې ځوابونه فلټر کوي، او هغه اړیکه تعقیب چې دقیق څلورګون او سرچینه تمه لري، ځواب پرته له ګټور پیغام غورځوي۔ بیا ټنل لکه څنګه چې هېڅ نه وي راغلی، وخت تېروي، او له همدې کبله دا په غلطۍ د پیرودونکي خوا فایر وال ستونزه ګڼل کېږي۔ یوازې په سرور کې اخیستل شوی ثبت تېروتنه تاییدوي نه تشریح کوي، ځانګړی ځواب واقعاً وځي۔ له بل هر بدلون مخکې د ځواب سرچینه د هغې پتې سره پرتله کړئ چې پیرودونکي غږ کړې وه۔
د multihome غوراوي واقعاً څه کوي
لارښوونه په ترتیباتو فایل کې د multihome او په کمانډ کرښه کې د --multihome په توګه لیکل کېږي، او UDP سرور اړ کوي چې له هغې پتې ځواب ورکړي چې د پیرودونکي بسته ورته رسېدلې ده۔ کرنل د ترلاسه کولو پر مهال اصلي منزل پته د اضافي معلوماتو په توګه ورکوي، او OpenVPN هغه ارزښت د ځواب سرچینې په توګه کاروي۔ په دې توګه هغه سرور چې په ټولیزه پته غږ اوري، د IPv4 لپاره local 0.0.0.0 یا د هغې IPv6 معادل، داسې چلند کوي لکه هر پیرودونکی چې ځانګړي اورېدونکي ته رسېدلی وي۔ هغه پیرودونکي چې له عامه پتې راغلي، له عامه پتې ځواب اخلي، او په داخلي پته پیرودونکي له هماغې پتې اخلي۔ د بستې په لار کې بل څه نه خوځېږي: لاره، د فلټر قوانین او د ټنل ترتیبات هماغسې پاتې کېږي لکه څنګه چې وو۔
همدا وروستی ځانګړتیا غوراوي ته اجازه ورکوي چې په بل ډول کار کوونکي سرور کې په خوندي ډول ورزیات شي، او همدا لامل دی چې یوازې یوې پتې ته اجازه ورکوونکی فلټر نشي سمولای۔ بسته باید لا هم په هغه لار ومنل شي چې ځي، نو د سرچینې سمون د ځواب پیل بدلوي او نه ډېر څه۔ دا یوازې UDP لپاره هم ده: TCP اورېدونکی دا ستونزه په همدې بڼه نه لري، ځانګړی اړیکه د ځواب د سرچینې پتې نه، بلکې د څلورګون له مخې پېژندل کېږي۔
کله ثابته سیمهایزه پته غلط اصلي ارزښت وي
د غوراوي مخکې وګورئ چې سرور یوه ټاکلې سیمهایزه پته تړي که نه، ځانګړی تړل شوی اورېدونکی تل له هماغې پتې ځواب ورکوي۔ دا د یو انټرفېس لرونکي ځای پرځای کولو لپاره سم دی او کله چې پیرودونکي په قانوني توګه له یوې ډېرې پتې کار اخلي غلط کېږي۔ که تړل پټه نه وه، پرېکړه وکړئ چې سرور باید په اضافي پتو ترافیک ومني که نه۔ د تړلو لرې کول ښکارېدنه زیاتوي، نو اجازه ورکړل شوي انټرفېسونه او سرچینه شبکې باید خدمت او فلټر پلي کړي، نه یوازې د تړلو پته۔
د OpenVPN حواله غوراوي یوازې UDP سرورونو ته محدودوي، په بسته کې اضافي پروسس یادوي، او ثبتوي چې کوم پلیټ فورمونه یې ملاتړ کوي۔ د هغې پر بنسټ پلان جوړولو مخکې یې په نصب شوې نسخه کې تایید کړئ۔ چېرې چې ملاتړ نه لري، ټاکلې پته تړل یا د بېرته راستنېدو لاره سمول بدیل دی، او دواړه له لومړي نظر څخه تنګتر بدلونونه دي۔ په ټولیزه پته غږ اوردن له ځوابونو پرته هم پایلې لري: په ټولو پتو سرور له هغې هرې شبکې څخه د لاسرسي وړ دی چې کوربه ورسره نښلول شوی، او دا کېدای شي هغه ښکارېدنه نه وي چې چا په نظر کې درلوده۔
د ځواب سرچینه له بهر څخه ثابته کړئ
له سرور بهر ازموینه وکړئ، او د هر څه ثبتولو مخکې هغه دقیقه پته او لېږد ولیکئ چې پیرودونکي کارولی و۔ لاندې درې څېړنې درې بېلابېلو پوښتنو ځواب ورکوي، او ترتیب مهم دی۔
tcpdump -ni any udp port 1194
ss -lunp 'sport = :1194'
ip route get 203.0.113.10 from 198.51.100.20
ثبت په ځواب کې سرچینه پته ښیي، او ټول لیکنه پر همدې حقیقت ولاړه ده۔ د ساکټونو لیست ښیي چې سرور واقعاً څه تړلي، ځانګړی ټولیز اورېدونکی او ټاکل شوی اورېدونکی په ترتیباتو فایل کې یو ډول ښکاري او په شبکه کې بېل چلند کوي۔ د لارې پلټنه هغه سرچینه ښیي چې کرنل به یې په هغې بهیر ټاکله، او دا له هر بدلون مخکې ثبت تشریح کوي۔ درې واړه د IPv4 او IPv6 لپاره جلا تکرار کړئ، ځانګړی جلا اورېدونکي او جلا پلټنې دي، او د یوې کورنۍ لپاره ټولیزه ننوتنه د بلې په اړه هېڅ نه وایي۔
لارښوونه، موندنه او فلټر جلا پاتې کېږي
د ځواب د سرچینې ساتل وتونکې لاره نه نصبوي، متحرک DNS نه تازه کوي، او یوه پته کورنۍ نه اړوي چې بله ومني۔ په څو پورتنیو لارو سرور کې د هرې سرچینې لپاره د بېرته راستنېدو لاره باید په پوښتنې سره هوکړه شي، که نه ځوابونه هغه انټرفېس ته وځي چې د پیرودونکي فلټر هېڅکله اجازه نه وه ورکړې۔ همدارنګه، د مخکښ بدلون وروسته نوې پته باید پیرودونکو ته ورسیږي د موندنې او ملاتړ شوي بیا نښلولو بهیر له مخې، نه د زاړه ثبت له مخې۔
د سرور پېژندنې څېړنې او د سند تایید هماغسې پرېږدئ لکه څنګه چې دي، ځانګړې بدله شوې پته نه توجیه کوي چې ناڅېړل شوی ملګری ومنل شي۔ که ځواب اوس له پام شوې سرچینې وځي او ټنل لا هم ناکامېږي، د سرچینې ستونزه حل شوې وګڼئ او مخکې لاړ شئ۔ بل لیدل شوی تېروتنه د لارښوونې، فلټر یا تصدیق پورې اړه لري، او اورېدونکی بیا بدلول هغې ته نه رسېږي۔ په ټکټ کې د پیرودونکي د غږ کړې پتې ترڅنګ د ځواب سرچینه ولیکئ، تر څو بل کس هماغه حقیقت په یوه حکم وګوري۔