SSH Tunneling چیست ؟

یکی از دلایلی که پروتکی مثل SSH طراحی شد بحث مشکلاتی بود که در بحث استفاده از آدرس های IP عمومی یا Public وجود داشت ، به این معنی که هر کسی می توانست از هر جای دنیا به آدرس IP سرور شما متصل شود و این شخص ممکن است یک هکر باشد. مهاجمین با داشتن آدرس IP Public شما امکان حمله به شما از هر جای دنیا را داشتند. توسعه و طراحی SSH Tunneling مشکلات بسیاری که در حوزه امنیت آدرس های IP عمومی وجود داشت را حل کرد. مکانیزم کاری SSH Tunnel زیاد پیچیده نیست و در واقع این تکنیک از یک سرور و یک کلاینت تشکیل شده است که Session ارتباطی امنی بین همدیگر برقرار می کنند که هیچکس نمی تواند وارد این Session و ارتباطات آن شود و به همین دلیل امنیت بالایی دارد و از طرفی تجهیزات یا افرادی که در مسیر راه امکان شنود اطلاعات را دارند نیز نمی توانند وارد مسیر مورد نظر بشوند. ایجاد کردن یک Tunnel برای ارتباط بین دو ماشین با آدرس های IP غیر عمومی یا Private نیازمند پیاده سازی سه مرحله ای و حداقل داشتن سه ماشین است ، این سه ماشین که در فرآیند SSH Tunnel استفاده می شوند موارد زیر هستند :

۱٫     ماشین محلی ( Local Machine ) چیکار کنم مجبورم ترجمه کنم میفهمی ؟ مجبورم !

۲٫     یک ماشین واسط میانی دارای آدرس IP Public جهت ارتباط اینترنتی

۳٫     ماشین هدف که دارای یک آدرس IP غیر عمومی است و قبل از ارتباط ماشین محلی بایستی ارتباطش با ماشین میانی برقرار شود


شما می توانید به ترتیب زیر Tunnel ایجاد کنید :

  • یک SSH Connection از Local Machine تا ماشین واسط یا Intermediate Machine ایجاد کنید که دارای آدرس IP Public است.
  • به SSH Connection فرمان بدهید که صبر کند و ترافیک را از Local Port به سمت Intermediate Machine یا ماشین واسط منتقل کند تا ماشین واسط به سمت ماشین هدف ( Target Machine ) ترافیک را با آدرس IP Private انتقال دهد ! به اینکار Port Acceleration یا Port Forwarding گفته می شود
  • بر روی Local Machine نرم افزاری که می خواهید با ماشین مقصد ارتباط داشته باشد را انتخاب می کنید و تنظیمات Port Forwarding را بر روی آن انجام می دهید.حالا هر زمان که شما به local port متصل شوید ! ترافیک شما خودکار به سمت Remote Machine منتقل می شود.

الان متوجه شدید چجوری کار می کنه ؟ به خدا اگه متوجه شده باشید !! من خودم متوجه نشدم شما چجوری متوجه شدید ؟ بصورت ساده تر شما از کامپیوتر مبدا یک ارتباط SSH با کامپیوتر واسط برقرار می کنید اوکی ؟ اون کامپیوتر واسط یک آدرس IP معتبر اینترنتی داره اوکی ؟ شما هر ترافیکی که از ماشین مبدا بخاین به مقصد برسه طبیعتا اول باید با کامپیوتر واسط ارتباط بگیره اینم که اوکیه دیگه ؟ یعنی من اگر بخام بگم فلان فایل رو آپلود کن اول باید دستور من به کامپیوتر واسط برسه حله ؟ سیستم مقصد الزامی نداره که IP عمومی داشته باشه چون اینترنت داشته باشه کافیه که بتونه اون هم به کامپیوتر واسط وصل بشه ، هر ترافیکی با هر پورتی بخاد از کامپیوتر مبدا به کامپیوتر مقصد منتقل بشه باید بیاد توی تونل SSH قرار بگیره یعنی یه جورایی تبدیل به پورت ۲۲ بشه !! خوب اینکار رو بهش میگیم تبدیل پورت یا Port Forwarding اینم که حله ؟ حالا هر نرم افزاری که قرار بود از سیستم مبدا به مقصد متصل بشه رو باید تنظیمات استفاده از SSH Tunnel رو روش انجام بدیم منطقیه دیگه ؟ شما اگر یک کامپیوتر با پروکسی اینترنت داشته باشه ظبیعیه که باید تنظیمات پروکسی رو روی نرم افزارهایی که اینترنت میخان انجام بدید حله ؟ خلاص ….
خوب برای اینکه ارتباط بین سیستم ها امن باشد SSH از دو کلید رمزنگاری PKI برای رمزنگاری مسیر و داده ها استفاده می کند. این کلیدها نمایانگر کامپیوترهای مورد اعتماد در مسیر ارتباطی هستند. زمانیکه یک SSH Connection در حال ایجاد شدن است ، هر دو ماشین کلیدهای عمومی خودشان را به همدیگر می دهند ، اما فقط کامپیوتری قادر به رمزگشایی خواهد بود که کلید خصوصی را داشته باشد. امیدوارم مورد توجه شما قرار گرفته باشد. ITPRO باشید

 

دیدگاه‌تان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *