هک و امنیت

Fail2Ban چیست؟ آموزش نصب Fail2Ban در لینوکس برای محافظت از سرور

در دنیای دیجیتال که سرورها قلب تپنده بسیاری از کسب‌وکارها هستند، امنیت سرورها از اولویت‌های اصلی محسوب می‌شود. هر سرویسی که به اینترنت متصل است، در معرض تهدیدات سایبری مانند حملات هکری قرار دارد. مدیران سرور و توسعه‌دهندگان وب به‌خوبی با این چالش‌ها آشنا هستند، به‌ویژه زمانی که صحبت از پروتکل‌هایی مانند SSH می‌شود. این پروتکل که برای دسترسی امن به سرورها استفاده می‌شود، اغلب هدف هکرهایی است که با روش‌های مختلف سعی در نفوذ و ایجاد اختلال دارند. یک نفوذ موفق می‌تواند خسارات جبران‌ناپذیری به همراه داشته باشد. یکی از روش‌های رایج هکرها، حملات بروت‌فورس است که در آن با آزمایش تعداد زیادی ترکیب نام کاربری و رمز عبور، تلاش می‌کنند به سیستم دسترسی پیدا کنند. این حملات با استفاده از ابزارهای خودکار می‌توانند در کسری از زمان ترکیب‌های بی‌شماری را امتحان کنند. خوشبختانه، ابزارهایی مانند Fail2Ban وجود دارند که به مدیران سرور کمک می‌کنند تا با این تهدیدات مقابله کنند. این ابزار به دلیل کارایی و انعطاف‌پذیری، به یکی از گزینه‌های محبوب برای حفاظت از سرورها تبدیل شده است. در این مقاله، به این می‌پردازیم که Fail2Ban چیست، چگونه کار می‌کند و چطور می‌توانید آن را روی سرورهای لینوکس، به‌ویژه اوبونتو، نصب و پیکربندی کرد.

Fail2Ban چیست

Fail2Ban یک ابزار امنیتی قدرتمند است که برای محافظت از سرورها در برابر حملات مخرب طراحی شده است. این ابزار با نظارت مداوم بر فایل‌ لاگ سرویس‌های مختلف، مانند SSH، الگوهای مشکوک مانند تلاش‌های ناموفق برای ورود را شناسایی می‌کند. در صورت تشخیص این الگوها، Fail2Ban با تغییر قوانین فایروال، آدرس IP مهاجم را برای مدت‌زمان مشخصی مسدود می‌کند. این قابلیت به کاهش حملات بروت‌فورس، DDoS و سایر فعالیت‌های مخرب کمک می‌کند. گرچه Fail2Ban به‌تنهایی نمی‌تواند تمام نیازهای امنیتی سرور را برآورده کند، اما به‌عنوان بخشی از یک استراتژی امنیتی چندلایه، نقش مهمی در افزایش امنیت ایفا می‌کند.

نصب Fail2Ban

Fail2Ban با اسکن فایل‌های لاگ سرویس‌های مختلف عمل می‌کند. این ابزار از فیلترهایی استفاده می‌کند که با عبارات منظم (Regular Expressions) تعریف شده‌اند تا خطاهای احراز هویت را شناسایی کند. این عبارات در متغیری به نام failregex تعریف می‌شوند. هنگامی که یک خط در فایل لاگ با این الگوها مطابقت داشته باشد، Fail2Ban اقدام مشخصی را اجرا می‌کند. این اقدام می‌تواند شامل مسدود کردن آدرس IP مهاجم از طریق قوانین فایروال (مانند iptables) یا ارسال اعلان به مدیر سرور باشد. به‌طور پیش‌فرض، Fail2Ban در صورت شناسایی 3 تلاش ناموفق برای ورود از یک آدرس IP در بازه زمانی 10 دقیقه، آن آدرس را برای 10 دقیقه مسدود می‌کند. این تنظیمات در فایل پیکربندی Fail2Ban قابل‌تغییر هستند.

نصب Fail2Ban

برای نصب Fail2Ban، ابتدا باید از طریق SSH با دسترسی Root به سرور خود متصل شوید. در ادامه، مراحل نصب را برای اوبونتو و CentOS توضیح می‌دهیم.

1. ابتدا به کمک دستور زیر مخازن سیستم را به‌روزرسانی کنید:

apt-get update && apt-get upgrade

2. سپس به کمک دستور زیر بسته Fail2Ban را نصب کنید:

apt-get install fail2ban

3. در این مرحله برای افزودن پشتیبانی ایمیل (اختیاری)دستور زیر را اجرا کنید:

apt-get install sendmail

4. در نهایت بااجرای دستور زیر وضعیت سرویس Fail2Ban را بررسی کنید:

sudo systemctl status fail2ban

1. به کمک دستور زیر مخزن EPEL را برای نصب Fail2Ban اضافه کنید:

sudo yum install epel-release

2. سپس با اجرای دستور زیر Fail2Ban را نصب کنید:

sudo yum install fail2ban

3. در نهایت سرویس را با اجرای دستور زیر فعال و راه‌اندازی کنید:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

پس از نصب، Fail2Ban به‌صورت خودکار شروع به کار می‌کند. برای بررسی وضعیت سرویس دستور زیر را اجرا کنید:

systemctl status fail2ban

برای تغییر تنظیمات پیش‌فرض، با اجرای دستور زیر یک کپی از فایل jail.conf ایجاد کنید:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

سپس فایل jail.local را باز کنید و به بخش [DEFAULT] بروید. به‌عنوان مثال، برای تنظیم زمان مسدودسازی به 3600 دقیقه دستور زیر را اجرا کنید:

bantime = 3600m

برای مدیریت قوانین، می‌توانید از پوشه /etc/fail2ban/jail.d/ استفاده کنید یا قوانین را به فایل defaults-debian.conf اضافه کنید. برای مثال، برای فعال کردن قانون nginx-http-auth خطوط زیر را به فایل اضافه کنید:

[nginx-http-auth]
enabled = true

همچنین می‌توانید پارامترهای خاصی مانند آدرس IP نادیده گرفته‌شده، زمان مسدودسازی و تعداد تلاش‌های ناموفق را تنظیم کنید. برای مثال دستور زیر IP 10.10.10.5 را 2400 دقیقه بعد از 10 تلاش نا موفق مسدود می کند.

ignoreip = 10.10.10.5
bantime = 2400m
maxretry = 10

اکنون پس از اعمال تغییرات، سرویس را مجدداً با اجرای دستور زیر راه‌اندازی کنید:

systemctl restart fail2ban

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

fail2ban-client status

برای بررسی وضعیت یک قانون خاص (مثلاً SSH) دستوری شبیه به دستور زیر را اجرا کنید (این دستور برای بررسی وضعیت SSH است):

fail2ban-client status sshd

برای فعال کردن یک قانون جدید از دستور زیر استفاده کنید:

fail2ban-client add nginx-http-auth
fail2ban-client start nginx-http-auth

برای مشاهده تمام دستورات موجود نیز دستور زیر را وارد کنید:

fail2ban-client -h

در این مقاله، به بررسی Fail2Ban چیست و نحوه نصـب Fail2Ban روی سرورهای اوبونتو پرداختیم. این ابزار با شناسایی و مسدود کردن آدرس‌های IP مهاجم، به شما کمک می‌کند تا سرور خود را در برابر تهدیدات سایبری ایمن کنید. اگرچه Fail2Ban به‌تنهایی کافی نیست، اما در کنار سایر ابزارهای امنیتی، و خرید VPS مناسب با امنیت بالا می‌تواند لایه‌ای قوی از حفاظت را فراهم کند. برای دستیابی به امنیت و عملکرد بهینه، انتخاب یک سرور مجازی قابل‌اعتماد نیز اهمیت زیادی دارد.

فاطمه صحرائیان

سلام! من فاطمه صحرائیان‌، دانشجوی ارشد هوش مصنوعی و نویسنده‌ای هستم که عاشق خلق محتواهای مفید و قابل فهمه و حالا در زمین هاست، به‌عنوان نویسنده و مدیر محتوا فعالیت می کنم و همیشه سعی می‌کنم خودمو جای شما بذارم تا بتونم به بهترین شکل به سوالات شما جواب بدم و محتوای کاربردی ارائه کنم. برام مهمه که هر مقاله‌ای که می‌نویسم، نه‌تنها اطلاعاتی مفید بهتون بده، بلکه یه تجربه لذت‌بخش و آموزنده باشه.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا