تغییر پورت ssh

Calendar

انتشار:

1404/08/09
Update Calendar

به روز رسانی:

1404/08/09

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

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

طبق آموزش اتصال به سرور از طریق ssh، از طریق SSH وارد سرور شوید. پورت پیش‌فرض SSH از طریق فایل تنظیماتی به نام sshd_config کنترل می‌شود. برای ویرایش این فایل دستور زیر را وارد کنید:

sudo nano /etc/ssh/sshd_config

در داخل فایل به دنبال خطی باشید که با Port شروع می‌شود. مقدار روبه‌روی آن عدد پورت فعلی (معمولاً ۲۲) است.

نمای فایل sshd_config در ویرایشگر nano

عدد ۲۲ را به عدد دلخواه خود، مثلاً ۲۲۲۲، تغییر دهید. اگر چنین خطی وجود نداشت، می‌توانید آن را در یکی از خطوط بالایی اضافه کنید. بهتر است عدد انتخابی بین ۱۰۲۴ تا ۶۵۵۳۵ باشد تا با پورت‌های سیستمی تداخلی نداشته باشد.

مرحله دوم: ذخیره تغییرات و خروج از ویرایشگر

بعد از تغییر پورت، باید فایل را ذخیره کنید تا تنظیمات جدید اعمال شود. اگر از ویرایشگر nano استفاده می‌کنید، کلیدهای Ctrl + O را فشار دهید تا فایل ذخیره شود، سپس با Ctrl + X از ویرایشگر خارج شوید. اگر از vi استفاده می‌کنید، ابتدا کلید Esc را بزنید و سپس بنویسید :wq  و Enter بزنید.

33 port

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

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

برای اوبونتو (با فایروال UFW)

در نسخه‌های جدید اوبونتو (مثل Ubuntu 22 یا 24)، ابزار پیش‌فرض فایروال UFW است و دستور firewall-cmd در آن وجود ندارد. برای باز کردن پورت جدید، از دستورهای زیر استفاده کنید:

sudo ufw allow 2222/tcp

برای اطمینان از فعال بودن فایروال، می‌توانید دستور زیر را اجرا کنید:

sudo ufw enable

سپس برای حذف پورت قدیمی (۲۲) بعد از تست موفقیت‌آمیز اتصال، از این دستور استفاده کنید:

sudo ufw delete allow 22/tcp

برای بررسی وضعیت قوانین فعلی نیز می‌توانید بنویسید:

sudo ufw status

تنظیم پورت جدید در UFW

برای CentOS / AlmaLinux / Rocky (با فایروال firewalld)

اگر از سیستم‌عامل‌هایی مثل CentOS یا AlmaLinux استفاده می‌کنید، ابزار firewalld فعال است و باید با دستورهای زیر پورت جدید را باز کنید:

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

در صورتی که از فایروال CSF استفاده می‌کنید، کافیست فایل تنظیمات /etc/csf/csf.conf را باز کرده و پورت جدید را به بخش TCP_IN اضافه کنید، سپس فایروال را با دستور زیر ریستارت نمایید:

csf -r

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

پس از باز کردن پورت جدید، باید سرویس SSH را ریستارت کنید تا تنظیمات جدید اعمال شود. برای این کار دستور زیر را وارد کنید:

sudo systemctl restart sshd

اگر از نسخه‌های قدیمی‌تر لینوکس استفاده می‌کنید، می‌توانید از دستور زیر استفاده کنید:

sudo service ssh restart

ری‌استارت سرویس SSH

مرحله پنجم: تست اتصال با پورت جدید

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

اگر اتصال برقرار نشد، ابتدا وضعیت سرویس را بررسی کنید:

sudo systemctl status sshd

مرحله ششم: حذف پورت قدیمی از فایروال

وقتی مطمئن شدید پورت جدید درست کار می‌کند، برای امنیت بیشتر پورت ۲۲ را ببندید. در firewalld این کار با دستورات زیر انجام می‌شود:

sudo firewall-cmd --permanent --remove-port=22/tcp
sudo firewall-cmd --reload

با انجام این مراحل، پورت SSH سرور با موفقیت تغییر کرده و دسترسی به سرور تنها از طریق پورت جدید امکان‌پذیر است. این تغییر ساده اما بسیار مؤثر، امنیت VPS شما را در برابر حملات خودکار و نفوذهای احتمالی تا حد زیادی افزایش می‌دهد.

آیا توانستیم چالش شما را حل کنیم؟