به منظور افزایش امنیت سرور توصیه میشود که مدیران شبکه پورت SSH خود را در CentOS لینوکس تغییر دهند و از این طریق حملات صورت گرفته بر روی سرور را دفع کنند.
یک اقدام مؤثر جهت افزایش امنیت سرور، تغییر پورت SSH در سیستم عامل لینوکس است. در این مقاله به شما نحوه تغییر پورت SSH در CentOS نسخه ۷ را آموزش خواهیم داد. تغییر پورت پیشفرض SSH مزایای متعددی را از لحاظ امنیت برای شما در بر دارد. از جمله:
· موجب کاهش سطح حمله (attack surface) و محافظت از سرور در برابر حملات رندوم به سرویسهای نصب شده بر روی پورت اصلی میگردد.
· سایز لاگ فایلها را کاهش داده و تلاشهای ناموفق برای لاگین که بر روی پورت پیش فرض SSH صورت گرفته را متوقف میسازد.
توزیع سنتاواس یک توزیع Linux مبتنی بر Red Hat لینوکس است (Linux distro based on Red Hat Enterprise Linux). اگر قصد ارتقای امنیت سرور CentOS لینوکس خود را دارید، با ما تا پایان این مطلب همراه باشید.
SSH یا پوسته امن چیست؟
SSH مخفف عبارت Secure Shell به معنای پوسته امن و یک پروتکل شبکه برای برقراری اتصال امن میان کاربر (Client) و سرور (Server) است. پوسته امن تمامی دادههای انتقال یافته (از جمله پسوردها) را کدگذاری کرده و دسترسی افراد متفرقه به دیتای شبکه را ناممکن میسازد.
در حقیقت SSH را میتوان در معنای لغوی آن به عنوان یک پروتکل کدگذاری شده شبکه برای انتقال امن دادهها، خدمات RSH یا اجرای دستورات و دیگر سرویسهای امن شبکه بین دو کامپیوتر تعریف کرد (cryptographic network protocol for secure data communication, remote shell services or command execution and other secure network services between two networked computers).
نکاتی که باید پیش از تغییر پورت SSH در CentOS 7 بدانید
· بهتر است از یک پورت ۴ یا ۵ رقمی در سنتاواس ۷ استفاده کنید.
· اگر در شبکه دیتاسنتر از فایروال استفاده میکنید، حتماً ابتدا اجازه دسترسی به پورت را از طریق فایروال خود بدهید.
· حتماً شماره پورت SSH خود را در جایی امن ذخیره کنید.
· اگر از SELinux استفاده میکنید، حتماً قبل از تغییر پورت آن را غیرفعال کنید تا مشکلی برای عملکرد سرورتان ایجاد نشود.
غیر فعال سازی SELinux
قبل از آنکه وارد مراحل تغییر پورت SSH در CentOS 7 شوید، ابتدا باید ماژول امنیتی امنیت تقویت شده SELinux (Security-Enhanced) را غیرفعال کنید. برای اینکه کارکرد این ماژول امنیتی را چک کنید، از طریق پوتی وارد محیط SSH خود شده و در ترمینال عبارت زیر را وارد کنید.
Sestatus
خروجی این دستور به صورت زیر خواهد بود.
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
همانطور که مشاهده میکنید، SELinux فعال است.
برای غیرفعال کردن ماژول SELinux دستور زیر را وارد کنید و در فایل باز شده وضعیت ماژول را به disabled تغییر دهید.
/etc/selinux/config
روش دیگر این است که پورت جدید خود را به ماژول امنیتی SELinux معرفی کنید. برای این کار دستور زیر را اجرا کنید و به جای PORT 3456 نام پورت مورد نظر خودتان را جایگزین کنید.
semanage port -a -t ssh_port_t -p tcp 3456
با این کار پورت جدید شما به SELinux اضافه میشود. برای اینکه از اضافه شدن پورت جدید اطمینان حاصل کنید عبارت زیر را وارد کنید:
semanage port -l | grep ssh
خروجی این دستور به صورت زیر خواهد بود:
ssh_port_t tcp 3456, 22
اگر دستور 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 در CentOS 7
۱- ابتدا وارد حساب سرور خود شوید و فایل کانفیگ سرور OpenSSH را باز کنید.
2- بعد از وارد شدن به حساب خود، برای ویرایش کانفیگ دستور زیر را وارد کنید:
vi /etc/ssh/sshd_config
شما میتوانید از ویرایشگرهای متنی Vi یا nano برای وارد کردن دستور تغییر پورت استفاده کنید.
در صورتی که ویرایشگر نانو یا vim را روی لینوکس خود نصب ندارید با دستور زیر آن را دانلود کنید:
yum install nano
yum install vim
۳- پس از باز شدن فایل ، خط port# را پیدا کنید.
۴- علامت # را حذف کرده و سپس پورت مورد نظر خود را وارد نمایید.
نکته مهم: برای امنیت بیشتر بهتر است پورت جدید را به پورت شماره ۲۲ که پیش فرض سرور است اضافه کنید و پورت قبلی را حذف نکنید. برای این کار باید پورتها در دو خط مجزا آورده شوند:
Port 22
Port 3456
در این آموزش ما پورت 3456 را انتخاب نمودهایم.
۵- در پایان تغییرات را ذخیره نموده و با زدن دکمه ESC و تایپ wq: از فایل خارج شوید.
توجه داشته باشید که دستور را به طور دقیق وارد کنید. اشتباه وارد کردن کانفیگ تغییر پورت ممکن است دسترسی شما به سرور را با مشکل رو به رو سازد.
۶- اکنون باید پورت جدید را در فایروال باز کنید. برای اینکه از فعال بودن فایروال خود مطمئن شوید دستور زیر را وارد کنید:
Sudo firewall-cmd --state
اگر در خروجی وضعیت فایروال running بود، پورت جدید را به فایروال اضافه کنید:
sudo firewall-cmd --permanent --zone=public --add-port=3456/tcp
7- فایروال لینوکس سنتاواس 7 را یک بار ریلود کنید.
sudo firewall-cmd --reload
اگر فایروال دیگری مانند CSF روی سرور CentOS شما نصب است، باید پورت SSH جدید خود را در CSF باز کنید.
8- در نهایت سرویس ssh را یک بار ری استارت نمایید.
sudo systemctl restart sshd.service
پس از ری استارت شدن سرویس SSH شما میتوانید با پورت جدید وارد SSH خود شوید.
در صورتی که هنگام ری استارت شدن سرویس با خطا مواجه شدید، سرور خود را ریبوت کنید.
جهت اطمینان از برقرار بودن تنظیمات و چک کردن آن قبل از بستن ترمینال ، دستور زیر را وارد کنید.
ss -tnlp | grep ssh
پس از وارد کردن دستور بالا باید خروجی مشابه زیر باشد.
در صورتی که تنظیمات به درستی بود ، شما می توانید ترمینال را بسته و مجددا از آن بهره ببرید.
اتصال به SSH با استفاده از پورت جدید
برای ورود به سرور با استفاده از پورت SSH جدید دستور زیر را وارد کنید:
ssh -p 3456 root@server1
اگر ورود شما موفقیت آمیز بود میتوانید پورت پیش فرض را در کانفیگ sshd حذف کنید و یا آن را در فایروال بلاک کنید.
در اینجا آموزش تغییر پورت SSH در CentOS 7 به پایان میرسد. شما به آسانی میتوانید از طریق فایل sshd_config پورت SSH خود را تغییر دهید. تنها نکتهای که لازم است به آن توجه ویژه داشته باشید افزودن شماره پورت جدید به فایروال است. امیدواریم که از این مطلب استفاده لازم را برده باشید.
سوالات متداول
اخطار firewall در لاین add port به چه معناست؟
برای رفع این مشکل باید پورت جدید SSH خود را در فایروال باز کنید. در غیر اینصورت قادر به دسترسی به سرور نخواهید بود.
برای تغییر پورت SSH در اوبونتو چه کار کنم؟
برای تغییر پورت SSH در اورونتو باید از دستور sudo ufw allow 22 استفاده کنید و به جای عدد پیشفرض ۲۲ شماره پورت دلخواه خود را جایگزین کنید. سپس سرور را ری استارت کنید تا تغییرات اعمال شود.
چرا لازم است که پورت SSH خود را در CentOS تغییر دهم؟
بهتر است برای بالا بردن امنیت سرور خود پورت پیش فرض SSH سنتاواس را تغییر دهید.
در انتخاب نام پورت جدید باید به چه نکاتی توجه داشته باشم؟
سعی کنید برای امنیت بیشتر از پورتهای آزاد و پورتهای ۴ الی ۵ رقمی استفاده کنید.