منو سایت

  • خانه
  • وبلاگ
  • چگونه پورت SSH را در CentOS تغییر دهیم؟ پیکربندی SSH در CentOS

چگونه پورت SSH را در CentOS تغییر دهیم؟ پیکربندی SSH در CentOS

 تاریخ انتشار :
/
  وبلاگ
چگونه پورت SSH را در CentOS تغییر دهیم؟ پیکربندی SSH در CentOS

Secure Shell Protocol یا به اختصار SSH یکی از پروتکل های رمزنگاری برای عملیات ایمن در شبکه ای است که ممکن است ناامن باشد. در این مقاله وبلاگ پارس پک، نحوه پیکربندی SSH برای استفاده از پورت های مختلف در CentOS 7 را به شما آموزش می دهیم. پس تا پایان مقاله با ما همراه باشید.

پورت 22 پیش فرض و نکاتی در مورد تغییر آن

اگرچه پیکربندی SSH برای گوش دادن در پورتی غیر از درگاه پیش‌فرض 22 ممکن است از منظر امنیتی سودمند نباشد، اما مزایای خود را دارد. دو نمونه از مزایای استفاده از پورت های غیر از 22 عبارتند از:

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

پورت ssh را به سنتوس تغییر دهید

نحوه تغییر پورت SSH در CentOS

نحوه پیکربندی SSH برای استفاده از پورت های مختلف در CentOS 7

برای پیکربندی SSH در پورتی غیر از پورت 22، مراحل زیر را دنبال کنید:

1. وارد سرور خود شوید و فایل پیکربندی سرور OpenSSH را از /etc/ssh/sshd_config برای ویرایش باز کنید. برای این منظور می توانید از دستور زیر استفاده کنید:

vim /etc/ssh/sshd_config

2. خط مربوط به پورت 22 را از حالت کامنت خارج کنید و آن را روی پورت مورد نظر خود تنظیم کنید. با این حال، به عنوان یک اقدام امنیتی، توصیه می کنیم sshd را برای گوش دادن به پورت پیش فرض و پورت هدف با داشتن دو خط کد زیر در فایل پیکربندی خود پیکربندی کنید. هنگامی که مطمئن شدید پورت جدید به درستی کار می کند، می توانید تنظیمات پورت پیش فرض را پاک کنید:

Port 22
Port 3456 <where 3456 is your preferred port>

نکته اول: مطمئن شوید که هیچ سرویس دیگری از پورت تازه راه اندازی شده استفاده نمی کند.

نکته دوم: با توجه به تغییرات انجام شده پورت های قبلی را تعویض کنید.

3. اگر فایروال فعال و در حال اجرا است، اجازه دهید پورت جدید از طریق:

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

4. سرویس SSDD را مجددا راه اندازی کنید:

systemctl restart sshd

5. اگر پس از راه اندازی مجدد با پیغام خطایی مانند زیر مواجه شدید:

Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.

و با اجرای journalctl -xe دیدید که sshd با پورت جدید به دلیل مجوزهای SELinux شروع نمی شود:

# journalctl -xe 
...output snipped...
Sep 16 08:21:12 server1 kernel: type=1400 audit(1537086072.510:4): avc: denied { name_bind } for pid=1074 comm="sshd" src=6378 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:unres
Sep 16 08:21:12 server1 sshd[1074]: error: Bind to port 6378 on 0.0.0.0 failed: Permission denied.
Sep 16 08:21:12 server1 sshd[1074]: error: Bind to port 6378 on :: failed: Permission denied.
Sep 16 08:21:12 server1 kernel: type=1400 audit(1537086072.515:5): avc: denied { name_bind } for pid=1074 comm="sshd" src=6378 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:unres
Sep 16 08:21:12 server1 sshd[1074]: fatal: Cannot bind any address.
Sep 16 08:21:12 server1 systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
Sep 16 08:21:12 server1 systemd[1]: Failed to start OpenSSH server daemon.
...output snipped...

با اطلاع رسانی SELinux از تغییرات اعمال شده با استفاده از کد زیر می توانید این مشکل را حل کنید:

semanage port -a -t ssh_port_t -p tcp 3456

اکنون بررسی کنید که آیا SELinux به sshd اجازه داده است که به دو پورت اعلام شده با استفاده از دستور زیر گوش دهد:

semanage port -l | grep ssh
ssh_port_t  tcp      3456, 22

اگر دستور semanage پیدا نشد، بررسی کنید که کدام بسته semanage را ارائه می دهد و همان بسته را نصب کنید:

yum whatprovides semanage
...output snipped...
policycoreutils-python-2.5-22.el7.x86_64 : SELinux policy core python utilities
Repo : base
Matched from:
Filename : /usr/sbin/semanage
yum install -y policycoreutils-python

6. اکنون بررسی کنید که آیا می توانید با پورت SSH جدید وارد سرور شوید:

ssh -p 3456 [email protected]

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

نتیجه

SSH یا Secure Shell Protocol یک پروتکل ارتباطی شبکه ای است که به دو کامپیوتر کمک می کند تا با یکدیگر ارتباط برقرار کرده و داده ها را به اشتراک بگذارند. این پروتکل به طور گسترده در سرورها استفاده می شود. پورت SSH پیش فرض پورت شماره 22 است. اما گاهی اوقات به دلایل مختلف ممکن است نیاز به تغییر این پورت داشته باشید. در این مقاله از وبلاگ پارس پاک نحوه تغییر پورت SSH در CentOS را به شما آموزش دادیم تا بتوانید از پورت دیگری در سیستم عامل CentOS به جز پورت پیش فرض استفاده کنید.

سوالات متداول

1. پورت چیست؟

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

2. SSH چیست و به چه معناست؟

SSH مخفف Secure Shell Protocol است و به دو کامپیوتر متصل به شبکه اجازه می دهد با یکدیگر ارتباط برقرار کرده و اطلاعات را مبادله کنند.

3. پورت پیش فرض در پروتکل SSH چیست؟

SSH معمولاً با استفاده از پورت 22 کار می کند. با این حال، در صورت لزوم می‌توانید SSH را برای استفاده از پورت‌های دیگر در توزیع‌های مختلف لینوکس پیکربندی کنید. در این مقاله نحوه انجام آن در توزیع CentOS 7 را توضیح داده ایم.