SSH یا Secure Shell یکی از مهمترین ابزارها برای مدیریت سرورهای مجازی است. این پروتکل ارتباطی، امکان اتصال امن به سرور و اجرای دستورها را در دسترس قرار میدهد. بیشتر مدیران سرور برای کنترل، پیکربندی و رفع مشکلات از همین روش استفاده میکنند.
بهطور پیشفرض، SSH روی پورت 22 فعال است. این موضوع باعث میشود که مهاجمان و رباتهای خودکار بهراحتی این پورت را هدف حملات Brute-Force قرار دهند. بههمینخاطر، تغییر پورت SSH یکی از سادهترین راهها برای کاهش خطرات امنیتی است.
وقتی پورت پیشفرض تغییر کند، احتمال شناسایی و حمله به سرور کاهش مییابد. این کار بهخصوص برای کاربرانی که با خرید vps لینوکس زیرساخت پروژهها و وبسایتهایشان را راهاندازی میکنند اهمیت دارد. با تغییر یک تنظیم کوچک میتوان گام مهمی برای افزایش امنیت برداشت.
پیشنیازها و نکات مهم قبل از تغییر پورت SSH
برای تغییر پورت SSH بهتر است چند مرحلهی ساده را پیش از شروع رعایت کنید:
1. دسترسی کاربری
برای ویرایش فایل تنظیمات به کاربر Root یا حسابی با دسترسی Sudo نیاز دارید. بدون این سطح دسترسی تغییرات اعمال نمیشود.
2. پشتیبانگیری از فایل تنظیمات
قبل از هر تغییری، یک نسخهی پشتیبان از فایل sshd_config بگیرید. هنگام بروز خطا میتوانید بهراحتی تنظیمات را برگردانید.
3. آشنایی با دستورات لینوکس
لازم است بتوانید با ویرایشگرهایی مانند Nano یا Vim فایلها را باز کرده، تغییر دهید و ذخیره کنید.
4. برنامهریزی برای اتصال مجدد
پس از تغییر پورت، باید بتوانید با شماره پورت جدید به سرور وصل شوید. مطمین شوید اتصال فعلی باز بماند تا اگر مشکلی پیش آمد، دسترسی از بین نرود.
برای شروع مطمین و جلوگیری از مشکلات احتمالی، توصیه میشود از سرویسهای معتبر برای خرید سرور vps استفاده کنید. این سرویسها پشتیبانی و دسترسی پایدار را در اختیار کاربران میگذارند تا تغییرات امنیتی با اطمینان بیشتری انجام شود.
پروتکل SSH چیست؟
قبل از شناختن مراحل تغییر پورت، بهتر است بدانیم پروتکل ssh چیست و چرا اهمیت دارد. SSH یا Secure Shell پروتکلی است که ارتباط امن میان کاربر و سرور را برقرار میکند. همهی دادهها در این مسیر رمزنگاری میشوند تا هیچ فرد دیگری نتواند آنها را شنود کند. بههمینخاطر، SSH استاندارد اصلی برای مدیریت سرورها در دنیای لینوکس و وب است.
از راه SSH میتوانید به سرور وارد شوید، دستورهای سیستمی اجرا کنید و حتا فایلها را انتقال دهید. این پروتکل جایگزین امنی برای روشهای قدیمیتر مانند Telnet است که هیچگونه رمزنگاری نداشتند.
SSH پایهی بسیاری از کارهای مدیریتی روی سرور است. از نصب نرمافزارها گرفته تا پیکربندی سرویسها و مانیتورینگ، همه از همین راه انجام میشوند. به زبان ساده، بدون SSH مدیریت یک سرور مجازی کموبیش غیر ممکن خواهد بود.
مراحل تغییر پورت SSH در سرور مجازی
برای تغییر پورت SSH باید چهار مرحلهی اصلی را انجام دهید. هر مرحله نقش خودش را دارد و اگر بهترتیب پیش بروید، دسترسی شما به سرور قطع نمیشود.
1. دسترسی به فایل تنظیمات SSH) sshd_config)
اولین قدم، باز کردن فایل تنظیمات SSH است. این فایل تمام قوانین مربوط به شیوهی کار SSH را نگه میدارد.
مسیر فایل:
/etc/ssh/sshd_config
برای باز کردن:
sudo nano /etc/ssh/sshd_config
یا اگر vim نصب دارید:
sudo vim /etc/ssh/sshd_config
وقتی فایل باز شد، آمادهی اعمال تغییرات خواهید بود.
2. تغییر پورت در فایل sshd_config
حالا باید پورت پیشفرض 22 را تغییر دهید. در فایل دنبال خطی بگردید که نوشته باشد:
#Port 22
- علامت # یعنی این خط درحالحاضر غیرفعال است. آن را پاک کنید.
- عدد 22 را به پورت دلخواه تغییر دهید. برای مثال:
Port 2222
راهنمای انتخاب پورت مناسب
توصیه میشود موارد زیر را برای تعیین پورت جدید در نظر بگیرید:
- همیشه پورت بالای 1024 انتخاب کنید چراکه پورتهای پایینتر اغلب برای سرویسهای سیستمی رزرو شدهاند.
- پورتهایی مانند 21، 80 یا 443 را انتخاب نکنید چون سرویسهای دیگری از آنها استفاده میکنند.
- عددی انتخاب کنید که کمتر رایج باشد تا شانس حمله کاهش پیدا کند.
وقتی تغییر را ذخیره کردید، SSH دیگر روی 22 گوش نمیدهد بلکه منتظر پورت جدید میماند.
3. پیکربندی فایروال برای پورت جدید
اگر فایروال شما فقط پورت 22 را باز گذاشته باشد، بعد از تغییر دیگر به سرور وصل نمیشوید. پس باید پورت جدید را هم به لیست مجاز اضافه کنید.
در Ubuntu/Debian با UFW:
sudo ufw allow 2222/tcp
sudo ufw reload
در CentOS/RHEL با Firewalld:
sudo firewall-cmd –permanent –add-port=2222/tcp
sudo firewall-cmd –reload
به نکات زیر توجه داشته باشید:
- پورت جدید را اول باز کنید.
- بعد یک ترمینال جدید باز کنید و اتصال را تست کنید.
- اگر مطمین شدید اتصال برقرار است، آنگاه پورت 22 را ببندید.
رعایت این ترتیب خیلی مهم است؛ چون اگر زودتر 22 را ببندید، ممکن است هیچ راهی برای ورود به سرور نداشته باشید.
4. ریاستارت کردن سرویس SSH
تغییرات وقتی اعمال میشوند که سرویس SSH دوباره راهاندازی شود. برای این کار دستور زیر را بزنید:
sudo systemctl restart sshd
بعد از آن، از یک ترمینال جدید این دستور را تست کنید:
ssh -p 2222 user@SERVER_IP
تا وقتی مطمین نشدید اتصال روی پورت جدید درست کار میکند، ترمینال قبلی را نبندید. اگر مشکلی پیش بیاید، همان اتصال باز میتواند نجاتدهنده باشد.
تست و بررسی اتصال SSH به پورت جدید
بعد از تغییر پورت و ریاستارت سرویس، مهمترین کار این است که اطمینان حاصل کنید اتصال روی پورت جدید درست کار میکند.
1. باز نگه داشتن اتصال فعلی
ترمینالی که از راه پورت 22 باز کردهاید را نبندید. اگر مشکلی در پورت جدید وجود داشته باشد، همین اتصال میتواند شما را نجات دهد.
2. باز کردن یک ترمینال جدید
یک جلسهی جدید ترمینال باز کنید و با دستور زیر وارد سرور شوید:
ssh -p 2222 user@SERVER_IP
در این دستور:
2222 پورت جدیدی است که در فایل sshd_config تنظیم کردید.
- user نام کاربری شما روی سرور است.
- o SERVER_IP آدرس IP سرور مجازی شماست.
3. تایید موفقیت اتصال
اگر بدون خطا وصل شدید و خط فرمان سرور برایتان باز شد، یعنی پورت جدید درست کار میکند.
4. بستن پورت قدیمی (22)
حالا که مطمین شدید اتصال روی پورت جدید برقرار است، میتوانید بهطورکامل پورت 22 را در فایروال ببندید. این کار حملات Brute-Force روی پورت پیشفرض را در عمل بیاثر میکند.
نکات امنیتی پس از تغییر پورت SSH
تغییر پورت SSH یک قدم مهم است، ولی بهتنهایی کافی نیست. مهاجمان حرفهای همچنان میتوانند پورت جدید را پیدا کنند. برای همین بهتر است چند اقدام تکمیلی انجام دهید تا امنیت سرور شما بالاتر برود.
1. استفاده از کلید عمومی بهجای رمز عبور
بهجای ورود با رمز، احراز هویت را روی کلید عمومی/خصوصی تنظیم کنید. در این روش، فقط کاربری که کلید خصوصی معتبر دارد میتواند وارد شود. این کار کموبیش جلوی تمام حملات Brute-Force را میگیرد.
2. محدود کردن دسترسی براساس IP
اگر فقط خودتان یا تیمتان از سرور استفاده میکنید، دسترسی SSH را به چند IP مشخص محدود کنید. این کار موجب میشود حتا اگر کسی پورت جدید را پیدا کند، باز هم نتواند وارد شود.
3. محافظت در برابر حملات گسترده
علاوهبر Brute-Force، تهدیدهایی مانند حملات DDoS هم وجود دارد که میتوانند روی سرور شما اثر بگذارند. استفاده از ابزارهای امنیتی و سرویسهای ابری میتواند جلوی این نوع حملات را بگیرد.
4. توجه به دسترسپذیری بالا
امنیت فقط به معنی بستن راه نفوذ نیست. باید اطمینان داشته باشید سرور حتا در شرایط بحرانی هم در دسترس بماند. اگر برایتان مهم است، بهتر است با مفهوم High Availability آشنا شوید و زیرساخت خود را براساس آن طراحی کنید. برای آشنایی با این مفهوم میتوانید مقاله High Availability چیست را مطالعه کنید.
رفع مشکلات رایج در تغییر پورت SSH
گاهی پس از تغییر پورت، مشکلاتی پیش میآید که مسبب این است که نتوانید به سرور وصل شوید. در این بخش رایجترین خطاها و راهحلهای آنها را مرور میکنیم.
1. عدم اتصال به پورت جدید
اگر پس از تغییر پورت، هنگام اجرای دستور اتصال زیر به سرور خطا دریافت کردید:
ssh -p 2222 user@SERVER_IP
شاید یکی از این موارد رخ داده است:
- پورت جدید در فایروال باز نشده است. در این حالت، باید دوباره قوانین فایروال را بررسی و اصلاح کنید.
- سرویس SSH پس از تغییر ریاستارت نشده یا هنگام راهاندازی خطا داده است. در این حالت، میتوانید لاگها را با دستور زیر بررسی کنید:
sudo journalctl -u sshd
2. بستن زودهنگام پورت 22
بعضی کاربران بیدرنگ پورت 22 را میبندند و بعد میبینند به سرور دسترسی ندارند. راهحل این است که از کنسول مدیریتی (در پنل ارایهدهنده VPS) وارد شوید و دوباره پورت را در فایل تنظیمات باز کنید.
3. انتخاب پورتی که از قبل مشغول است
اگر یک سرویس دیگر از پورتی که انتخاب کردهاید استفاده میکند، سرویس SSH نمیتواند روی آن اجرا شود. برای اینکه مطمین شوید پورت خالی است، میتوانید با دستور زیر پورتهای فعال را بررسی کنید:
sudo ss -tln
پورت دیگری انتخاب کنید و دوباره فایل تنظیمات را ویرایش کنید.
4. بازگردانی به حالت پیشفرض
اگر هیچکدام از راهحلها جواب نداد، میتوانید فایل sshd_config را دوباره روی پورت 22 تنظیم کنید و سرویس SSH را ریاستارت کنید. این کار سادهترین راه برای بازگشت به شرایط اولیه است.
نتیجهگیری
تغییر پورت SSH یک اقدام کوچک ولی اثرگذار برای افزایش امنیت سرور مجازی است. این کار جلوی بسیاری از تلاشهای خودکار برای ورود غیرمجاز را میگیرد و ریسک حملات Brute-Force را کاهش میدهد. با این حال، نباید آن را تنها راهحل دانست.
امنیت پایدار زمانی بهدست میآید که در کنار تغییر پورت، از کلیدهای عمومی، محدودیتهای فایروال و سرویسهای حفاظتی نیز استفاده کنید. در نهایت، انتخاب یک زیرساخت ابری قابل اطمینان مانند سرویسهای آروانکلاد و استفاده از محصولات ابری کمک میکند با خیال راحت سرور خود را مدیریت کنید و بر توسعهی کسبوکار تمرکز داشته باشید.