برنامه Fail2ban چیست؟
ابزار fail2ban یک نرمافزار امنیتی قدرتمند و متنباز است که به منظور محافظت از سرورها در برابر حملات سایبری، به ویژه حملات حدس کلمه عبور یا همان بروتفورس (Brute-Force)، طراحی شده است. این ابزار به طور مداوم فایلهای لاگ سیستم مانند لاگهای مربوط به احراز هویت را رصد میکند تا الگوهای مشکوک و تلاشهای ناموفق مکرر برای ورود را شناسایی کند. به محض اینکه یک آدرس آیپی مشخص از حد مجاز تعریفشده برای خطاها عبور کند، fail2ban به طور خودکار قوانین فایروال سیستم را بهروزرسانی کرده و دسترسی آن آیپی مخرب را برای مدت زمان مشخصی مسدود میسازد تا از دسترسی غیرمجاز پیشگیری کند. دریافت لاگ از fail2ban هم اهمیت بسیاری دارد که در این مقاله به آن میپردازیم.
کاربرد Fail2ban چیست؟
بیشترین و شناختهشدهترین کاربرد این ابزار در ایمنسازی سرویس SSH است که به مدیران سیستم اجازه میدهد جلوی نفوذهای ناخواسته به خط فرمان سرور را بگیرند، اما مصارف fail2ban بسیار فراتر از این مورد است. این ابزار به طور گسترده برای محافظت از سرورهای وب مانند انجیناکس (Nginx) و آپاچی (Apache) در برابر تلاشهای مکرر برای ورود به پنلهای مدیریتی یا حملات محرومسازی از سرویس (DoS) در لایه اپلیکیشن به کار میرود. همچنین در سرورهای ایمیل برای جلوگیری از حدس زدن رمز عبور حسابها و سوءاستفاده از پروتکلهای ارسال ایمیل، و حتی در سرویسهای پایگاه داده برای مسدود کردن تلاشهای غیرمجاز اتصال، نقشی حیاتی ایفا میکند.
انعطافپذیری بالای fail2ban به توسعهدهندگان و مدیران سیستم این امکان را میدهد که قوانین سفارشیسازی شده یا اصطلاحاً فیلترهای اختصاصی برای برنامههای خود بنویسند تا رفتارهای غیرعادی در سطح اپلیکیشنهای خاص را نیز مهار کنند. این ابزار با مسدود کردن ترافیک مخرب در همان مراحل اولیه، نه تنها امنیت کلی زیرساخت را به طرز چشمگیری افزایش میدهد، بلکه مانع از هدر رفتن پهنای باند و منابع پردازشی سرور توسط رباتهای مهاجم میشود. پیادهسازی این راهکار سبک و در عین حال کارآمد، یکی از گامهای اولیه و ضروری در پیکربندی امنیتی هر سرور متصل به اینترنت محسوب میشود که پایداری و سلامت سرویسها را تضمین میکند.
پلتفرم Papertrail چه کمکی در جمع آوری لاگ میکند؟
وفتی شما چند سرور یا نرم افزار دارید و نیاز به مدیریت آنها بصورت همزمان دارید نیاز است لاگ های خود را تجمیع کنید، رسالت Papertrail.ir تجمیع لاگ میباشد. با ثبت نام در Papertrail خیلی ساده میتوانید لاگ هایی که Fail2ban دارند را بصورت تجمیع شده مشاهده کنید. دریافت لاگ از fail2ban علاوه بر بهبود سطح امنیتی سرور، کمک میکند در عملیات Incident Response و ردیابی ترافیک تحلیل های مرتبط را انجام دهید یا آسیب پذیری را پیش از واقعه شناسایی کنید. اهمیت دریافت لاگ از fail2ban بر هیچکس پوشیده نیست!
به این منظور به فایل جدیدی برای تعریف اکشن ایجاد میکنیم:
/etc/fail2ban/action.d/papertrail.conf
ما عموما در هنگام بن شدن یا Unban شدن نیاز به لاگ داریم پس باقی موارد را خالی رها میکنیم:
[Definition]
# هنگام شروع jail
actionstart =
actionstop =
actioncheck =
# هنگام بن کردن یک IP ← مهمترین بخش
actionban = curl -k -X POST “https://logs.papertrail.ir/api/v1/ingest” -H “X-API-Key: ” -H “Content-Type: application/json” -d ‘{“message”:”[fail2ban] IP Blocked )”,”severity”:”2″,”facility”:”4″,”host”:””,”app_name”:”fail2ban”}’
# هنگام آنبن کردن
actionunban = curl -k -X POST “https://logs.papertrail.ir/api/v1/ingest” -H “X-API-Key: ” -H “Content-Type: application/json” -d ‘{“message”:”[fail2ban] IP UNBlocked )”,”severity”:”4″,”facility”:”4″,”host”:””,”app_name”:”fail2ban”}’
[Init]
# مقادیر پیشفرض — در jail.local بازنویسی میشوند
pt_apikey = x
pt_host = نام برنامه یا سرور
حالا میتوانید در فایلهای jail اقدام به فراخوانی اکشن papertrail کنید مثلا در این مثال امن سازی راجب ssh انجام شده است:
[sshd]
port = 22
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
bantime = 2h
action = papertrail
