لینوکس, مدیریت سرور لینوکس

آموزش تنظیم تونل SSH در لینوکس و کانفیگ SSH tunneling یا SSH port forwarding

آموزش تنظیم تونل SSH در لینوکس و کانفیگ SSH tunneling یا SSH port forwarding

تنظیم تونل SSH در لینوکس ساده است، در این مقاله نحوه کانفیگ SSH port forwarding یا SSH tunneling در Linux را به طور کامل و قدم به قدم به شما عزیزان آموزش خواهیم داد، همراه داتیس نتورک باشید.

آموزش تنظیم تونل SSH در لینوکس و کانفیگ SSH tunneling یا SSH port forwarding

آموزش تنظیم تونل SSH در لینوکس

تونلینگ SSH که معمولاً به عنوان SSH port forwarding نیز شناخته می شود ، تکنیکی است برای هدایت ترافیک شبکه لوکال از طریق SSH رمزگذاری شده روی Remote Host ها.

مسیریابی ترافیک شبکه از طریق تونل های SSH سطح بالایی از رمزگذاری و امنیت داده ها را تضمین می کند ، به ویژه برای پروتکل های شبکه رمزگذاری نشده مانند FTP. این امر خصوصاً هنگامی که به شبکه های ناامن متصل هستید بسیار مفید است.

این آموزش نحوه راه اندازی تونل SSH و مسیریابی ایمن ترافیک شما از طریق تونل های ایمن را توضیح می دهد.

ما در مورد هر سه روش انتقال پورت SSH بحث خواهیم کرد:

  1. Local Port forwarding
  2. Remote Port Forwarding
  3. Dynamic Port forwarding

مراحل کانفیگ SSH tunneling به روس Local Port forwarding در لینوکس

این نوع Port forwarding به شما امکان می دهد تا یک پورت روی کامپیوتر یا دستگاه لوکال را به یک پورت خاص در یک ماشین ریموت هدایت کنید که سپس به آدرس مقصد ارسال می شود.

Port forwarding به دستگاه لوکال این امکان را می دهد تا بر روی یک پورت داده شده گوش داده و هر ترافیکی را به پورت خاص به پورت مشخص شده در سرور ریموت تونل کند.

هنگامی که سرور ریموت ترافیک را دریافت می کند ، به آدرس مقصد تعیین شده هدایت می شود.

برای ایجاد یک local port forward ، از فلگ -L برای دستور SSH استفاده می کنیم:

سینتکس عمومی به صورت زیر است:

-L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER

اگر LOCAL_IP را مشخص نکنید ، کلاینت لوکال SSH به طور خودکار به localhost متصل می شود.

همچنین باید پورتهای بزرگتر از 1024 را مشخص کنید زیرا فقط به کاربران روت محدود نمی شوند.

فرض کنید شما یک سرویس در حال اجرا روی دستگاه my.service در پورت 5000 دارید و فقط در access.machine دستگاه قابل دسترسی است.

در ادامه مقاله آموزش کانفیگ SSH tunneling یا تونل SSH برای لینوکس اگر می خواهید از طریق دستگاه لوکال خود به سرویس متصل شوید ، باید اتصال خود را به صورت زیر ارسال کنید:

ssh -L 5555:my.service:5000 user@access.machine

پس از اجرای دستور ، باید رمز عبور SSH را برای کاربر مشخص شده ارائه دهید.

برای سهولت استفاده ، می توانید با استفاده از کلیدهای SSH یک ورود بدون رمز عبور تنظیم کنید.

اکنون می توانید با استفاده از پورت مشخص شده (5555) که در آن access.machine به عنوان واسطه عمل می کند ، از طریق دستگاه لوکال خود به این سرویس دسترسی پیدا کنید.

127.0.0.1:5555

روش دوم Remote SSH Port Forwarding

Remote SSH Port Forwarding به شما این امکان را میدهد که از ماشین ریموت خود به کامپیوتر لوکال تان متصل شوید.

به صورت پیش فرض ssh اجازه remote port forwarding را نمیدهد.

شما میتوانید آنرا با استفاده از بخش GatewayPorts در تنظیمات اصلی sshd واقع در فایل کانفیگ /etc/ssh/sshd_config روی هاست ریموت خود فعال کنید.

فایل را باز کنید و آنرا با استفاده از ویرایشگر متنی مورد علاقه خود ویرایش کنید.

$ sudo vim /etc/ssh/sshd_config

به دنبال بخش مورد نظر بگردید و آنرا از کامنت خارج کنید و مقدار آنرا همانند زیر برابر با yes قرار دهید.

GatewayPorts yes

در ادامه کانفیگ تونل SSH در لینوکس تغییرات را ذخیره کنید و از آن خارج شوید. سپس به منظور اعمال تغییرات شما نیاز دارید که سرویس sshd را ریستارت کنید.

$ sudo systemctl restart sshd
or
$ sudo service sshd restart

سپس دستور زیر را برای فوروارد کردن پورت 5000 روی ماشین ریموت به پورت 3000 روی ماشین لوکال اجرا کنید.

$ ssh -f -N admin@server1.example.com -R 5000:localhost:3000

به محض اینکه شما این روش از tunneling را درک کنید شما میتوانید به آسانی و به شیوه ای امن یک سرور برنامه نویسی لوکال را پابلیش کنید مخصوصا اگر پشت NAT و Firewall باشد.
تانل های همانند Ngrok, pagekite, localtunnel و متدهای بیشمار دیگر همه به شیوه ای مشابه کار میکنند.

روش سوم تنظیم تونل SSH با Dynamic SSH Port Forwarding

این سومین روش از port forwarding میباشد که برای SSH tunneling یا همان تونل SSH در لینوکس استفاده می شود.

برخلاف port forward لوکال و ریموت که ارتباط با یک پورت مجزا را امکان پذیر می کردند این روش یک رنج کاملی از ارتباطات TCP را از طریق یک رنجی از پورت ها ممکن میسازد.

روش Dynamic Port Forwarding ماشین شما را به عنوان یک SOCKS proxy server که به صورت پیش فرض روی پورت 1080 در حال listen میباشد، تنظیم و تعریف میکند.

برای مبتدیان باید بگوییم که SOCKS یک پروتکل اینترنت است که نحوه اتصال یک کلاینت به یک سرور را از طریق یک سرور پراکسی (در اینجا SSH میباشد) تعریف میکند.

شما میتوانید Dynamic Port Forwarding را با آپشن -D فعال کنید.

دستور زیر یک پراکسی SOCKS را روی پورت 1080 آغاز میکند که به شما امکان اتصال به هاست ریموت را میدهد.

$ ssh -f -N -D 1080 admin@server1.example.com

از این به بعد شما میتوانید کاری کنید که اپلیکیشن های روی ماشین تان از این سرور SSH Proxy استفاده کنند،
تنها کافیست تنظیمات و کانفیگ آنها را طوری انجام دهید که از این سرور استفاده کنند.

دقت کنید که Socks Proxy بعد از اینکه session ssh بسته شود کار خود را متوقف خواهد کرد.

امیدواریم مقاله آموزش نحوه کانفیگ SSH tunneling در Linux مفید بوده باشد.

داتیس نتورک را در شبکه های اجتماعی خصوصا تلگرام و توییتر دنبال کنید.

مطالب مرتبط

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

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