آموزش پیکربندی SSH برای استفاده از پورت های مختلف در CentOS 7
در این مقاله میخوانید
پیکربندی SSH برای استفاده از پورتهای مختلف در CentOS 7 برای اهداف مختلفی انجام میشود. Secure Shell Protocol یا بهاختصار SSH یکی از پروتکلهای رمزنگاری برای عملیات ایمن در شبکهای است که احتمال ناایمنبودن آن وجود دارد. در این مطلب از آموزش لینوکس بلاگ پارس پک، نحوه پیکربندی SSH برای استفاده از پورتهای مختلف در CentOS 7 را به شما آموزش میدهیم؛ پس تا پایان مطلب با ما همراه باشید.
خرید سرویس لینوکسی با قابلیت پیکربندی SSH از پارس پک
شما میتوانید از این مقاله برای مدیریت سرورهای لینوکس خود استفاده کنید و اگر قصد خرید هر یک از سرویسهای لینوکسی پارس پک را دارید، میتوانید با کارشناسان فروش ما در ارتباط باشید. همچنین، شما میتوانید برای اطلاع از تعرفهها و هزینهها به لینکهای زیر مراجعه کنید.
نکاتی درباره پورت پیش فرض ۲۲ و تغییر آن
اگرچه پیکربندی SSH برای گوشدادن به پورتی غیر از پورت پیشفرض ۲۲ ممکن است ازنظر امنیتی چندان سودمند نباشد، این موضوع همچنان مزایایی نیز خواهد داشت. دو نمونه از مزایای استفاده از پورتهایی بهغیر از ۲۲ عبارتاند از:
- انجام این کار حملههای تصادفی خودکار که سرویسهای در حال اجرا در پورتهای پیشفرض را هدف میگیرند و حملههایی که با هدف سوءاستفاده از آسیبپذیری مرتبط با نسخههای خاصی از OpenSSH و کتابخانههای رمزنگاریشده آنها انجام میشوند، میتواند کاهش دهد.
- استفاده از پورتهایی بهغیر از پورت پیشفرض، اندازه فایلهای لاگ را کاهش خواهد داد؛ زیرا این کار تلاشهای ناموفق Brute-Force ورود به سیستم را بهسمت پورت پیشفرض SSH متوقف میکند.
آموزش پیکربندی SSH برای استفاده از پورت های مختلف در CentOS 7
برای پیکربندی SSH روی پورتی بهجز پورت ۲۲، مراحل زیر را بهترتیب دنبال کنید:
۱. وارد سرور خود شوید و فایل پیکربندی سرور OpenSSH را از مسیر /etc/ssh/sshd_config برای ویرایش باز کنید. برای این منظور، میتوانید از دستور زیر استفاده کنید:
vim /etc/ssh/sshd_config
۲. خط مربوط به Port 22 را از حالت کامنت خارج و آن را روی پورت دلخواهتان تنظیم کنید. بااینحال، توصیه میکنیم که بهعنوان اقدام امنیتی sshd را برای گوشدادن به پورت پیشفرض و پورت مدنظر پیکربندی کنید تا بدینترتیب فایل پیکربندی شما دو خط کد بهصورت زیر داشته باشد. وقتی مطمئن شدید که پورت جدید درست کار میکند، تنظیمات مربوط به پورت پیشفرض را میتوانید حذف کنید:
Port 22 Port 3456 <where 3456 is your preferred port>
نکته اول: مطمئن شوید که هیچ سرویس دیگری از پورت جدید معرفیشده استفاده نمیکند.
نکته دوم: پورتهای قبلی را متناسب با تغییرات ایجادشده تعویض کنید.
۳. اگر فایروال فعال و در حال اجراست، اجازه دهید تا پورت جدید ازطریق آن روشن شود:
firewall-cmd --add-port=3456/tcp --permanent firewall-cmd --reload
۴. سرویس sshd را از نو راهاندازی کنید:
systemctl restart sshd
۵. درصورتیکه با راهاندازی مجدد با چنین پیغام خطایی روبهرو شدید:
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
۶. حالا امتحان کنید که آیا میتوانید با پورت SSH جدید وارد سرور شوید یا خیر:
ssh -p 3456 root@server1
اگر این کار با موفقیت انجام شد، مراحل را با کامنتکردن پورت پیشفرض در فایل پیکربندی sshd حذف یا آن را در فایروال مسدود کنید. فراموش نکنید که پس از اِعمال تغییرات، sshd را مجدداً راهاندازی یا فایروال را دوباره بارگذاری کنید.
اگر میخواهید با تغییر پورت SSH در لینوکس CentOS برای افزایش امنیت بیشتر آشنا شوید، مقاله زیر را بخوانید.
جمعبندی
پیکربندی SSH برای استفاده از پورتهای مختلف در CentOS 7 با چند مرحله ساده قابل انجام است. SSH یا Secure Shell Protocol پروتکل ارتباطی شبکهای است که به دو کامپیوتر کمک میکند تا با یکدیگر ارتباط برقرار کنند و دادهها را بهاشتراک بگذارند. این پروتکل کاربرد وسیعی در سرورها دارد. پورت پیشفرض SSH پورت شماره ۲۲ است؛ اما گاهی اوقات نیاز خواهید داشت تا بهدلایل مختلف این پورت را تغییر دهید. در این مطلب از آموزش centos بلاگ پارس پک، به شما نحوه تغییر پورت SSH در CentOS را آموزش دادیم تا بتوانید بهجز پورت پیشفرض، از پورتهای دیگر در سیستمعامل سنتاواس استفاده کنید.
سؤالات متداول
۱. Port چیست؟
برای اینکه در دنیای واقعی بتوانید به خانهای وارد شوید، راههای مختلفی وجود دارد. اگرچه درِ ورودی خانه اصلیترین راه برای ورود به آن است، احتمالاً از پنجره هم میتوانید به خانه وارد شوید. پورت هم درواقع حکم راههای ورود به Device متصل به شبکه را دارد؛ بنابراین، با داشتن IP و Port دیوایس، میتوانید به آن متصل شوید.
۲. SSH مخفف چیست و به چه معناست؟
SSH مخفف Secure Shell Protocol است و به دو کامپیوتر متصل به شبکه اجازه میدهد تا با یکدیگر ارتباط برقرار و اطلاعات تبادل کنند.
۳. پورت پیش فرض در پروتکل SSH چیست؟
معمولاً SSH با استفاده از پورت ۲۲ کار میکند. بااینحال درصورت لزوم، میتوانید پیکربندی SSH را برای استفاده از پورتهای دیگر در توزیعهای مختلف لینوکس انجام دهید. در مطلب حاضر، نحوه انجام این کار در توزیع CentOS 7 را توضیح دادهایم.