SSH tunneling ویژگی ارائه شده توسط ابزار OpenSSH است که به ما امکان می دهد یک تونل بین دو نقطه ایجاد کنیم تا داده های سایر پروتکل ها در هدر SSH رمزگذاری شده و به عنوان داده SSH بین آن دو میزبان منتقل شوند.
SSH دارای احراز هویت و رمزگذاری داخلی است، به این معنی که میتوانیم از تونلهای SSH برای انتقال دادههای سرویسهای ناامن بین دو نقطه استفاده کنیم.

SSH Tunneling به سه روش میتواند پیاده سازی شود.
- SSH Tunnel (local port forwarding)
- Reverse SSH Tunnel (remote port forwarding)
- Dynamic SSH Tunnel (dynamic port forwarding)
SSH Tunnel (local port forwarding)
هنگامی که یک تونل SSH با port forwarding محلی ایجاد می کنید، تونل SSH داده ها را از پورت دستگاه مبدا به پورت سرور ارسال می کند. این ساده ترین شکل تونل SSH است.

Reverse SSH Tunnel (Remote Port Forwarding)
تونل معکوس SSH به پورت دستگاه ریموت گوش می دهد و تمام داده هایی را که روی آن پورت می آیند از طریق SSH به پورت مشخص شده در دستگاه محلی شما ارسال می کند.

Dynamic SSH Tunnel (Dynamic Port Forwarding)


ssh -D 1234 remoteuser@remotehost
در این حالت، تونل SSH شما به عنوان پراکسی SOCKS عمل می کند که در «پورت 1234» گوش می دهد. درخواست اضافه شده به “پورت 1234” دستگاه محلی شما به دستگاه میزبان ریموت ارسال می شود و دستگاه میزبان ریموت از طرف شما درخواست را به سرور واقعی ارسال می کند.
برنامه مبداء شما باید از SOCKS آگاه باشد. در این حالت مبداء ما مرورگر ما است. ما در مثال خود فایرفاکس را در نظر میگیریم:
به «تنظیمات» بروید. روی “General” و سپس “Network Settings” کلیک کنید و روی دکمه “Settings” کلیک کنید. “Manual proxy configuration” را انتخاب کنید. آدرس IP دستگاه محلی خود را وارد کنید (127.0.0.1 نیز کار می کند) در بخش “SOCKS Host”. سپس شماره پورتی را که در دستور بالا مشخص کرده اید (در این مثال 1234) وارد کنید.
با خیال راحت از SSH Tunneling استفاده کنید
SSH tunneling یک ویژگی بسیار ساده و در عین حال بسیار قدرتمند است که انتقال امن داده ها را از طریق شبکه امکان پذیر می کند. همانطور که بحث کردیم، SSH Tunneling هیچ نوع استفاده ثابتی ندارد، اما اگر بدانید چگونه کار میکند، میتواند در موقعیتهای مختلف بسیار مفید باشد.



نظر شما در مورد این مطلب چیه؟