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

د هر څه پرتله کولو دمخه انټرفېس ونوموئ

د OpenSSH کلاینټ لارښود څلور میکانیزمونه توپیر کوي چې ګډول یې اسان دي۔ شیل یا لیرې کمانډ پر SSH کوربه اجرا کیږي۔ سیمه‌ایز لېږد د کلاینټ پر یو اورېدونکی ساکټ پرانیزي او بل اړیکه د لیرې خوا څخه جوړوي۔ لیرې لېږد برعکس کوي، د سرور پر خوا اورېدل۔ متحرک لېږد هغو پروګرامونو ته چې د هغه کارول پوهیږي SOCKS پای ټکی وړاندې کوي۔

  • شیل: پروګرام پر لیرې ماشین چلیږي، په سیمه‌ایز ډول هیڅ نه اورېدل کیږي۔
  • سیمه‌ایز لېږد: ستاسو لپ‌تاپ یو پورټ لري، لیرې کوربه بهر وتونکی اړیکه جوړوي۔
  • لیرې لېږد: لیرې خوا یو پورټ لري، ټرافیک ستاسو خواته بېرته راځي۔
  • متحرک: د کلاینټ پر SOCKS پروکسي، یوازې د پروکسي پوه اپلیکیشنونو لخوا کارول کیږي۔

له دې څخه هیڅ یو لاره نه نصبوي۔ هغه پروګرام چې د پروکسي تنظیمات له پامه غورځوي، یا UDP خبرې کوي، یا نومونه پخپله حل کوي، په فعال SSH سیشن اغیزه نه کوي۔ دا په SSH کې تېروتنه نه ده؛ دا ستاسو د غوره شوي انټرفېس حد دی۔

سیمه‌ایز، لیرې او متحرک لېږدونه په دې کې توپیر لري چې څوک اورېدونکی دی

هغه توپیر چې ډیری قضیې فیصله کوي دا دی چې اورېدونکی ساکټ چا لري۔ په سیمه‌ایز لېږد کې کلاینټ اورېدل کوي او لیرې سر هدف ډایل کوي، ځکه د هدف پته د سرور له نظره حل کیږي۔ په لیرې لېږد کې سرور اورېدل کوي او اړیکه ستاسو خواته بېرته وړل کیږي، او همدا ډول تاسو یو سیمه‌ایز خدمت پرته له مستقیم خپرولو ښکاره کوئ۔

ssh -N -L 5432:db.internal.example:5432 [email protected]
ssh -N -D 1080 [email protected]
ss -ltnp | grep -E '5432|1080'

لومړی کمانډ پر لپ‌تاپ پورټ 5432 تړي او هغه ډیټابیس ته لېږدوي لکه څنګه چې له بستیون څخه ښکاري۔ دویم پر پورټ 1080 یو SOCKS پروکسي جوړوي۔ درېیم کمانډ تاییدوي چې کوم بهیرونه واقعیا اورېدل کوي، او دا یوازینی ثبوت دی چې لېږد شته، نه دا چې د پورټ تصادم له امله په خاموشۍ ناکام شوی۔

متحرک لېږد خپل ګواښ ته مستحق دی: یوازې هغه اپلیکیشنونه پوښي چې SOCKS ته درناوی کوي۔ براوزر کولی شي هغه ته اشاره شي، کمانډ لاین وسیله کولی شي هغه کارولو ته وویل شي، مګر د ډیټابیس ډرایور چې خپل اړیکه سټیک لري معمولا نشي کولی۔ دا فرض چې ماشین هر پروګرام اوس تونل کاروي په دې ټول برخه کې ترټولو عامه تېروتنه ده۔

د تونل وسیلې حالت یوازینی ریښتینی شبکه‌ایز استثنا دی

OpenSSH هم -w د تونل وسیلې لېږد ملاتړ کوي، کوم چې د TCP اورېدونکي پرځای نقطه تر نقطې انټرفېس تېروي۔ دا ریښتینی شبکه‌ایز تونل دی، او په قصد سره تنظیمیږي، نه د شیل پرانیستلو اړخیزه اغیزه۔

sudo ssh -w 0:0 [email protected]
ip addr show tun0

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

حتی بیا هم تونل پر لیرې کوربه پای ته رسي۔ کومه ساتنه چې SSH لېږد ورکړې وي همالته پای ته رسي، او بل اړیکه جلا ټوپ دی۔ VPN دروازه هم هماغه بڼه سرحد لري، ځکه پرتله باید د حد او پای په اړه وي نه دا چې کومه وسیله پیاوړې ده۔ د هغه سرحد په لوړ غږ نومول هغه بحث هم حل کوي چې ایا تونل «هر څه کوډ کوي»، ځکه په ښکاره توګه نه کوي۔

وګورئ چې ستاسو اپ ستاسو جوړ شوی انټرفېس کاروي

تایید د هر اپ لپاره دی، د سیشن لپاره نه۔ فعال لېږد ثابتوي چې پورټ تړل شوی او لیرې خوا کولی شي ډایل کړي؛ دا نه ثابتوي چې ستاسو لپاره مهم پروګرام له هغه څخه وتلی۔

curl -sS --socks5-hostname 127.0.0.1:1080 -o /dev/null -w '%{http_code}\n' https://app.internal.example/health
psql "host=127.0.0.1 port=5432 dbname=app sslmode=require" -c 'select 1'

لومړی کمانډ د کوربه نوم له لیرې حل کولو سره د SOCKS پای ټکي له لارې غوښتنه لیږي، او دویم هغه لېږل شوی ډیټابیس پورټ ازمويي چې TLS لا هم اړین دی۔ هماغه ازموینې د لېږد د بند حالت سره وچلو ترڅو تایید شي چې ناکام شي، ځکه هغه ازموینه چې دواړو لارو بریالۍ شي هیڅکله تونل نه دی کارولی۔

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

اړوندې مقالې