Fail2Ban ابزاری هست که روی سرور نصب میشه (نمی دونم نسخه ویندوز هم داره یا نه) و کارکردش به این شکل هست که تمامی لاگ های سرور رو میخونه و در بین اونها دنبال الگوی خاصی می گرده، اگر پیداشون کرد با قواعدی که مشخص کردیم بررسیشون می کنه و مثلن اگر تعیین کردیم در ۱۰ دقیقه باید بیشتر از ۳ تا ازشون پیدا نکنه، اگر بیشتر از اون تعداد شد، به مدتی که تعیین کردیم اون IP رو به قایروال معرفی می کنه و اون IP بن (Ban) میشه و درخواستش به وب سرور نمیرسه. بعد از زمان مشخص اون IP رو از بلک لیست خارح می کنه.
بصورت پیشفرض تمام لاگ های موجود در دایرکتوری /var/log/ رو بررسی می کنه، می تونید لاگ های خاصی رو بهش اضافه کنید یا اینکه بگید بررسیشون نکنه. در حالت پیشفرض لاگ های مربوط به SSH رو بررسی می کنه و اگر چندبار تلاش ناموفق از یک IP برای ورود از طریق SSH صورت بگیره، اون رو بلاک می کنه.
حالا شما می تونید پس از ورود ناموفق در وب اپلیکیشن، یک عبارت خاص رو لاگ کنید و الگویی به Fail2Ban معرفی کنید که بتونه اون عبارت رو شناسایی کنه و IP ازش استخراج کنه و بنش کنه. درحالت ساده با لاگ کردن یه عبارت توسط دستور error_log در PHP و دستورهای مشابه در سایر زبان ها، عبارتی رو در فایل لاگ وب سرور لاگ کنید که با اینکار IP هم در اون لاگ ذخیره میشه.
این مقاله خوبی در این زمینه هست:
https://www.digitalocean.com/communi...n-ubuntu-14-04