⁠چگونه دسترسی SSH را فقط به IPهای خاص محدود کنیم؟

⁠چگونه دسترسی SSH را فقط به IPهای خاص محدود کنیم؟
تیم محتوا
مدت زمان مطالعه : 8 دقیقه
۰ کامنت
۱۴۰۴/۰۱/۳۱

یکی از اقداماتی که به‌ طور مستقیم امنیت سرور لینوکس شما را افزایش می‌ دهد، محدود کردن دسترسی SSH فقط به IPهای مورد اعتماد است. در صورت باز بودن SSH برای همه IPها، سرور شما در معرض حملات brute-force و تلاش های غیر مجاز قرار خواهد گرفت. به این صورت که ربات ها و مهاجمان با امتحان رمز های مختلف، به راحتی به سرور نفوذ کنند.

در این مقاله، روش‌ های محدود سازی دسترسی SSH فقط به IPهای مورد اعتماد را بررسی کرده‌ایم تا بتوانید با استفاده از آن‌ها، سطح حملات را کاهش داده و امنیت سرور را افزایش دهید.

پیش نیازها

✔ نصب SSH سرور روی سیستم عامل

✔ دسترسی به Terminal

✔ دسترسی root یا sudo  به سرور

⁠چگونه دسترسی SSH را فقط به IPهای خاص محدود کنیم؟

نحوه محدود کردن دسترسی SSH به IPهای خاص

برای محدود کردن دسترسی SSH فقط به آدرس های مشخص IP، دو راه وجود دارد:

📌 روش اول: استفاده از فایل sshd_config

برای محدود کردن دسترسی SSH از طریق تنظیمات سرویس SSH، مراحل زیر را دنبال کنید:

1- برای باز کردن فایل پیکربندی SSH، دستور زیر را وارد کنید:

sudo vi /etc/ssh/sshd_config

2- سپس خط زیر را وارد کنید تا کاربر خاص را از IP خاص مجاز کنید:

AllowUsers user@IP_Address

اما اگر می خواهید چندین کاربر یا چندین IP داشته باشید، دستور زیر را وارد کنید:

AllowUsers user1@IP1 user2@IP2

3-  شما می توانید از دستور Match Address نیز استفاده کنید:

AllowUsers user
Match Address IP_Address
AllowUsers user

4- برای ری استارت سرویس SSH، فایل را ذخیره کنید:

sudo systemctl restart sshd

نکته ❗ 

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

محدود کردن دسترسی SSH به IPهای خاص با استفاده از فایل sshd_config

📌 روش دوم: استفاده از فایروال

برای محدود کردن دسترسی SSH با استفاده از فایروال، سه روش وجود دارد. مراحل زیر را دنبال کنید:

🔺 با UFW:

1- دستور زیر را وارد کنید تا IP خاص را مجاز کنید:

sudo ufw allow from <your-ip> to any port 22

2- برای مسدود سازی بقیه دسترسی ها به SSH، کد زیر را وارد کنید:

sudo ufw deny 22

3- برای فعال کردن و بارگذاری مجدد UFW، این فرمان را اجرا کنید:

sudo ufw enable
sudo ufw reload

4- برای مشاهده کردن وضعیت قوانین، کد زیر را وارد کنید:

sudo ufw status

خروجی آن به این صورت است:

22 ALLOW <your-ip>
22 DENY Anywhere

🔺 با iptables:

1- دستور زیر را وارد کنید تا IP خاص را مجاز کنید:

sudo iptables -A INPUT -p tcp -s <your-ip> --dport 22 -j ACCEPT

2- برای مسدود سازی بقیه دسترسی ها به SSH، کد زیر را وارد کنید:

sudo iptables -A INPUT -p tcp --dport 22 -j DROP

3- برای دائم سازی قوانین، از دستور زیر استفاده کنید:

sudo iptables-save > /etc/iptables/rules.v4

🔺 با firewalld:

1- دستور زیر برای اضافه کردن قانون rich rule بکار می رود:

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="<your-ip>" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload

محدود کردن دسترسی SSH به IPهای خاص با استفاده از فایروال

‼ نکات امنیتی

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

🔴 استفاده از کلید SSH بجای Password

برای جلوگیری از بسیاری از حملات brute-force، با کلید عمومی-خصوصی احراز هویت کنید. این روش بسیار امن تر از احراز هویت با پسورد است.

🔴 تغییر پورت SSH

برای بی اثر کردن بسیاری از اسکن های خودکار، پورت پیشفرض را به عددی دیگر تغییر دهید.

🔴 استفاده از fail2ban

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

 

🔌 تست و اتصال

🔗 تست با IP مجاز

با استفاده از IP مجاز شده، سعی کنید به سرور متصل شوید:

ssh your-username@your-vps-ip

🔗 تست با IP غیرمجاز

هنگام تلاش برای اتصال از یک IP غیر مجاز، باید با پیغام خطا مواجه شوید و اتصال برقرار نشود.

💡 هنوز سرور VPS لینوکسی نداری؟ الان وقتشه! با سرورهای لینوکس پرسرعت آذرسیس با IP اختصاصی شروع کن و این آموزش رو روی سرور خودت اجرا کن.

🎯 نتیجه گیری

با محدود کردن دسترسی SSH فقط به IPهای خاص، امنیت سرور به شکل چشمگیری افزایش یافته و ریسک نفوذ و حملات خودکار به حداقل می رسد. با به کار گیری این روش در کنار دیگر تدابیر امنیتی مانند کلید SSH، تغییر پورت و ابزارهای ضد حملات brute-force، یک سپر دفاعی مستحکم برای سرور خود خواهید ساخت. کنترل دقیق دسترسی، از اصول اساسی امنیت سرورهای لینوکسی شناخته می شود.

در صورتی که روش‌های دیگری را می‌شناسید یا در هر مرحله به مشکلی برخوردید، لطفاً در بخش نظرات با ما در ارتباط باشید.

۰

دیدگاه و پرسش