اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری، سرور مجازی/اختصاصی، هاست و دامنه

اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری

دریافت مشاوره رایگان

Fail2ban چیست و طریقه نصب در لینوکس

Fail2ban چیست و طریقه نصب در لینوکس

 

Fail2Ban یک سامانهٔ جلوگیری از نفوذ است که با مانیتور کردن لاگ‌‌های سرور مجازی لینوکس یا سرور ابری لینوکس، رفتارهای مشکوک مانند تلاش‌های متعدد برای ورود ناموفق را شناسایی و با افزودن قوانین فایروال، آی‌پی‌های مهاجم را مسدود می‌کند. هر سرویس در یک “جیل” جداگانه مدیریت می‌شود که قوانین و پارامترهای خودش را دارد.

 

فهرست مطالب

 

– چه‌ـ‌چـیست Fail2Ban؟

– مزایای استفاده از Fail2Ban

– Fail2Ban چگونه کار می‌کند؟

– نصب و راه‌اندازی Fail2Ban در اوبونتو

  – نصب Fail2Ban

  – تنظیم فایل‌های پیکربندی

  – تنظیمات پایه

  – بررسی جیل‌های فعال و آی‌پی‌های مسدود‌شده

  – مدیریت آی‌پی‌های مسدود‌شده

  – مانیتور کردن لاگ‌های Fail2Ban

– پیکربندی Fail2Ban

  – حفاظت SSH

  – نادیده‌گرفتن چندین آی‌پی

  – حذف آی‌پی‌های مسدود‌شده

  – فعال‌سازی جیل recidive

  – ریستارت/بارگذاری مجدد Fail2Ban

– جمع‌بندی

– سوالات متداول

 

 

مزایای استفاده از Fail2Ban

 

– جلوگیری از حملات بروت‌فورس و کاهش بار سرور

– ثبت لاگ‌های دقیق از تلاش‌های نفوذ

– قابل تنظیم و انعطاف‌پذیر برای سرویس‌های مختلف

– رایگان و متن‌باز

 

Fail2Ban چگونه کار می‌کند؟

 

– خواندن لاگ‌ها در زمان واقعی

– تطبیق الگوها (filters) برای تشخیص تلاش‌های ناموفق یا رفتار مشکوک

– اعمال بلاک با استفاده از backend فایروال (مثلاً iptables)

– مدیریت از طریق جیل‌ها با تنظیمات bantime، findtime، maxretry و غیره

 

نصب و راه‌اندازی Fail2Ban در اوبونتو

 

نصب Fail2Ban

ابتدا فهرست بسته‌ها را به‌روزرسانی کنید و سپس Fail2Ban را نصب کنید:

 

sudo apt update
sudo apt install fail2ban -y

 

 

برای بررسی وضعیت سرویس:

 

sudo systemctl status fail2ban

 

تنظیم فایل‌های پیکربندی

 

برای نگه داشتن تنظیمات سفارشی، فایل محلی بسازید (نباید فایل jail.conf را مستقیم ویرایش کنید چون با آپدیت بازنویسی می‌شود):

 

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

 

 

برای ویرایش:

 

sudo nano /etc/fail2ban/jail.local

 

 

تنظیمات پایه

 

در بخش [DEFAULT] مقدارهای رایج را تنظیم کنید:

bantime = 10m
findtime = 10m
maxretry = 5

 

 

توضیح مختصر:

– bantime: مدت زمان بلاک شدن آی‌پی

– findtime: بازهٔ زمانی که تلاش‌ها در آن شمرده می‌شوند

– maxretry: تعداد مجاز تلاش‌ها قبل از بلاک شدن

 

بررسی جیل‌های فعال و آی‌پی‌های مسدود‌شده

 

برای دیدن وضعیت کلی:

 

sudo fail2ban-client status

 

 

برای دیدن آی‌پی‌های مسدودشده در یک جیل خاص (مثلاً sshd):

 

sudo fail2ban-client status sshd

 

 

مدیریت آی‌پی‌های مسدود‌شده

 

برای دیدن لیست یک جیل از دستور بالا استفاده کنید. برای آنبَن کردن یک آی‌پی:

 

sudo fail2ban-client set sshd unbanip 123.123.123.123

 

 

مانیتور کردن لاگ‌های Fail2Ban

 

برای مشاهدهٔ لحظه‌ای لاگ‌ها:

 

sudo tail -f /var/log/fail2ban.log

 

پیکربندی Fail2Ban

 

حفاظت SSH

 

نمونه پیکربندی برای جیل sshd در فایل jail.local یا فایل جداگانهٔ جیل:

 

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 24h

 

 

نادیده‌گرفتن چندین آی‌پی (Whitelist)

 

در بخش [DEFAULT] آی‌پی‌های مورد اعتماد را اضافه کنید:

 

ignoreip = 127.0.0.1/8 23.45.67.89 your.home.ip.here

 

 

(می‌توانید CIDR یا لیست آی‌پی وارد کنید)

 

نکته: اگر سایت شما پشت پراکسی مثل Cloudflare است، باید تنظیم کنید که Fail2Ban آی‌پی واقعی کاربران را ببیند (مثلاً از لاگ واقعی یا header مناسب استفاده شود).

 

حذف آی‌پی‌های مسدود‌شده

 

برای آنبَن کردن یک آی‌پی از جیل مشخص:

 

sudo fail2ban-client set sshd unbanip 123.123.123.123

 

 

برای آنبَن کردن از همهٔ جیل‌ها می‌توانید اسکریپت یا دستورات مناسب اجرا کنید (مثال ساده):

 

for J in $(sudo fail2ban-client status | awk '/Jail list/ {getline; print}' ); do
  sudo fail2ban-client set $J unbanip 123.123.123.123
done

 

 

(در صورت نیاز می‌توان این اسکریپت را دقیق‌تر کرد.)

 

فعال‌سازی جیل Recidive

 

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

 

[recidive]
enabled = true
filter = recidive
logpath = /var/log/fail2ban.log
bantime = 1w
findtime = 1d
maxretry = 3

 

 

این جیل معمولاً در فایل‌های پکیج یا /etc/fail2ban/jail.d/ قرار دارد؛ در صورت نبود می‌توانید آن را به jail.local اضافه کنید.

 

ریستارت/بارگذاری مجدد Fail2Ban

 

بعد از ویرایش پیکربندی، تنظیمات را بارگذاری کنید:

 

sudo systemctl reload fail2ban

 

 

برای راه‌اندازی مجدد کامل (در صورت نیاز):

 

sudo systemctl restart fail2ban

 

 

جمع‌بندی

 

Fail2Ban یک ابزار ساده، مؤثر و رایگان برای کاهش حملات خودکار و بروت‌فورس است. با پیکربندی مناسب (جیل‌های SSH، recidive، whitelist) می‌توانید حفاظت قابل‌توجهی به سرور خود اضافه کنید.

 

سوالات متداول

 

سوال: تفاوت jail.conf و jail.local چیست؟

پاسخ: jail.conf فایل پیش‌فرض است و با بروزرسانی‌ها بازنویسی می‌شود؛ تنظیمات سفارشی باید در jail.local قرار گیرد.

 

سوال: آیا Fail2Ban ایمن است؟

پاسخ: بله؛ Fail2Ban ابزاری مطمئن و گسترده‌است. پیکربندی‌های پیش‌فرض RunCloud تنظیمات مناسبی ارائه می‌دهد (اگر از RunCloud استفاده می‌کنید).

 

سوال: تفاوت Fail2Ban و UFW چیست؟

پاسخ: Fail2Ban یک سیستم جلوگیری از نفوذ پویا است که بر اساس رفتار آی‌پی‌ها بلاک می‌کند؛ UFW یک فایروال ایستا برای تنظیم قوانین ورودی/خروجی است. هر دو می‌توانند مکمل یکدیگر باشند.

 

سوال: چگونه آی‌پی خودم را در Fail2Ban نادیده بگیرم؟

پاسخ: آدرس خود را در ignoreip در بخش [DEFAULT] فایل jail.local اضافه کنید.

 

سوال: چگونه Fail2Ban را متوقف کنم؟

پاسخ: اجرای دستور زیر سرویس را متوقف می‌کند:

 

sudo systemctl stop fail2ban

 

 

سوال: آیا Fail2Ban روی SSH کار می‌کند؟

پاسخ: بله؛ یکی از کاربردهای اصلی آن محافظت از SSH است.

 

سوال: آیا Fail2Ban یک WAF است؟

پاسخ: خیر؛ Fail2Ban WAF نیست بلکه یک IPS مبتنی بر لاگ است.

 

سوال: آیا Fail2Ban نیاز به iptables دارد؟

پاسخ: Fail2Ban معمولاً از iptables یا backendهای مشابه فایروال استفاده می‌کند.

 

سوال: چقدر Fail2Ban هزینه دارد؟

پاسخ: Fail2Ban رایگان و متن‌باز است.

 

 

4.9/5 - (3001 امتیاز)

ارسال دیدگاه

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


6 + 6

قوانین

قوانین ارسال دیدگاه

لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.