افزایش امنیت SSH (Secure Shell) برای جلوگیری از حملات و دسترسیهای غیرمجاز به سرور، امری ضروری است. در ادامه، چندین روش کاربردی برای بالا بردن امنیت SSH را مرور میکنیم.
1. غیرفعال کردن ورود با رمز عبور (Password Authentication)
یکی از بهترین روشها برای افزایش امنیت SSH این است که ورود با رمز عبور را غیرفعال کنید و تنها از کلیدهای SSH استفاده کنید. برای این کار، ابتدا باید مطمئن شوید که کلیدهای SSH را پیکربندی کردهاید.
پس از تنظیم کلید SSH، مراحل زیر را دنبال کنید:
-
فایل پیکربندی SSH را با استفاده از ویرایشگر متنی باز کنید:
- خط زیر را پیدا کنید و مقدار آن را به
no
تغییر دهید:
- سرویس SSH را مجدداً راهاندازی کنید تا تغییرات اعمال شوند:
این کار باعث میشود که ورود با رمز عبور غیرفعال شود و تنها کاربرانی که کلید SSH معتبر دارند، بتوانند وارد شوند.
2. استفاده از کلیدهای SSH به جای رمز عبور
کلیدهای SSH جایگزین ایمنتری برای رمزهای عبور هستند. برای ایجاد کلید SSH، از دستور زیر در سیستم محلی خود استفاده کنید:
پس از این کار، میتوانید بدون وارد کردن رمز عبور، به سرور متصل شوید.
3. تغییر پورت پیشفرض SSH (Port 22)
پورت پیشفرض SSH، یعنی پورت 22، یکی از اهداف متداول برای حملات است. تغییر این پورت میتواند امنیت را بهبود بخشد، زیرا حملهکنندگان معمولاً پورت 22 را جستجو میکنند.
برای تغییر پورت SSH:
فایل پیکربندی SSH را باز کنید
خط Port 22
را پیدا کنید و پورت دلخواه خود را جایگزین کنید، مثلاً:
سرویس SSH را مجدداً راهاندازی کنید:
4. فعال کردن احراز هویت دو مرحلهای (2FA)
با فعالسازی احراز هویت دو مرحلهای (Two-Factor Authentication)، میتوانید یک لایه امنیتی دیگر به SSH اضافه کنید. این کار از ابزارهایی مانند Google Authenticator یا Duo استفاده میکند.
برای نصب Google Authenticator:
برای نصب Google Authenticator:
-
ابزار PAM مورد نیاز برای احراز هویت دو مرحلهای را نصب کنید:
سپس با اجرای دستور زیر، کد QR خود را دریافت کنید:
تنظیمات PAM را ویرایش کنید:
خط زیر را به ابتدای فایل اضافه کنید:
فایل sshd_config را ویرایش کرده و این تنظیمات را تغییر دهید:
سرویس SSH را مجدداً راهاندازی کنید.
5. محدود کردن دسترسی با استفاده از فایروال (UFW)
برای محدود کردن دسترسی به SSH، میتوانید از فایروال UFW استفاده کنید تا فقط IPهای مشخص به سرور شما دسترسی داشته باشند.
-
برای اجازه دسترسی از یک IP خاص:
فعالسازی فایروال:
6. استفاده از Fail2Ban برای جلوگیری از حملات Brute Force
Fail2Ban ابزاری است که تلاشهای ناموفق برای ورود به SSH را شناسایی کرده و IPهای مشکوک را مسدود میکند.
-
برای نصب Fail2Ban:
سپس فایل پیکربندی را ویرایش کنید:
تنظیمات مربوط به SSH را اضافه کنید:
Fail2Ban را راهاندازی کنید:
7. استفاده از TCP Wrappers برای محدود کردن دسترسی IPها
TCP Wrappers یک ابزار ساده برای محدود کردن دسترسی بر اساس آدرس IP است. شما میتوانید با ویرایش فایلهای /etc/hosts.allow
و /etc/hosts.deny
دسترسی به SSH را محدود کنید.
-
اجازه دسترسی به یک IP خاص در hosts.allow:
مسدود کردن همه دسترسیها به غیر از IPهای مجاز در hosts.deny:
8. غیرفعال کردن ورود مستقیم با کاربر Root
به دلایل امنیتی، توصیه میشود ورود مستقیم با کاربر Root را غیرفعال کنید و به جای آن از یک کاربر با دسترسی sudo استفاده کنید.
برای غیرفعال کردن ورود Root:
-
فایل sshd_config را باز کنید:
خط زیر را پیدا کنید و مقدار آن را به no
تغییر دهید:
سپس سرویس SSH را مجدداً راهاندازی کنید:
نتیجهگیری
افزایش امنیت SSH از طریق استفاده از کلیدهای SSH، غیرفعال کردن ورود با رمز عبور، تغییر پورت، فعالسازی 2FA و استفاده از ابزارهایی مانند Fail2Ban و TCP Wrappers میتواند به جلوگیری از دسترسیهای غیرمجاز و حملات احتمالی کمک کند. این اقدامات به شما این اطمینان را میدهد که سرور لینوکس شما به بهترین شکل از حملات محافظت میشود.