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 رایگان و متنباز است.





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