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

4.6/5 - (9 امتیاز)

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

برای آن که از دست حملات Brute Force و مورد هدف حملات کرک کردن رمز عبور روت باشید، باید پورت SSH خودتان را تغییر دهید و با این کار امنیت خودتان را افزایش دهید.

استفاده از یک پورت به عنوان یک درگاه اتصال از لازمه های اتصال به SSH است. در سرورهای لینوکسی معمولا از پورت 22 استفاده می شود که به صورت پیش فرض در سرورهای لینوکسی فعال است؛ اما موضوعی که وجود دارد، این است که این پورت تحت حملات زیادی قرار می گیرد که نوع این حملات بیشتر از نوع Brute Force است که هدف حمله برای کرک کردن رمز عبور root سرور است.

به صورت ساده اگر بخواهیم بگوییم، فردی که از آن به عنوان مهاجم یاد می کنیم، با استفاده از IP های تصادفی که به اینترنت اتصال دارند، با استفاده کردن از یوزرنیم root و پورت 22، رمز های مختلفی را تست می کند تا بتواند رمز سرور را کرک کند.

شما به کمک یک فایروال می توانید تلاش برای اتصال را پس از 3 بار شکست، مسدود کنید؛ اما این به معنی این نیست که این حملات صورت نمی گیرد، بلکه منابع شبکه ای شما برای حملات درگیر می شود و حتی ممکن است از این روش برای حملات شبکه ای استفاده شود.

این نوع حملات عملکردشان به صورتی است که با اتصال های مکررشان به شبکه، سرور شما را درگیر می کنند و سرور با کمبود منابع مواجه می شود که به این حملات DDoS نیز گفته می شود.

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

گام به گام تغییر پورت SSH در سرور مجازی لینوکس

پورت SSH در قسمت فایل sshd_config تعریف شده است؛ مسیر این فایل در /etc/ssh/sshd_config قرار گرفته است.

برای تغییر دادن SSH باید ابتدا برنامه ترمینال را باز کنید و سپس به کمک SSH به سرور خودتان متصل شوید.

با ویرایش فایل sshd اقدام به تنظیم گزینه پورت (port) کنید، سپس فایل را ذخیره سازی کنید.

پس از آن که مسیر فایل را پیدا کردید، باید فایل را ویرایش کنید و گزینه پورت را تنظیم کنید که از طریق دستور زیر این کار ممکن است:

sudo nano /etc/ssh/sshd_config

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

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

Port 22
#Port 22

رایج ترین پورتی که به جای پورت 22 استفاده می شود، پورت 2222 است که برای تنظیم پورت بر روی 2222، می توانید به شرح زیر آن را وارد کنید:

«Port 2222»

البته باید این را در نظر داشته باشید از آن جایی که پورت اتصال به دایرکت ادمین نیز 2222 است، ممکن است در برخی از فایروال ها ایجاد مشکل می کند، پس بهتر است تا پورت دیگری را انتخاب نمائید.

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

شما می توانید پس از انجام دادن این مرحله، تغییرات اعمال شده را در فایل مربوطه ذخیره کنید و فایل را ببندید.

 

نکته: پورت های 0 تا 1023 در سیستم برای خدمات متنوعی، محافظت شده است و شما قادر به استفاده از این پورت ها نخواهید بود. برای مثال پورت 80 برای http، پورت 443 برای https و … است  و شما باید از بین 1024 تا 65535 انتخاب کنید❗

نکته بسیار مهم: در زمان تغییر پورت باید به یک نکته مهم توجه کنید، آن هم این است که اگر selinux را به صورت موقت خاموش نکنید و بعد سرویس SSH را ریستارت کنیم، دسترسی شما برای همیشه از طریق SSH برای همیشه قطع خواهد شد❗

به منظور خاموش کردن Selinux میتوانید از طریق دستور زیر اقدام نمائید:

nano /etc/selinux/config

 

کاربران selinux بخوانند:

برای تغییر دادن پورت به 2222 باید دستور زیر را تایپ کنید:

# semanage port -a -t ssh_port_t -p tcp 2222

تنظیمات فایروال

پس از طی کردن مراحل بالا کاری که باید انجام دهید، این است که پذیرش درخواست ها را از پورت SSH 2222 در سرور مجازی لینوکس خودتان به روز رسانی کنید؛ اگر شما از UFW در سرور مجازی لینوکس ابونتو و دبیان استفاده می کنید، استفاده از دستور زیر می تواند به شما کمک کند:

$ sudo ufw allow 2222/tcp

اما در زمان اجرای دستور در نظر داشته باشید که اگر از دسترسی به غیر از دسترسی روت استفاده می کنید، از دستور sudo استفاده کنید، اما اگر از دسترسی روت استفاده می کنید نیاز به وارد کردن دستور sudo نیست؛ ساختار مرتبط به iptables به شکل زیر است:

sudo /sbin/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 2222 -j ACCEPT

اگر از سیستم عامل های FreeBSD / OpenBSD / NetBSD Unix استفاده می کنید، ساختار فایروال pf در pf.conf به شکل زیر است:

pass log on $ext_if proto tcp to any port 2222 keep state

برای آن که پورت جدید را باز کنید، دستورات زیر را می توانید به کمک فایروال بر روی توزیع های لینوکسی Fedora/CentOS/RHEL/Oracle اجرا کنید:

$ sudo firewall-cmd –permanent –zone=public –add-port=2222/tcp
$ sudo firewall-cmd –reload

فراموش نکنید که حتما تنظیمات فایروال خودتان را آپدیت کنید؛ در غیر این صورت دستورات اجرا شده می توانند دسترسی SSH شما را غیرفعال کنند.

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

 

پس از تمامی این ها باید سرویس sshd خودتان را مجدد راه اندازی کنید، برای راه اندازی مجدد sshd باید از دستور زیر در توزیع های مختلف لینوکس مانند CentOS/RHEL/Fedora استفاده کنید:

$ sudo service sshd restart

اگر از FreeBSD Unix استفاده می کنید، باید دستور زیر را تایپ کنید:

$ sudo service sshd restart

دقت داشته باشید که پورت TCP 2222 باز شده است و برای این کار باید از دستور netstat یا دستور ss استفاده کنید.

ss -tulpn | grep 2222
netstat -tulpn | grep 2222

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

ssh -p {port} user@server
sftp -P {port} openssh-server
scp -P {port} source target
scp -P {port} /path/to/foo user@server:/dest/

سخن آخر

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

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

آدرس ایمیل خود را را با خیال راحت وارد کنید، چون نمایش داده نخواهد شد