معمولي حلقه ساتنه یوه هوسټ لاره ده: د VPN سرور عام پتې ته ترافیک د uplink له لارې بهر واستوئ تر څو کوډ شوې ناسته هیڅکله خپل تونل ته نه ننوځي۔ دا تر هغې شیبې کار کوي چې غواړئ هماغه سرور کې د تونل له لارې وېب خدمت ته هم ورسیږئ، ځکه استثنا هدف ته تړلې او هدف یو شان دی۔ د وتلو لاره دا ده چې د هدف له مخې ډلبندي پرېږدئ او د دې له مخې ډلبندي پیل کړئ چې کوم ساکټ پاکټ واستاوه۔

هغه دوه بهیرونه چې غواړئ جلا کړئ، له هغوی پیل کړئ

یو بهیر کوډ شوې OpenVPN لېږد پخپله دی، چې باید د uplink له لارې بهر ولاړ شي، که نه تونل خپله بهرنۍ اړیکه وړي۔ بل د هماغه عام پتې ته یوه عادي HTTPS غوښتنه ده، چې غواړئ د تونل دننه وي تر څو له تونل سرچینې خدمت ته ورسیږي۔ هماغه هدف، ډېرو حالاتو کې هماغه پورټ شمېره، بېل اړین مسیر۔

په دې تشریح کې فرض کړئ چې 10.90.0.10 کې یو کلاینټ د tun1 له لارې دی، د سرور عام پته 198.51.100.25 ده، او اصلي جدول نه دی لاسوهل شوی چې پخوانی مسیر یې عادي uplink ته ګوته نیسي۔ سرور خوا هم باید په داخلي لار کې وېب خدمت ومني او ترافیک د تونل سرچینې ته بېرته واستوي؛ عام پتې ته د پاکټ لېږل د سرور اورېدونکی یا د اور وژنې تګلاره نه لغوه کوي۔

له هر بدلون مخکې د هوسټ اوسني قواعد ولیکئ او هغه ارزښتونه وټاکئ چې بل څوک نه کاروي: یوه نښه، د جدول یوه شمېره او د دریو قاعدو لومړیتوبونه۔ د بېرته تګ هغه لاره وساتئ چې دې اړیکې نه تېریږي، ځکه دلته تېروتنه ستاسو خپل لرې لاسرسی اخلي، نه یوازې د براوزر ټب ماتوي۔

هغه ساکټ نښه کړئ چې پاکټ وړي

د کلاینټ ترتیب د خپلو کوډ شوو وتونکو پاکټونو لپاره نښه ترلاسه کوي او پخپله د مسیرونو نصبول بندوي، تر څو بدله تګلاره یوازینی شی وي چې مسیرونه ټاکي:

mark 42
route-noexec
disable-dco

لسمه 42 هغه شپاړسمه 0x2a ده، او شپاړسمه بڼه هغه ده چې د لارښوونې قواعد به ورسره سمون خوري۔ د link-options مرجع mark هغه څه بولي چې په Linux کې کوډ شوو وتونکو پاکټونو باندې پلي کیږي، یعنې هماغه ساکټ چې لاره یې کنټرولول غواړئ۔ د ډاټا کانال آفلاین کول دا بېلګه په کارن ځای لاره کې ساتي، چېرې چې د نښې چلند هماغه بیان شوی دی۔

route-noexec د OpenVPN خپل سریزې مسیرونو زیاتول او لرې کول ځپي۔ د هغوی پر ځای هېڅ نه نصبوي، نو له دې شیبې راهیسې د مسیرونو خاوند باید هر هغه مسیر وساتي چې تونل ته اړین دی۔ که بدلون وروسته یو شخصي هدف ورک شي، هغه نه شته بدله تګلاره ده، د نښې نیمګړتیا نه۔

دا کار کول پر مهال د 198.51.100.25 لپاره په اصلي جدول کې هوسټ مسیر مه ساتئ۔ داسې مسیر هماغه استثنا بېرته راولي چې ډیزاین یې تنګول غواړي، او له لاندې هرې تګلارې پوښتل کېدو مخکې به د HTTPS بهیر لپاره وګټي۔

پاتې نور ټول د تونل جدول ته واستوئ

کله چې د تونل سطح شتون ولري او خپله پته وساتي، تګلاره داسې ښکاري:

ip -4 route add default dev tun1 src 10.90.0.10 table 47100
ip -4 rule add priority 20000 lookup main suppress_prefixlength 0
ip -4 rule add priority 20001 not fwmark 0x2a lookup 47100
ip -4 rule add priority 20002 not fwmark 0x2a unreachable

لومړی قاعده د هوسټ ځانګړي مسیرونه لیدل کېدونکي ساتي، په شمول هر تصویب شوی ځایي شبکه، او هماغه وخت د اصلي جدول پخوانی مسیر دې لټون لپاره نالیدل کېدونکی کوي۔ دا توپیر مهم دی: پخوانی ځپل د جدول له پامه غورځول سره یو شان نه دي، او هغه ځایي استثناوې چې لا یې اړتیا لرئ یوازې د همدې له امله ژوندۍ پاتې کیږي۔ هغه استثناوې یوه یوه ولولئ، پرځای دې چې فکر وکړئ پایله یو نړیوال بیړنی سویچ دی۔

بې نښې ترافیک بیا د تونل جدول ته لوېږي، د تونل سرچینه اخلي او د VPN له لارې وځي۔ نښه شوی ترافیک په راتلونکو دوو قاعدو کې د fwmark ازموینه کې ناکام شي او لیست کې لاندې عادي اصلي لټون ته ځي، چېرې چې د uplink پخوانی مسیر لا هم دی۔ وروستی unreachable قاعده هغه ده چې بې نښې بهیر د تونل مسیر نه شتون پر مهال له غږه پرته uplink ته بېرته لوېدو مخه نیسي۔ ټاکونکی له پیل څخه تر پای پورې نښه ده، او د هدف پته هیڅکله پرېکړې ته نه ننوځي۔

هغه ساتونکی د اړیکو پرې کېدو په اوږدو کې خپل ځای کې وساتئ، او دا د پاتې تګلارې سره یوځای نصب کړئ، نه په لاس۔ هغه قاعده چې له سطح سره ورک شي تګلاره نه ده، تصادف دی۔ کله چې تونل ولوېږي تګلاره پاکول د ناکامۍ طریقه له «بندې شوې» څخه «تویې شوې» ته بدلوي، او وروسته پای ته رسېدونکی زوړ تونل مسیر د غلطې سطحې له لارې وتلي ترافیک په پرتله ډېر اسانه تشریح کېدونکی ستونزه ده۔

پر بېرته تګ لاره هماغه نښه وګورئ

وتونکې نښې یوازې نیمه لار ده، او دا هغه برخه ده چې ډېری بیا تولیدونه یې پرېږدي۔ د کوډ شوې ناستې ځوابونه د uplink له لارې رسیږي او د بېرته تګ لارې تصدیق تابع دي، چې پوښتنه کوي آیا سرچینه به هغه لار بېرته واستول شي چې راغلې ده۔ پرته له مرستې هغه لټون ستاسو بې نښې تونل تګلاره پلي کوي او پایله کوي چې پاکټ په غلطه سطحه دی۔

سمون د اور وژنې خاوند دی: نښه په وتونکې اړیکه کې وساتئ، هغه په سمون خورو ننوتونکو پاکټونو کې بېرته راولئ، او د اړوندې لارې لپاره د سرچینې تصدیق شوې نښې پروسس فعال کړئ۔ OpenVPN ساکټ نښه ټاکل د دې دریو څخه هېڅ نه کوي، او هغه ترکیب چې یوازې د کلاینټ اختیارونه لیست کوي نیمګړی دی۔ هغه یوځای والی په لیکلي ډول وغواړئ، ځکه چې دا د ډیزاین تر ټولو کمه لیدل کېدونکې برخه ده او په بیا جوړولو کې تر ټولو اسانه ورکېدونکې۔

سست بېرته تګ لارې کتنه هم بدیل نه ده۔ سست حالت کې هم باید د سرچینې لپاره یو مسیر وي، او هغه unreachable ساتونکی چې تاسو زیات کړی د بې نښې لټونونو لپاره یو په قصد لرې کوي۔ پر دې ډیزاین تکیېدو مخکې د اړیکې نښې یوځای والی بشپړ او بیاکتنه کړئ، او د هوسټ فلټرونه جلا پوښتنه وګڼئ: نښه د لارښوونې اشاره ده، اجازه نه۔ که یوځای والی نه وي، نښه هغه ناسته ده چې جوړیږي او بیا ځوابونه راتلل پیل شي نو غلیږي۔

دا په دوو مسیر لټونونو ثابت کړئ

پرېکړه چې کیرنل د دوو شرایطو لپاره څه کوي سره پرتله کړئ، او د وتلو حالت پر ځای dev او src ساحې ولولئ:

ip -4 route get 198.51.100.25
ip -4 route get 198.51.100.25 mark 0x2a

لومړی لټون باید د تونل سرچینې سره tun1 ته حل شي، او دویم د uplink ته۔ دا مصنوعي لټونونه دي، نو تګلاره ثابتوي، نه روان بهیر: د روان کلاینټ واقعي لېږد لاره جلا تایید کړئ، بیا د سند تصدیق روښانه ساتلو سره ریښتینی HTTPS غوښتنه وکړئ۔

له بشپړ اعلان مخکې ولیکئ چې ډیزاین څه نه پوښي۔ DNS، IPv6 او د قواعدو ژوند دوره هر یو خپله پرېکړه غواړي، او دا د IPv4 لارښوونې بېلګه ده، نه بشپړه پټتیا ترتیبه۔ د هغې ارزښت ټاکونکی دی: پاکټ د uplink استثنا اخلي، او هماغه پتې عادي خدمت اړ نه دی چې دا میراث واخلي۔

اړوندې مقالې