مخفف عبارت Secure Shell است و به یک پروتکل شبکه اشاره دارد که امکان دسترسی به سرور از راه دور را برای کاربران فراهم می‌کند. SSH همچنین برای امنیت بیشتر، ارتباط بین یک کلاینت و یک سرور خصوصی را رمزگذاری می‌کند. به‌صورت پیش‌فرض از پورت 22 برای اتصال به سرور مجازی لینوکس استفاده می‌شود؛ درحالی‌که استفاده از پورت 22 پروتکل کنترل انتقال (TCP) برای SSH با خطراتی همراه است. از جمله این خطرات می‌توانیم به آسیب‌پذیری سرور در برابر تهدیدهای خارجی مانند حملات Brute-force برای دسترسی به داده‌های حساس رمزگذاری‌شده اشاره کنیم. بنابراین، تغییر پورت SSH در سرور مجازی لینوکس یکی از بهترین راه‌ها برای ارتقای امنیت VPS است که در این مقاله قصد آموزش آن را داریم. با انجام گام به گام مراحل تغییر پورت SSH در لینوکس در سریع‌ترین زمان امنیت سرورتان را افزایش دهید.

پروتکل SSH چیست؟

پروتکل SSH (Secure Shell) یک شیوه ایمن برای دسترسی به فایل‌ها و برنامه‌های سرور مجازی از طریق رابط خط فرمان (Command Prompt- CMD) است. پروتکل SSH یک تونل رمزگذاری شده بین سیستم کاربر و سرور مجازی ایجاد می‌کند و اطلاعات به‌صورت رمزگذاری شده بین این دو منتقل می‌شود. این پروتکل شامل دو کلید عمومی و خصوصی است که برای رمزگذاری و رمزگشایی بین سرور مجازی و کلاینت استفاده می‌شود.

 

چرا باید پورت SSH را تغییر دهیم؟

پروتکل SSH به‌طور پیش‌فرض برای دسترسی به سرورهای لینوکسی از طریق شبکه اینترنت از پورت 22 استفاده می‌کند. اگرچه استفاده از این پورت به‌دلیل سادگی و سازگاری با انواع سرورها و سیستم‌عامل‌ها برای بسیاری از کاربران مناسب است، اما بیشتر از سایر پورت‌های SSH مورد حمله‌های نفوذی و تهدید‌های خارجی قرار می‌گیرد. به بیان دقیق‌تر، استفاده از پورت پیش‌فرض SSH می‌تواند سرور را در برابر حملات سایبری مانند حملات brute force آسیب‌پذیر کند. این نوع حملات با هدف دستیابی به اطلاعات کاربری و رمزهای عبور انجام می‌شود. ازهمین‌رو توصیه می‌شود که برای افزایش امنیت سرورهای خود، در اسرع وقت به تغییر پورت SSH بپردازید. تغییر پورت SSH در سرور مجازی یک لایه امنیتی به سرور شما اضافه می‌کند.

 

نحوه انتخاب بهترین پورت برای SSH

هنگام تغییر پورت SSH به این نکته توجه کنید که پورت‌های 1023-0 برای سرویس‌های مختلف رزرو شده‌اند و فقط می‌توانند با دسترسی root محدود شوند؛ به‌طور مثال، پورت 22 از قبل برای سرویس SSH و پروتکل TCP رزرو شده است. در ادامه فهرستی از رایج‌ترین سرویس‌ها و پورت‌های مرتبط با آن‌ها آماده کرده‌ایم:

پورت پروتکل سرویس
۲۰ TCP File Transfer Protocol (FTP) data
۲۱ TCP FTP Server
۲۲ TCP SSH
۲۳ TCP Telnet server
۲۵ TCP Simple Mail Transfer Protocol (SMTP)
۵۳ TCP/UDP Domain Name System (DNS)
۶۷/۶۸ UDP Dynamic Host Configuration Protocol (DHCP)
۶۹ UDP Trivial FTP (TFTP)
۸۰ TCP Hypertext Transfer Protocol (HTTP)
۱۱۰ TCP Post Office Protocol 3 (POP3)
۱۲۳ UDP Network Time Protocol (NTP)
۱۳۷/۱۳۸/۱۳۹ TCP/UDP NetBIOS
۱۴۳ TCP Internet Message Access Protocol (IMAP)
۱۶۱/۱۶۲ TCP/UDP Simple Network Management Protocol (SNMP)
۱۷۹ TCP Border Gateway Protocol (BGP)
۳۸۹ TCP/UDP Lightweight Directory Access Protocol (LDAP)
۴۴۳ TCP HTTP over SSL/TLS (HTTPS)
۶۳۶ TCP/UDP LDAP over SSL/TLS (LDAPS)
۹۸۹/۹۹۰ TCP FTP over SSL/TLS (FTPS)
جدول پورت‌های SSH برای سرویس‌های مختلف

البته ذکر این نکته ضروری است که استفاده از پورت‌های بالا مانعی ندارد؛ اما انجام این کار اتصال SSH شما را در معرض خطر تضاد شبکه (Network conflict) قرار می‌دهد. بنابراین توصیه می‌کنیم از بین پورت‌های مختلف از شماره‌های 1024 تا 65535 استفاده کنید.

آموزش تغییر پورت SSH پیش‌فرض

در این بخش قرار است در چهار گام آسان و سریع نحوه تغییر پورت SSH در سرور مجازی لینوکس را به شما آموزش دهیم.

گام اول: اتصال به سرور از طریق SSH

قبل از شروع به تغییر پورت SSH، لازم است با یک کاربر با دسترسی root به سرور خود وارد شوید. برای انجام این کار دستور زیر را در Terminal یا PuTTy اجرا کنید:

ssh username@0.0.0.0

به‌عنوان مثال:

ssh root@189.652.98.1

در مرحله بعد، از شما خواسته می‌شود تا رمز عبور یا کلیدهای SSH را تایپ کنید. بعد از انجام این کار، اتصال برقرار خواهد شد.

گام دوم: ویرایش پیکربندی‌های SSH

ابتدا، فایل پیکربندی SSH را با استفاده از ویرایشگر متنی باز کنید. سپس برای دسترسی به SSH daemon یا sshd دستور زیر را در command Prompt وارد کنید:

sudo nano /etc/ssh/sshd_config

با دستور بالا، فایل پیکربندی SSH باز خواهد شد. خطی که #Port 22 را می‌خواند را پیدا کرده و شماره و # را پاک کنید. سپس آن را با شماره پورت SSH جدیدی که قصد استفاده از آن را دارید، جایگزین کنید؛‌ مانند تصویر زیر:

شماره پورت SSH را به 1156 تغییر دهید:

در نهایت نیز تغییرات را ذخیره کنید.

نکته: اگر محتویات فایل sshd_config شما متفاوت از تصویر بالا به نظر می‌رسد، فقط کافی است یک خط Port جدید به آن اضافه کنید.

به عبارت دیگر، پورت انتخابی شما باید در فایروال سرور allow باشد. برای مثال، اگر می‌خواهید پورت SSH را به پورت 1156 تغییر دهید، خط زیر را به فایل پیکربندی اضافه کنید:

Port 1156

گام سوم: پیکربندی فایروال

تغییر پورت SSH در انواع توزیع های لینوکس روند مشابهی دارد؛ اما با توجه به نوع فایروال ممکن است این روند در سرورهای مختلف تفاوت کوچکی پیدا کند. ازهمین‌رو شما باید مطمئن شوید که پورت انتخابی جدید توسط فایروال مسدود نشده است. در ابتدای راه‌اندازی VPS جدید، همه پورت‌ها باید به‌طور پیش‌فرض باز باشند. برای این کار باید تنظیمات فایروال خود را به‌روزرسانی کنید تا اتصالات ورودی به پورت جدید امکان‌پذیر باشد. برای نمونه ما فایروال UFW را مثال می‌زنیم.

sudo ufw allow 1156/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 1156
netstat -tulpn | grep 1156

حالا می‌توانید با استفاده از دستور زیر برای ورود به SSH تلاش کنید:

ssh -p [port] user@server

برای مثال:

ssh -p 1156 root@0.0.0.0

نکته: با استفاده از یک پنجره Terminal جدید، اتصال SSH را تست کنید. تا زمانی که مطمئن نشده‌اید که راه‌اندازی جدید به‌خوبی کار می‌کند، از Root session قبلی خارج نشوید.

دسته بندی شده در:

برچسب ها:

, ,