محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

SSH Tunneling چیست؟ آشنایی با VPN مبتنی بر SSH به زبان ساده

قبلا در ITPRO بصورت بسیار مفصل در خصوص انواع و اقسام پروتکل های Tunneling و حتی HTTP Tunneling صحبت کرده ایم . امروز می خواهیم در خصوص یکی دیگر از روشهای دور زدن مکانیزم های امنیتی فایروال به نام SSH Tunneling صحبت کنیم. همانطور که می دانید SSH یک پروتکل امن ارتباطی است که داده ها را از میان یک Tunnel ارتباطی امن منتقل می کند. SSH Tunneling تکنیک دیگری است که مهاجمین می توانند از طریق آن محدودیت های فایروال ها را دور بزنند و از آنها عبور کنند. با استفاده از SSH Tunneling آدرس IP شما نیز در محیط اینترنت مخفی باقی می ماند بنابراین هیچکس نمی تواند شما را مانیتور و یا شنود کند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

 

SSH Tunneling چیست ؟

 

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

  1. ماشین محلی ( Local Machine ) چیکار کنم مجبورم ترجمه کنم میفهمی ؟ مجبورم !
  2. یک ماشین واسط میانی دارای آدرس IP Public جهت ارتباط اینترنتی
  3. ماشین هدف که دارای یک آدرس 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 قرار بگیره یعنی یه جورایی تبدیل به پورت 22 بشه !! خوب اینکار رو بهش میگیم تبدیل پورت یا Port Forwarding اینم که حله ؟ حالا هر نرم افزاری که قرار بود از سیستم مبدا به مقصد متصل بشه رو باید تنظیمات استفاده از SSH Tunnel رو روش انجام بدیم منطقیه دیگه ؟ شما اگر یک کامپیوتر با پروکسی اینترنت داشته باشه ظبیعیه که باید تنظیمات پروکسی رو روی نرم افزارهایی که اینترنت میخان انجام بدید حله ؟ خلاص ....

خوب برای اینکه ارتباط بین سیستم ها امن باشد SSH از دو کلید رمزنگاری PKI برای رمزنگاری مسیر و داده ها استفاده می کند. این کلیدها نمایانگر کامپیوترهای مورد اعتماد در مسیر ارتباطی هستند. زمانیکه یک SSH Connection در حال ایجاد شدن است ، هر دو ماشین کلیدهای عمومی خودشان را به همدیگر می دهند ، اما فقط کامپیوتری قادر به رمزگشایی خواهد بود که کلید خصوصی را داشته باشد. امیدوارم مورد توجه شما قرار گرفته باشد. ITPRO باشید

نویسنده : محمد نصیری

منبع : ITPRO

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات