SSH چیست؟
SSH مخفف کلمه انگلیسی Secure Shell ، پروتکلی است برای ارسال دستورات به یک کامپیوتر از طریق یک روش ارتباطی امن در یک شبکه نا امن. SSH از کریپتوگرافی برای احراز هویت و رمز کردن اتصالات بین دستگاه ها استفاده میکند. همچنین SSH قابلیت ایجاد تونل و همینطور پورت فورواردینگ ، یعنی امکان عبور پکت های دیتا از شبکه هایی که به صورت عادی اجازه عبور از آنها را ندارند. SSH معمولا برای کنترل سرور ها از دور ، مدیریت زیرساخت ها و همینطور ارسال فایل استفاده میشود. حال ما در این مقاله مراحل تغییر پورت SSH سرور لینوکس را به طور کامل همراه با تصویر گام به گام برایتان توضیح دادهایم.
مراحل تغییر پورت SSH لینوکس
برای تغییر پورت SSH سرور لینوکس ابتدا باید به سرور خود از طریق نرم افزار Putty یا CMD یا Terminal متصل شوید.
سپس دستور زیر را وارد کنید و پسورد خود را وارد کنید تا به کاربر روت تبدیل شوید.
sudo su
در ادامه با ابزار ویرایش متن دلخواه خود مثل nano یا vim فایل پیکربندی که در مسیر زیر قرار دارد را مانند تصویر باز کنید. در این آموزش برای سادگی از nano استفاده میکنیم.
nano /etc/ssh/sshd_config
با فایل پیکربندی مشابه تصویر زیر مواجه خواهید شد .
برای تغییر پورت پیشفرض سرور کافی است # قبل از کلمه Port را حذف کرده و مقدار پورت دلخواه خود رقمی بین 1 تا 65535 وارد کنید.
مهم : پورت های 0 تا 1023 پورت های سیستمی هستند و بهتر است از آن ها استفاده نکنید !
ما پورت دلخواه 2280 را انتخاب کردهایم. برای ثبت تغییرات کلید های Ctrl + S را فشار دهید تا تغییرات اعمال شود و با کلیدهای Ctrl + X از فایل پیکربندی خارج شوید.
حال لازم است تا اجازه دسترسی به پورت انتخابی را از فایروال تایید کنیم . برای این منظور دستوری که مشخص کردید را وارد کنید.
ufw allow 2280/tcp
بعد از باز شدن پورت مربوطه در فایروال نوبت به آن رسیده که سرویس SSH را ریستارت کنید. دستور
systemctl restart sshd
را وارد نمایید.
سپس جهت کسب اطمینان از تغییر پورت سرویس ssh میتوانید دستور
netstat -tulpn
را وارد کنید و پورتی که سرویس ssh به آن گوش میدهد را چک کنید.
کاربرد های SSH
از نظر فنی ، ssh میتواند هر گونه دیتا دلخواهی را بر بستر شبکه منتقل کند و تونل مبتنی بر SSH میتواند برای اهداف گوناگونی ایجاد شود.
- مدیریت سرور ها ، زیرساخت و کامپیوتر های کارمندان از راه دور
- ارسال فایل ها بصورت امن ( ssh از پروتکل هایی که رمزنگاری نمیشوند مانند FTP امن تر است )
- دسترسی به سرویس های ابری بدون نیاز به نمایان کردن پورت های ماشین محلی
- اتصال از راه دور به سرویس های موجود در شبکه های خصوصی
- دور زدن محدودیت های فایروال
پورت چیست ؟
یک نقطه مجازی است که اتصالات اینترنتی در آنها شروع و پایان مییابد. پورت ها در سطح نرم افزار تعریف میشوند و به وسیله سیستم عامل کامپیوتر مدیریت میشوند. هر پورت با یک پروسه یا سرویس مرتبط است. پورت ها به کامپیوتر ها اجازه میدهند که به سادگی انواع مختلف ترافیک را از یکدیگر تشخیص دهند. برای مثال ایمیل ها به پورت دیگری نسبت به صفحات وب میروند درحالی که هردوی آنها از طریق یک اتصال اینترنت توسط کامپیوتر دریافت میشوند.
پورت های سرویس های مختلف کدامند
هر دستگاه کامپیوتر 65535 پورت دارد در حالی که همه این پورت ها به صورت معمول استفاده نمیشوند. تعدادی از پورت هایی که بیشتر استفاده میشوند همراه با پروتکل مربوط به آن ها در زیر آمده است.
پورت 20 و 21 : پروتکل انتقال فایل (FTP)
پورت 22 : پروتکل شل امن (SSH)
پورت 25 : پروتکل انتقال ایمیل ساده (SMTP)
پورت 53 : سیستم نام دامنه (DNS) ، یک فرایند ضروری برای اینترنت مدرن است که دامنه را به آدرس آیپی تبدیل میکند و دیگر کاربران برای اتصال به یک سرور نیاز به حفظ کردن یک آدرس آیپی طولانی را ندارند .
پورت 80 : پروتکل انتقال ابرمتن (HTTP) ، پروتکلی است که فضای وب در اینترنت به وسیله آن کار میکند.
پورت 123: پروتکل زمان بر بستر شبکه (NTP) ، باعث میشود که زمان در همه ی کامپیوتر ها با یکدیگر سنکرون شود ، فرایندی که برای رمزنگاری ضروری است
پورت 179: پروتکل درگاه خارجی (BGP). پروتکلی است که لازمه ایجاد مسیر های موثر بین شبکه های بزرگی که اینترنت را تشکیل میدهند ، است . به این شبکه های بزرگ اصطلاحا سیستم خودمختار (Autonomous System) نیز میگوییند.
پورت 443 : پروتکل انتقال ابرمتن امن (HTTPS) . همان پروتکل HTTP اما به وسیله SSL/TLS امن و رمزنگاری شده است.
پورت 587 : پروتکل SMTP امن که از رمزنگاری استفاده میکند.
پورت 3389 : پروتکل دسکتاپ از راه دور (RDP) . به کاربران توانایی اتصال به کامپیوتر های خود از راه دور
را میدهد.
چرا باید پورت پیشفرض را تغییر داد ؟
به دلیل مسائل امنیتی بهتر است که پورت پیشفرض سرویس هایی همچون RDP و یا SSH را که به کاربران اجازه دسترسی به سرور ها را میدهند ، تغییر دهید. چرا که ممکن است قربانی حمله های بروت فورس کاربران مخرب و بات نت ها شوید.
جمع بندی
برای اتصال به سرور ها از راه دور پروتکل های متفاوتی به وجود آمد مانند VNC RDP Telnet SSH و … . این پروتکل ها دروازه ورود و دسترسی به تمامی منابع و اطلاعات موجود در سرور ها هستند و حفظ امنیت این دروازه ها اهمیت بالایی برخوردار است. با تغییر پورت SSH سرور لینوکس به پورتی غیر قابل حدس قدمی در این سو خواهید گذاشت.
سوالات متداول
Telnet چیست؟ تلنت پروتکل قدیمی تری نسبت به ssh است که برای اتصال به خط فرمان سرور ها در گذشته استفاده میشد.
تفاوت SSH و Telnet چیست؟ هر دو پروتکل برای اتصال به سرور ها از راه دور استفاده میشوند ولی تلنت برای برقراری ارتباط با سرور مقصد از هیچ رمزنگاری استفاده نمیکند و بسته های دیتا شما برای هر دستگاهی که به لینک ارتباطی شما متصل باشد ، قابل خواندن است ! بر خلاف آن SSH از رمزنگاری غیر متقارن برای احراز هویت سرور و کلاینت استفاده میکند و در صورت تایید سپس از یک رمز متقارن برای رمزنگاری ارتباط استفاده میکند.
RDP و SSH چه تفاوتی دارند؟ SSH برای اتصال به شل یک سرور است و به شما دسترسی به خط فرمان سرور مقصد را میدهد در حالی که RDP برای اتصال به دسکتاپ سرور مقصد استفاده میشود و شما به تمامی عملکرد های یک دسکتاپ مانند دسترسی به برنامه مدیریت فایل ، خط فرمان ، پرینتر و … را خواهید داشت.