SSH مخفف عبارت Secure Shell است و به یک پروتکل شبکه اشاره دارد که امکان دسترسی به سرور از راه دور را برای کاربران فراهم میکند. SSH همچنین برای امنیت بیشتر، ارتباط بین یک کلاینت و یک سرور خصوصی را رمزگذاری میکند. بهصورت پیشفرض از پورت 22 برای اتصال به سرور مجازی لینوکس استفاده میشود؛ درحالیکه استفاده از پورت 22 پروتکل کنترل انتقال (TCP) برای SSH با خطراتی همراه است. از جمله این خطرات میتوانیم به آسیبپذیری سرور در برابر تهدیدهای خارجی مانند حملات Brute-force برای دسترسی به دادههای حساس رمزگذاریشده اشاره کنیم. بنابراین، تغییر پورت SSH در سرور مجازی لینوکس یکی از بهترین راهها برای ارتقای امنیت VPS است که در این مقاله قصد آموزش آن را داریم. با انجام گام به گام مراحل تغییر پورت SSH در لینوکس در سریعترین زمان امنیت سرورتان را افزایش دهید.
پروتکل SSH چیست؟
پروتکل SSH (Secure Shell) یک شیوه ایمن برای دسترسی به فایلها و برنامههای سرور مجازی از طریق رابط خط فرمان (Command Prompt- CMD) است. پروتکل SSH یک تونل رمزگذاری شده بین سیستم کاربر و سرور مجازی ایجاد میکند و اطلاعات بهصورت رمزگذاری شده بین این دو منتقل میشود. این پروتکل شامل دو کلید عمومی و خصوصی است که برای رمزگذاری و رمزگشایی بین سرور مجازی و کلاینت استفاده میشود.
اگر برای آشنایی با این پروتکل به اطلاعات بیشتری نیاز دارید، پیشنهاد میکنیم مقاله پروتکل SSH از ابر دراک را مطالعه کنید.
چرا باید پورت SSH را تغییر دهیم؟
پروتکل SSH بهطور پیشفرض برای دسترسی به سرورهای لینوکسی از طریق شبکه اینترنت از پورت 22 استفاده میکند. اگرچه استفاده از این پورت بهدلیل سادگی و سازگاری با انواع سرورها و سیستمعاملها برای بسیاری از کاربران مناسب است، اما بیشتر از سایر پورتهای SSH مورد حملههای نفوذی و تهدیدهای خارجی قرار میگیرد. به بیان دقیقتر، استفاده از پورت پیشفرض SSH میتواند سرور را در برابر حملات سایبری مانند حملات brute force آسیبپذیر کند. این نوع حملات با هدف دستیابی به اطلاعات کاربری و رمزهای عبور انجام میشود. ازهمینرو توصیه میشود که برای افزایش امنیت سرورهای خود، در اسرع وقت به تغییر پورت SSH بپردازید. تغییر پورت SSH در سرور مجازی یک لایه امنیتی به سرور شما اضافه میکند. برای آشنایی بیشتر با VPS مقاله سرور مجازی چیست را مطالعه کنید.
بـــازی کنید و برنـــده شـــــوید!
نحوه انتخاب بهترین پورت برای SSH
هنگام تغییر پورت SSH به این نکته توجه کنید که پورتهای 1023-0 برای سرویسهای مختلف رزرو شدهاند و فقط میتوانند با دسترسی root محدود شوند؛ بهطور مثال، پورت 22 از قبل برای سرویس SSH و پروتکل TCP رزرو شده است. در ادامه فهرستی از رایجترین سرویسها و پورتهای مرتبط با آنها آماده کردهایم:
پورت | پروتکل | سرویس |
20 | TCP | File Transfer Protocol (FTP) data |
21 | TCP | FTP Server |
22 | TCP | SSH |
23 | TCP | Telnet server |
25 | TCP | Simple Mail Transfer Protocol (SMTP) |
53 | TCP/UDP | Domain Name System (DNS) |
67/68 | UDP | Dynamic Host Configuration Protocol (DHCP) |
69 | UDP | Trivial FTP (TFTP) |
80 | TCP | Hypertext Transfer Protocol (HTTP) |
110 | TCP | Post Office Protocol 3 (POP3) |
123 | UDP | Network Time Protocol (NTP) |
137/138/139 | TCP/UDP | NetBIOS |
143 | TCP | Internet Message Access Protocol (IMAP) |
161/162 | TCP/UDP | Simple Network Management Protocol (SNMP) |
179 | TCP | Border Gateway Protocol (BGP) |
389 | TCP/UDP | Lightweight Directory Access Protocol (LDAP) |
443 | TCP | HTTP over SSL/TLS (HTTPS) |
636 | TCP/UDP | LDAP over SSL/TLS (LDAPS) |
989/990 | TCP | FTP over SSL/TLS (FTPS) |
البته ذکر این نکته ضروری است که استفاده از پورتهای بالا مانعی ندارد؛ اما انجام این کار اتصال SSH شما را در معرض خطر تضاد شبکه (Network conflict) قرار میدهد. بنابراین توصیه میکنیم از بین پورتهای مختلف از شمارههای 1024 تا 65535 استفاده کنید.
آموزش تغییر پورت SSH پیشفرض
در این بخش قرار است در چهار گام آسان و سریع نحوه تغییر پورت SSH در سرور مجازی لینوکس را به شما آموزش دهیم.
گام اول: اتصال به سرور از طریق SSH
قبل از شروع به تغییر پورت SSH، لازم است با یک کاربر با دسترسی root به سرور خود وارد شوید. برای انجام این کار دستور زیر را در Terminal یا PuTTy اجرا کنید:
ssh username@0.0.0.0
بهعنوان مثال:
ssh root@187.234.56.1
در مرحله بعد، از شما خواسته میشود تا رمز عبور یا کلیدهای SSH را تایپ کنید. بعد از انجام این کار، اتصال برقرار خواهد شد.
گام دوم: ویرایش پیکربندیهای SSH
ابتدا، فایل پیکربندی SSH را با استفاده از ویرایشگر متنی باز کنید. سپس برای دسترسی به SSH daemon یا sshd دستور زیر را در command Prompt وارد کنید:
sudo nano /etc/ssh/sshd_config
با دستور بالا، فایل پیکربندی SSH باز خواهد شد. خطی که #Port 22 را میخواند را پیدا کرده و شماره و # را پاک کنید. سپس آن را با شماره پورت SSH جدیدی که قصد استفاده از آن را دارید، جایگزین کنید؛ مانند تصویر زیر:
شماره پورت SSH را به 1026 تغییر دهید:
در نهایت نیز تغییرات را ذخیره کنید.
نکته: اگر محتویات فایل sshd_config شما متفاوت از تصویر بالا به نظر میرسد، فقط کافی است یک خط Port جدید به آن اضافه کنید.
به عبارت دیگر، پورت انتخابی شما باید در فایروال سرور allow باشد. برای مثال، اگر میخواهید پورت SSH را به پورت 1026 تغییر دهید، خط زیر را به فایل پیکربندی اضافه کنید:
Port 1026
گام سوم: پیکربندی فایروال
تغییر پورت SSH در انواع توزیع های لینوکس روند مشابهی دارد؛ اما با توجه به نوع فایروال ممکن است این روند در سرورهای مختلف تفاوت کوچکی پیدا کند. ازهمینرو شما باید مطمئن شوید که پورت انتخابی جدید توسط فایروال مسدود نشده است. در ابتدای راهاندازی VPS جدید، همه پورتها باید بهطور پیشفرض باز باشند. برای این کار باید تنظیمات فایروال خود را بهروزرسانی کنید تا اتصالات ورودی به پورت جدید امکانپذیر باشد. برای نمونه ما فایروال UFW را مثال میزنیم.
sudo ufw allow 1026/tcp
با این خط کد به فایروال دستور داده میشود که پورت انتخابی را برای سرویس SSH و پروتکل TCP باز کند. سپس با استفاده از دستورهای زیر متناسب با توزیع لینوکس خود، سرویس SSH را ریاستارت کنید:
- دبیان و اوبونتو
sudo service ssh restart
- دبیان و اوبونتو با systemd
sudo systemctl restart ssh
- سنتاواس و فدورا
sudo service sshd restart
- سنتاواس و فدورا با systems
sudo systemctl restart sshd
گام چهارم: تست پورت پیشفرض جدید
برای اطمینان از باز بودن پورت جدید SSH، یکی از فرمانهای ss یا netstat را اجرا کنید:
ss -tulpn | grep 1026
netstat -tulpn | grep 1026
حالا میتوانید با استفاده از دستور زیر برای ورود به SSH تلاش کنید:
ssh -p [port] user@server
برای مثال:
ssh -p 1026 root@0.0.0.0
نکته: با استفاده از یک پنجره Terminal جدید، اتصال SSH را تست کنید. تا زمانی که مطمئن نشدهاید که راهاندازی جدید بهخوبی کار میکند، از Root session قبلی خارج نشوید.
ارتقای امنیت سرور مجازی با روشهای مختلف
استفاده از پورت SSH 22 شما را به یکی از آسانترین هدفهای هکرها تبدیل میکند؛ زیرا آنها اغلب به دنبال پورتهای باز هستند که بتوانند دادههای حساس را رهگیری و استخراج کنند. ازهمینرو تغییر پورت SSH یکی از آسانترین و مهمترین کارها برای ارتقای امنیت سرور لینوکس است. این کار را میتوانید از طریق ویرایش فایل پیکربندی SSH انجام دهید.
با توجه به اینکه پورت SSH بهعنوان رابط کاربری اصلی برای دسترسی به سرور مجازی و سرور ابری استفاده میشود، اهمیت آن در امنیت سرور بسیار مهم است. در نتیجه، پیشنهاد میشود پورت SSH را به پورت دیگری تغییر دهید و از امکانات امنیتی دیگر نیز برای حفاظت از سرور مجازی خود استفاده کنید. پیشنهاد میکنیم از ابزارهایی مانند nmap (Network Mapper) برای بررسی پورتهای باز در سرور استفاده کنید تا از پیکربندی درست پورت SSH جدید مطمئن شوید.
اگرچه تغییر پورت SSH میتواند به افزایش امنیت سرور مجازی شما کمک کند، اما باید توجه داشت که این روش بهتنهایی کافی نیست و باید از سایر روشها نیز بهره بگیرید. بهعنوان مثال، استفاده از فایروال برای محدود کردن دسترسی به پورت SSH، استفاده از کلیدهای عمومی و خصوصی برای ورود به سرور و تنظیمات پیشرفته دیگر در فایل پیکربندی SSH نیز از راههای افزایش امنیت VPS هستند. پیشنهاد میکنیم برای آشنایی با این روشها، مقاله افزایش امنیت سرور مجازی را مطالعه کنید. در این مقاله 15 راهکار عالی و کاربردی برای بهبود امنیت توضیح داده شده است.
منبع: Hostinger