آموزش تغییر پورت SSH

تغییر پورت SSH در سرور مجازی لینوکس (چرا و چگونه؟)

یکی از ایمن‌ترین روش‌ها برای جلوگیری از حملات امنیتی مانند حملات بروت فروس، تغییر پورت پیش‌فرض SSH (پورت 22) به یک پورت دلخواه است. در این مقاله گام‌‌به‌گام نحوه تغییر این پورت را توضیح داده‌ایم.

تغییر پورت ssh می‌تواند دلایل زیادی داشته باشد؛ ولی اگر بخواهیم خیلی کلی بگوییم، با انجام این کار، کمک بزرگی به افزایش امنیت سایت‌تان خواهید کرد!

در مقالۀ پیش رو، سیر تا پیاز چگونگی تغییر پورت را بررسی کرده‌ایم. از واکاوی دلایل این تصمیم مهم گرفته تا چگونگی اجرای آن (در سرورهای لینوکسی).

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

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

گواهی SSH به‌صورت پیش‌فرض از پورت ۲۲ استفاده می‌کند و همه این را می‌دانند! حتی هکرهایی که قصد نفوذ به سیستم را دارند و می‌خواهند از روش‌های مختلف به آن آسیب برسانند!

📌 اگر دنبال اطلاعات بیشتر هستید: برای آشنایی با پروتکل SSH، مقالۀ “SSH چیست؟ آشنایی با ۰ تا ۱۰۰ پروتکل SSH” را بخوانید.

وقتی همه بدانند SSH از چه پورتی استفاده می‌کند، نفس خطرات زیر را روی گردن خود احساس خواهید کرد:

  • سرورتان به یک طعمۀ چرب‌ونرم برای هکرها تبدیل خواهد شد؛
  • پیدا کردن سرور به‌راحتی خوردن آب است؛
  • سرور به‌شدت در برابر حملات بروت فورس آسیب‌پذیر خواهد شد؛
  • تشخیص ترافیک معتبر از ترافیک مخرب بسیار سخت و پیچیده خواهد شد.

بنابراین، تا جای ممکن نباید از این پورت برای SSH استفاده کنید. اگر به این توصیه گوش کرده و آن را عملی کنید، از ۲ مزیتی که در این زیر می‌بینید برخوردار خواهید شد:

  1. خارج شدن سرور از معرض دید هکرها: وقتی سرور به‌راحتی دیده نشود، دیگر طعمۀ خیلی جذابی برای هکرها نخواهد بود؛ ضمن اینکه به‌خاطر کاهش تلاش‌ها برای ورود به سرور، تشخیص ترافیک مخرب هم راحت‌تر می‌شود.
  2. افزایش چشمگیر امنیت سرور: با اضافه کردن یک لایۀ امنیتی و پیچیده کردن کار هکرها، دست بسیاری از آن‌ها کوتاه خواهد شد.

البته لازم است به این نکته هم اشاره کنیم که تغییر پورت سرور لزوماً قرار نیست معجزه کند! کلی کار دیگر را باید انجام دهید تا امنیت به بالاترین سطح ممکن برسد؛ تغییر پورت هم یکی از آن کارها است.

قبل از اینکه جلوتر برویم، بیایید در بخشی کوتاه پاسخ سؤالی که احتمالاً در ذهنتان شکل گرفته است را بدهیم.

📌💡بیشتر بدانید: منظور از پورت SSH چیست؟

منظور آدرسی در قالب یک عدد است که برای ایجاد دسترسی ایمن به دستگاهی از راه دور، مورد استفاده قرار می‌گیرد. همان‌طور که توضیح دادیم، پورت ۲۲ به‌صورت پیش‌فرض برای این پروتکل تعریف شده است و تغییر آن می‌تواند فایده‌های زیادی به‌همراه داشته باشد.

پورت ssh چیست

حالا بیایید آستین‌ها را بالا بزنیم و وارد عمل شویم. در بخش بعدی، نحوۀ تغییر پورت ssh در لینوکس را آموزش خواهیم داد.

مراحل تغییر پورت SSH در لینوکس

بیایید قدم به قدم پیش برویم؛ اول از همه، باید تکلیف برخی پیش‌نیازها را مشخص کنید.

هاست لینوکس سی‌پنل
مدیریت میزبانی در اختیار شماست! مناسب برای تمام CMS‌ها و سازگار با انواع زبان‌ها

شروع قیمت از
۹۹۰ هزار تومان (سالیانه)

خرید هاست لینوکس

گام صفر: پیش‌نیازهای تغییر پورت SSH

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

بعد از آن، باید مطمئن شوید که امکان دسترسی به سرور از طریق پروتکل SSH وجود دارد. در همین راستا، اگر از فایروال استفاده می‌کنید (توصیه می‌کنیم حتماً از این سازوکار امنیتی بهره ببرید)، باید امکان تغییر تنظیمات آن را داشته باشید.
به بیان ساده‌تر، باید بتوانید ترافیک را به سمت پورتی که قرار است انتخاب کنید، بفرستید و در این بین باید تنظیمات فایروال را تغییر دهید!

البته که باید چگونگی ویرایش فایل‌های لینوکس را هم بلد باشید تا باقی مراحل را انجام دهید و احتمالاً شمایی که در حال خواندن این مقاله هستید، این مهارت را دارید.

طبیعتاً قبل از اینکه وارد عمل شوید، باید معلوم کرده باشید که می‌خواهید چه پورتی را جایگزین پورت ۲۲ کنید. به‌علاوه، پیشنهاد می‌کنیم حتماً قبل از انجام هر کاری، از فایل کانفیگ SSH بکاپ بگیرید تا اگر احیاناً قسمتی از کار اشتباه پیش رفت، بتوانید شرایط را به حالت اولیه برگردانید.

با فرض اینکه پیش‌نیازها آماده شده‌اند، بیایید برویم سراغ اولین مرحلۀ عملی از این فرایند.

محتوای مرتبط: چگونه به سرور مجازی لینوکس و ویندوز وصل شویم؟

گام اول: اتصال به سرور

در اولین قدم، باید از طریق پروتکل SSH به سرور متصل شوید؛ چشم بسته غیب گفتیم! برای برقراری این اتصال، مطابق دستورالعمل زیر پیش بروید:

  • ترمینال یا یک کلاینت SSH را باز کنید؛
  • دستور زیر را برای وصل شدن به سرور خود در ترمینال بنویسید. حواستان باشد که به‌جای username، نام کاربری سرور و به‌جای server_ip، آدرس آیپی سرور خودتان را بنویسید:
    ssh username@server_ip
  • پسورد مرتبط با نام کاربری انتخابی را بنویسید. اگر برای امنیت بیشتر از کلیدهای SSH استفاده می‌کنید که چه بهتر.

حالا اتصال برقرار است و می‌توانیم برویم سراغ مرحلۀ بعدی.

محتوای مرتبط: Juice SSH چیست؟ (راهنمای اتصال به سرور با سیستم اندرویدی)

گام دوم: ویرایش فایل SSH برای تغییر پورت

بالاتر گفتیم که باید چگونگی ادیت فایل‌های لینوکس را بلد باشید؛ مهارتی که در این مرحله به آن نیاز خواهید داشت! البته که روال کلی فرایند خیلی سخت نیست. به‌طور خلاصه، باید کانفیگ (پیکربندی) SSH را دستکاری کنید تا امکان استفاده از یک پورت جدید فراهم شود.

پس سراغ فایل sshd_config بروید و مراحل زیر را به‌ترتیب انجام دهید:

  • از دستور زیر برای باز کردن فایل SSH deamon configuration در ویرایشگر متن nano استفاده کنید:
    sudo nano /etc/ssh/sshd_config
  • بعد از باز شدن محتویات فایل، آن را به پایین اسکرول کنید تا خطی که حاوی عبارت Port 22 # است را ببینید. این خط به‌صورت پیش‌فرض در فایل لحاظ شده و عدد ۲۲ هم نشان‌دهندۀ پورت پیش‌فرض پروتکل SSH است.
  • اول # را حذف کنید و بعد از آن، عدد ۲۲ را به عدد پورت دلخواه تغییر دهید؛ مثلاً ۶۱۱۸۹؛ یا هر عدد دیگری.

نحوه تغییر پورت ssh

  • بعد از انجام این کار، کلیدهای Ctrl و X را به‌صورت هم‌زمان فشار دهید؛ بعد Y و بعد Enter را بفشارید تا تغییرات ذخیره شوند.

در نهایت ویرایشگر nano را ببندید و بیاید برویم به مرحلۀ بعدی.

محتوای مرتبط: آموزش کانفیگ سرور مجازی لینوکس در ۶ قدم

گام سوم: انجام تنظیمات فایروال

همان‌طور که بالاتر هم گفتیم، بعد از تعویض پورت ssh، باید تنظیمات فایروال را مطابق تغییراتی که اعمال کرده‌اید عوض کنید تا ترافیک ورودی به پورت جدید هدایت شود. البته که اگر فایروال ندارید (تأکید می‌کنیم که حتماً داشته باشید)، می‌توانید از خواندن این بخش صرف‌نظر کنید.

ولی اگر امنیت را جدی گرفته‌اید و از این دیوارهای آتشین برای مقاومت حداکثری در برابر حملات سایبری بهره می‌برید، تغییر تنظیمات را با پشت سر گذاشتن مراحل زیر پیش ببرید:

  • دستور زیر را در ترمینال بنویسید تا امکان برقراری اتصال‌های جدید روی پورت جدید و از طریق TCP فراهم شود. توجه داشته باشید که به‌جای عدد ۶۱۱۸۹ در این دستور، باید عدد پورت جدید خود را وارد کنید:
    sudo ufw allow 61189/tcp
  • با استفاده از دستور زیر، UFW را دوباره راه بیندازید تا پیاده‌سازی تغییرات تکمیل شود:
    sudo ufw reload
  • در آخرین بخش از این گام، با نوشتن دستور زیر، وضعیت جدید ایجادشده را تأیید کنید:

    sudo ufw status

کار هنوز تمام نشده است و دو مرحلۀ دیگر هستند که باید آن‌ها را هم پشت‌سر بگذارید.

محتوای مرتبط: آموزش تغییر پسورد سرور مجازی (به ۳ روش)

گام چهارم: راه‌اندازی مجدد سرویس SSH

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

در سیستم‌های جدیدتر که بیشتر از systemd استفاده می‌کنند (مثلاً Ubunto، Debian و CentOS)، دستور زیر برای ری‌استارت کردن سرویس به کار می‌آید:

sudo systemctl restart sshd

ولی اگر سیستم قدیمی است و از SysVint استفاده می‌کند، باید دستور زیر را در ترمینال بنویسید تا SSH ری‌استارت شود:

sudo service ssh restart

بعد از ری‌استارت سرویس هم باید وضعیت جدید ایجادشده را تأیید کنید تا مطمئن شوید همه‌چیز به بهترین شکل ممکن پیش می‌رود:

sudo systemctl status sshd

و اما مرحلۀ آخر از آموزش تغییر پورت ssh.

محتوای مرتبط: پروتکل چیست؟ آشنایی با انواع Protocol (به زبان ساده)

گام پنجم: تست و بررسی پورت جدید SSH

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

بعد از انجام درست این مرحله، مطمئن می‌شوید که تغییرات به‌درستی اعمال شده‌اند و امکان دسترسی به سرور از طریق این پروتکل وجود دارد.

بررسی پورت SSH با ss یا netsat

اگر ss روی سیستمتان نصب شده است، دستور زیر را بنویسید تا در پاسخ آن، لیست اتصال‌های فعال را که از پورت جدید SSH استفاده می‌کنند، ببینید:

ss -tuln | grep [new_port_number]

خروجی احتمالاً چیزی مشابه تصویر زیر خواهد بود:

نحوه تغییر پورت ssh

اگر احیاناً ترجیح می‌دهید از netsat برای بررسی پورت استفاده کنید، باید دستور زیر را در ترمینال بنویسید:

netstat -tuln | grep [new_port_number]

در خروجی این دستور هم عدد پورت جدید را خواهید دید:

نحوه تغییر پورت ssh

اتصال به سرور از طریق پروتکل SSH و پورت جدید

در نهایت، سرراست‌ترین روش برای اینکه مطمئن شوید همه‌چیز به‌درستی انجام گرفته ، برقراری اتصال با استفاده از این پروتکل و پورت جدید تعریف‌شده برای آن است.

پس پنجرۀ ترمینال را باز کرده و دستور زیر را در آن بنویسید:

ssh -p new_port_number username@server_ip

نکته: به‌جای new-port-number ،username و server_ip، اطلاعات درست مربوط به سرور خودتان را بنویسید.

اگر اتصال برقرار شد، خیالتان راحت که کل فرایند درست پیش رفته و تغیر پورت ssh با موفقیت به پایان رسیده است.

با وجود اینکه این آموزش تغییر پورت ssh جامع است و برای انواع توزیع‌های لینوکس به کار می‌‌آید، اجازه دهید در دو بخش کوتاه، چگونگی اعمال تغییرات در دو دسته از توزیع‌های لینوکس را به‌صورت جداگانه بررسی کنیم.

محتوای مرتبط: سرور مجازی لینوکس چیست؟ انواع VPS لینوکس + مزایا

نحوه تغییر پورت SSH در توزیع CentOS/RHEL/Fedora

بیشتر توزیع‌های مبتنی‌بر RHEL، مثل CentOS و Fedora، از یک سازوکار امنیتی به‌ نام SELinux (مخفف Security-Enhanced Linux) بهره می‌برند که در کنار استحکامات دیگر، نقش یک فایروال را بازی می‌کنند.

بنابراین، جهت تغییر پورت ssh در سرور مجازی لینوکس مجهز به یکی از این توزیع‌ها، اول از همه باید ببینید آیا SELinux فعال است یا نه! دستور زیر برای این منظور به کارتان می‌آید:

sudo sestatus

پاسخ این دستور مشابه تصویر زیر است؛ اگر در خط اول آن دیدید که نوشته شده SELinux status: enabled، باید مطابق روالی که توضیح می‌دهیم پیش بروید؛ در غیر این‌صورت، یعنی اگر SELinux غیرفعال باشد، می‌توانید یک‌راست بروید به خط آخر:

نحوه تغییر پورت ssh

در صورت فعال بودن SELinux، سراغ پکیج semunage می‌رویم. اگر هم احیاناً SELinux غیر فعال بود، بهتر است مطابق این آموزش پیش بروید و آن را فعال کنید. دستور زیر را برای اضافه کردن پورت مد نظر خود در ترمینال بنویسید (مثلاً ۳۳۳۳):

sudo semanage port -a -t ssh_port_t -p tcp 3333

حالا باید برخی تغییرات را روی فایروال انجام دهید که دستور زیر کارتان را راه می‌اندازد:

sudo firewall-cmd --zone=public --add-port=3333/tcp --permanent

در آخر، فایروال را ری‌استارت کنید تا تغییرات اعمال شوند:

sudo firewall-cmd --reload

این از دستور تغییر پورت ssh در لینوکس (توزیع‌های CentOS/REHL/Fedora). بیایید برویم سراغ دستۀ بعدی.

نحوه تغییر پورت SSH در توزیع‌های Ubuntu/Debian/Kali

Ubunto و دیگر توزیع‌های مبتنی‌بر Debian، از فایروال UFW بهره می‌برند که به‌صورت پیش‌فرض روی این توزیع‌ها نصب شده است. برای تغییر پورت ssh روی چنین توزیع‌هایی و فعال‌سازی آن، نوشتن دستور زیر کفایت می‌کند:

sudo ufw allow 2222/tcp

به‌همین سادگی و راحتی!

اینجا آموزش به اتمام می‌رسد و هرآنچه که لازم بود در رابطه با این موضوع بدانید را یاد گرفتید؛ اما قبل از جمع‌بندی مقاله، بد نیست چند نکتۀ تکمیلی مهم را هم گوشزد کنیم.

محتوای مرتبط: تفاوت هاست لینوکس و ویندوز چیست؟ کدام بهتر است؟

نکات تکمیلی درباره تغییر پورت SSH

همان‌طور که در ابتدای مقاله گفتیم، تغییر پورت SSH مزایای چشمگیری را به‌همراه می‌آورد که گل سرسبد آن‌ها امنیت بیشتر است. برای اطمینان از اینکه همه‌چیز به بهترین شکل ممکن پیش می‌رود، نکاتی هستند که باید آن‌ها را رعایت کنید.

اول اینکه پورت جدید باید آزاد باشد؛ یعنی قبلاً به سرویس دیگری اختصاص داده نشده باشد! با اطمینان از این مسئله، خیالتان راحت است که احتمال وقوع اختلال‌های گاه‌وبیگاه به حداقل می‌رسد و خطر جدی‌ای سرور را تهدید نمی‌کند.

مشخصاً توصیه می‌کنیم سراغ پورتی بروید که خارج از محدودۀ پراستفادۀ (۱ – ۱۰۲۳) باشد. همچنین، بهتر است از پورت‌هایی که بیشتر آن‌ها قبلاً به سرویس‌های دیگر اختصاص داده‌ شده‌اند (۱۰۲۴ – ۴۹۱۵۱) هم استفاده نکنید. با این اوصاف، بهترین پورت‌ها را می‌توانید در بازۀ ۴۹۱۵۱ تا ۶۵۵۳۵ پیدا کنید.

علاوه‌بر این، جهت افزایش حداکثری ایمنی، پیشنهاد می‌کنیم سازوکارهای امنیتی تکمیلی را هم به کار بگیرید. مثلاً بالاتر گفتیم که بهتر است به‌جای کلمۀ عبور برای اتصال به اکانت خود از طریق این پروتکل، سراغ کلیدهای SSH بروید که خب خیلی ایمن‌تر هستند و یک لایۀ محافظتی بیشتر در برابر هکرها قرار می‌دهند.

این‌ هم از مهم‌ترین نکاتی که رعایت آن‌ها، باعث بهینه‌ شدن فرایند تعویض پورت ssh می‌شود. برویم سراغ جمع‌بندی.

برای حفاظت از سرور خود، پورت SSH را بلافاصله تغییر دهید

در این مقاله فهمیدیم که چرا تغییر پورت ssh ضرورت دارد و چطور می‌توان پورت اتصال این پروتکل در سرورهای مجازی لینوکس را عوض کرد.

مطابق معمول، سعی کردیم مقاله‌ای کامل و همه‌جانبه تقدیمتان کنیم تا تمام ابهاماتتان برطرف شود؛ ولی اگر احیاناً همچنان سؤال مرتبطی دارید، زیر همین مقاله برایمان کامنت بگذارید.

منابع: Hostinger | Cloudzy

نیکان حیدری

«نوشتن، قفل‌هایی را باز میکند که به ظاهر غیرقابل‌‌نفوذ هستند». این باور نیکان او را به سمت دنیای کلمات فرستاد و حالا چندسالی است که نوشته‌هایش قفل ذهن مخاطب‌های حوزه تکنولوژی را باز می‌کند.

نظر شما راجع به این محتوا چیست؟

دیدگاه ها

اولین نفری باشید که دیدگاه خود را ثبت می کنید

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

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