راهنمای قدم به قدم برای تغییر پورت SSH و غیرفعال کردن دسترسی root

برای افزایش امنیت سرورهای لینوکسی، بخصوص آنهایی که در اینترنت قرار دارند، یکی از بهترین اقدامات تغییر پورت پیش‌فرض SSH از پورت 22 به یک پورت غیر استاندارد است تا با تعداد زیاد failed login attempt ها مواجه نشوید. علاوه بر این، دسترسی به کاربر root از راه SSH باید غیرفعال شود و تنها از طریق کاربران عادی با دسترسی‌های محدود وارد سرور شد. در این مقاله، تغییرات مورد نیاز را به طور دقیق توضیح خواهیم داد. 

1. تغییر پورت SSH به یک پورت غیر استاندارد

1.1. ویرایش فایل پیکربندی SSH

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

vi /etc/ssh/sshd_config

در این فایل، پورت 22022 را به فایل اضافه کنید و پورت 22 را از comment با حذف # از قبل از آن خارج کنید. این موضوع جهت احتیاط است زیرا در صورتی که دسترسی به ILO یا کنسول در سرور مجازی نداشته باشید و اشتباهی در حین کار رخ دهد، سرور شما از دسترس خارج خواهد شد. در صورتی که این دسترسی موجود است می توانید تنها پورت مدنظر خود را وارد کنید و در همین مرحله پورت 22 را حذف کنید.

Port 22022

Port 22

سپس فایل را ذخیره کرده و از آن خارج شوید.

1.2. ریستارت سرویس SSH

برای اعمال تغییرات، باید سرویس SSH را ریستارت کنید:

systemctl restart sshd

1.3. اضافه کردن پورت جدید به فایروال

حال باید پورت جدید 22022 را به فایروال سرور اضافه کنیم تا اجازه اتصال از طریق این پورت فراهم شود. برای این کار دستور زیر را وارد کنید:

firewall-cmd --permanent --add-port=22022/tcp
firewall-cmd --reload

1.4. بررسی وضعیت پورت جدید

برای بررسی اینکه پورت 22022 به درستی باز شده است، دستور زیر را وارد کنید:

ss -tuln | grep 22022

در ابتدا، ممکن است نتیجه‌ای نگیرید، بنابراین باید SELinux را تنظیم کنیم.


2. تنظیم SELinux برای پورت جدید

2.1. اضافه کردن پورت به SELinux

برای اینکه SELinux پورت جدید را مجاز کند، باید آن را به لیست پورت‌های مجاز برای SSH اضافه کنید. دستور زیر را وارد کنید:

semanage port -a -t ssh_port_t -p tcp 22022

2.2. ریستارت سرویس SSH

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

systemctl restart sshd

2.3. بررسی مجدد وضعیت پورت

حال دوباره دستور ss را برای بررسی وضعیت پورت جدید اجرا کنید:

ss -tuln | grep 22022

در این مرحله، شما باید خروجی مشابه زیر را مشاهده کنید که نشان می‌دهد پورت 22022 به درستی در حال گوش دادن است:

tcp   LISTEN 0      128          0.0.0.0:22022      0.0.0.0:*
tcp   LISTEN 0      128             [::]:22022         [::]:*

3. ایجاد کاربر جدید برای ورود به سرور

3.1. ساخت یک کاربر جدید

در این مرحله، باید یک کاربر جدید ایجاد کنیم که به جای کاربر root از آن استفاده شود. دستور زیر را وارد کنید:

useradd sshuser

سپس برای کاربر جدید پسورد تعیین کنید:

passwd sshuser

سیستم از شما خواهد خواست که پسورد جدید را وارد کنید. توجه داشته باشید که پسورد باید حداقل 8 کاراکتر باشد.

3.2. ویرایش فایل پیکربندی SSH برای غیرفعال کردن دسترسی root

در این مرحله، باید دسترسی root را از طریق SSH غیرفعال کنیم. برای این کار، دوباره فایل /etc/ssh/sshd_config را ویرایش کنید:

vi /etc/ssh/sshd_config

سپس خط زیر را پیدا کرده و به no تغییر دهید:

PermitRootLogin no

سپس فایل را ذخیره کرده و از آن خارج شوید.

3.3. ریستارت سرویس SSH

برای اعمال تغییرات، سرویس SSH را دوباره ریستارت کنید:

systemctl restart sshd

4. بررسی وضعیت تغییرات

4.1. بررسی پورت‌های در حال گوش دادن

برای اطمینان از اینکه پورت 22022 به درستی فعال شده است و پورت 22 دیگر فعال نیست، از دستور زیر استفاده کنید:

ss -tuln | grep 22

و تمام