
Secure Shell Protocol یا به اختصار SSH یکی از پروتکل های رمزنگاری برای کار ایمن در شبکه ای است که ممکن است ناامن باشد. در این مقاله وبلاگ پارس پک، نحوه پیکربندی SSH برای استفاده از پورت های مختلف در CentOS 7 را به شما آموزش می دهیم. پس تا پایان مقاله با ما همراه باشید.
نکاتی در مورد پورت پیش فرض 22 و تغییر آن
اگرچه پیکربندی SSH برای گوش دادن به پورتی غیر از درگاه پیشفرض 22 ممکن است از منظر امنیتی مفید نباشد، اما مزایایی دارد. دو نمونه از مزایای استفاده از پورت های غیر از 22 عبارتند از:
برای آشنایی با SSH و OpenSSH و ویژگی های آنها می توانید مقاله زیر را مطالعه کنید.
منظور از SSH و OpenSSH چیست؟
- این میتواند حملات تصادفی خودکاری را که سرویسهایی را که روی پورتهای پیشفرض اجرا میشوند و حملاتی که هدفشان سوءاستفاده از آسیبپذیریهای مرتبط با نسخههای خاص OpenSSH و کتابخانههای رمزنگاری آنها است، کاهش دهد.
- استفاده از پورتهایی غیر از پورت پیشفرض، حجم فایلهای گزارش را کاهش میدهد. زیرا با این کار تلاشهای ناموفق برای ورود به سیستم در پورت 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>
نکته اول: مطمئن شوید که هیچ سرویس دیگری از پورت تازه معرفی شده استفاده نمی کند.
نکته دوم: با توجه به تغییرات انجام شده پورت های قبلی را تعویض کنید.
اگر می خواهید یاد بگیرید که چگونه پورت SSH را در CentOS Linux برای افزایش امنیت تغییر دهید، مقاله زیر را مطالعه کنید.
چگونه پورت SSH را در CentOS تغییر دهیم؟
3. اگر فایروال فعال و در حال اجرا است، اجازه دهید پورت جدید از طریق آن باز شود:
firewall-cmd --add-port=3456/tcp --permanent firewall-cmd --reload
4. سرویس sshd را راه اندازی مجدد کنید:
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 root@server1
در صورت موفقیت آمیز بودن، مراحل را با نظر دادن درگاه پیش فرض در فایل پیکربندی 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 را توضیح دادیم.
{ “@context”: “https://schema.org”، “@type”: “FAQPage”، “mainEntity”: [{
“@type”: “Question”,
“name”: “Port چیست؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “برای اینکه در دنیای واقعی بتوانید به خانهای وارد شوید، راههای مختلفی وجود دارد. اگرچه درِ ورودی خانه اصلیترین راه برای ورود به آن است، احتمالاً از پنجره هم میتوانید به خانه وارد شوید. پورت هم درواقع حکم راههای ورود به Device متصل به شبکه را دارد؛ بنابراین، با داشتن IP و Port دیوایس، میتوانید به آن متصل شوید.”
}
},{
“@type”: “Question”,
“name”: “SSH مخفف چیست و به چه معناست؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “SSH مخفف Secure Shell Protocol است و به دو کامپیوتر متصل به شبکه اجازه میدهد تا با یکدیگر ارتباط برقرار و اطلاعات تبادل کنند.”
}
},{
“@type”: “Question”,
“name”: “پورت پیشفرض در پروتکل SSH چیست؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “معمولاً SSH با استفاده از پورت ۲۲ کار میکند. بااینحال درصورت لزوم، میتوانید پیکربندی SSH را برای استفاده از پورتهای دیگر در توزیعهای مختلف لینوکس انجام دهید. در مطلب حاضر، نحوه انجام این کار در توزیع CentOS 7 را توضیح دادهایم.”
}
}]
}
نوشتن آموزش پیکربندی SSH برای استفاده از پورت های مختلف در CentOS 7 برای اولین بار در پارسپک. به نظر می رسد.