Fail2ban یک ابزار اپن سورس است که با نظارت بر گزارش های مربوط به فعالیت های مخرب ، به محافظت از دستگاه لینوکس در برابر بدافزارهای brute-force و سایر بدافزارها خودکار کمک می کند که ما سعی داریم نصب Fail 2ban بر لینوکس را در این مقاله کامل توضیح دهیم.
همه ورودی های مطابق با الگوها شمارش می شوند و هنگامی که تعداد آنها به یک آستانه از پیش تعیین شده برسد ، Fail2ban IP بدافزار را با استفاده از فایروال سیستم برای مدت زمانی خاص بلاک می کند. با پایان دوره بلاک ، آدرس IP از لیست بلاک ها حذف می شود. در این مقاله با ما همراه باشید تا شما عزیزان را با نحوه نصب و کانفیگ Fail2ban در CentOS 8 آشنا کنیم.
از اسناد عادی برای اسکن فايل های log استفاده می کند. تمام ورودی های مطابق با الگوها شمرده می شوند ، و هنگامی که تعداد آنها به یک آستانه از پیش تعریف شده خاص می رسد ، Fail2ban IP متخلف را با استفاده از Firewall سیستم برای مدت زمان مشخص ممنوع می کند. با پایان دوره ممنوعیت ، آدرس IP از لیست ممنوعیت حذف می شود. در این مقاله نحوه نصب و پیکربندی Fail2ban در اوبونتو ۲۰٫۰۴ توضیح داده شده است. با ما در کیمیا هاست همراه باشيد
پیشنیازهای نصب Fail 2ban بر لینوکس
Fail2ban با زبان برنامهنویسی پایتون نوشته شده و تنها چیزی که باید بر روی سرور نصب باشد نرمافزار پایتون است.
برای مسدود کردن دسترسی هکر و ایمیل به مدیر باید فایروال و sendmail بر روی سرور لینوکسی نصب باشند.
آموزش نصب Fail 2ban بر لینوکس
۱- نصب Fail2ban بر روی CentOS/RHEL 7
نحوه نصب بسیار آسان و از طریق مخزن لینوکس به راحتی قابل انجام است ابتدا مخزن را آپدیت سپس رپوزیتوری Epel را فعال میکنیم و در انتها با دستور سوم نصب fail2ban را تکمیل میکنیم.
yum update yum install epel-release yum install fail2ban
۲- نصب Fail2ban بر روی Debian/Ubuntu
نحوه کار در تمامی توزیعها یکسان است با این تفاوت که دستور فقط در هر توزیع کمی تفاوت دارد.
apt-get update && apt-get upgrade -y apt-get install fail2ban
برای اطلاع از وقایع اتفاق افتاده بر روی سرور لینوکسی میتوانیم با نصب sendmail توسط دستورات لینوکس که در ادامه قرار دادم به محض عملکرد fail2ban در ایمیل خود از آن مطلع شوید.
yum install sendmail [On CentOS/RHEL] apt-get install sendmail-bin sendmail [On Debian/Ubuntu]
برای استارت و فعالسازی سرویسهای fail2ban و sendmail دستورات زیر را به ترتیب در ترمینال وارد کنید.
systemctl start fail2ban systemctl enable fail2ban systemctl start sendmail systemctl enable sendmail
آموزش نصب Fail 2ban بر لینوکس و کانفیگ آن در لینوکس
بعد از پیگیری آموزش نصب Fail2ban و کامل کردن مراحل نصب میتوانید با فایل کانفیگی که در مسیر /etc/fail2ban/ قرار دارد این سرویس را مدیریت کنید.
البته فایلهایی با پسوند local. هم در این مسیر قرار دارند که از نوشته شدن به صورت مستقیم بر روی فایلهای کانفیگ جلوگیری میکنند تا در صورت آپدیت سرویس Fail2ban مشکلی برای آن رخ ندهد.
برای شروع ما با دستور زیر از فایل کانفیگ یک کپی در همان مسیر با پسوند local. ایجاد میکنیم.
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
حالا میتوانید این فایل را به طور مستقیم با یک ادیتور همانند nano ویرایش کنید و پارامترهای آن را تغییر دهید. موارد همچون Loglevel,Logtarget، سوکت و pidfile را میتوان کنترل کرد.
یکی از مهمترین فایلها که با نصب Fail2ban میتوانید توسط آن سرویسهای تحت کنترل را مدیریت کنید فایل jail.local میباشد.
همانطور که قبلتر گفتیم برای جلوگیری از بروز مشکل بعد از آپدیت fail2ban ما هر تغییر را درون فایلهای local. اعمال میکنیم.
توسط دستور زیر یک کپی از این فایل با پسوند local. ایجاد میکنیم.
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
اگر از توزیع centos و یا fedora استفاده میکنید باید پارامتر backend را از حالت auto به system تغییر دهید.
اگر از سیستمهای دبیان بیس استفاده میکنید نیازی به این تغییر نیست هر چند آنها هم از systemd استفاده میکنند.
کنترل بر روی سرویس ssh بر روی توزیعهای Debian و Ubuntu به صورت اتوماتیک انجام میشود ولی برای centos نیاز است پارامتر زیر را به حالت فعال دربیاورید.
[sshd]enabled = true
بعد از مسدود شدن دسترسی هکر توسط ۳ پارامتر bantime,findtime و maxretry میتوانید کنترلهایی روی زمان بلاک شدن کاربر لحاظ کنید.
bantime: توسط این پارامتر میتوانید مدتزمانی که IP فرد مهاجم در حالت مسدود قرار خواهد گرفت را تعیین کنید.
findtime: توسط این گزینه میتوانیم مشخص کنیم بعد از چه مدتزمانی کاربر اگر بیشتر از حد تعریف شده اقدام به ورود اطلاعات حساب و حمله از طریق brute force نمود دسترسی آن مسدود شود.
Maxretry: تعداد دفعات مجاز برای ورود اطلاعات اشتباه توسط کاربر را مشخص میکند که به صورت پیشفرض ۳ بار این عمل مجاز خواهد بود.
اگر بخواهید لیستی از IP های مجاز را در این فایل تعریف کنید که از قوانین fail2ban مجزا شوند در خط زیر میتوانید با کاما یا فاصله آن هار را وارد کنید.
ignoreip = 127.0.0.1/8 ::1
دریافت ایمیل هشدار توسط Fail2ban
برای دریافت ایمیل از وقایع اتفاق افتاده باید در فایل jail.local پارامترهای زیر را کنترل کنید.
destemail: در این پارامتر ایمیل خودتان را وارد کنید.
sendername: نام ارسالکننده ایمیل توسط این پارامتر نمایش داده خواهد شد.
sender: ایمیلی که fail2ban از آن برای ارسال ایمیل استفاده خواهد کرد.
برای دریافت ایمیل از fail2ban باید پارامتر زیر را:
Action = %(action_)s
با یکی از پارامترهایی که در ادامه قرار دادیم جایگزین کنید.
action = %(action_mw)s action = %(action_mwl)s
گزینه اول بعد از مسدود کردن دسترسی، با ایمیل اطلاعات whois کاربر را هم ارسال میکند.
پارامتر دوم علاوه عملکرد پارامتر اول، هر اطلاعاتی که از کاربر درون فایل لاگ باشد را نیز ارسال خواهد کرد.
تنظیمات اضافی در فایل کانفیگ jail سرویس fail2ban
برای فعالسازی jail هر سرویس درون فایل کانفیگ باید این بخش به حالت فعال درآید.
[jail_to_enable] . . . enabled = true
به جای jail_to_enable باید نام سرویس را وارد کنید. برای کنترل بر روی سرویس ssh از بلاک کد زیر استفاده میکنیم.
[sshd] port = ssh logpath = %(sshd_log)s
همچنین با فعالسازی filter شما میتوانید از اتفاقاتی که مشکوک به حملات هکرها هستند fail2ban را آگاه کنید.
فیلترها در مسیر /etc/fail2ban/filter.d/ قرار دارند که میتوانید آنها را مشاهده کنید. درون فایل sshd.conf در همین مسیر با قرار دادن فیلتر به شکل زیر میتوانید آن را برای ssh فعال کنید.
filter = sshd
استفاده از fail2ban-client
این سرویس یک client کنترل به شما میدهد که توسط آن میتوانید پارامترها را کنترل کنید. برای دریافت اطلاعات بیشتر دستور زیر را در ترمینال وارد کنید.
man fail2ban-client
بهطور مثال برای مشاهده وضعیت fail2ban دستور زیر را میتوانید استفاده کنید.
fail2ban-client status
اگر برای یک jail خاص بخواهید وضعیت را مشاهده کنید دستور زیر به کار شما خواهد آمد.
fail2ban-client status sshd
خوب آموزش نصب Fail2ban و همچنین کانفیگ اون به پایان رسید امیدوارم از این سیستم قدرتمند برای کانفیگ سرور در جهت امن سازی استفاده کنید و دسترسی هکرها را تا حد قابل قبولی مسدود کنید.