Що ви хочете, це Fail2ban (якщо припустити, що це машина Linux, ви не сказали ...)
Що таке Fail2ban?
Fail2ban буде аналізувати журнали системи, шукаючи конкретні регулярні вирази для блокування. Коли він знайде збіг (або кілька збігів з одного і того ж IP, залежно від того, як ви його налаштували), він блокується, як правило, через IPTables. Зазвичай це використовується для блокування невдалих спроб аутентифікації проти SSH або веб-серверів.
Ви налаштовуєте його забороняти протягом певного часу (може бути хвилин, може бути днів ... залежить від того, наскільки вони стійкі), після чого термін дії заборони закінчується, якщо вони не спробують ще раз.
Як це допомагає блокувати боти для сканування phpmyadmin?
Це так само легко можна використовувати для узгодження загальних ознак нападу, як, наприклад, спроба отримати доступ до неіснуючих папок phpmyadmin. Вам доведеться з’ясувати правильний регулярний вираз, щоб відповідати таким спробам, і переконатися, що ви не блокуєте законних користувачів.
Конфігурація, наведена в цьому дописі блогу, може працювати вербатієм або вимагати певного налаштування для вашої настройки.
Чому я повинен їх блокувати? Помилки 404 не коштують великих витрат
Блокування їх у iptables НЕ має певного використання - шанси є, якщо вони перевіряють наявність вразливості phpmyadmin, вони також можуть спробувати інші служби на предмет вразливості, поки не потраплять на щось, що працює. Якщо заборонити їх, через деякий час боти / сценарії відмовляться, і вони перейдуть до кращих цілей.
Навіть через сканування не коштують великих витрат (якщо вони фактично не виявляють вразливість), вони затоплюють ваші журнали, ускладнюючи перегляд успішних атак та проблем з веб-сервером.
Як йдеться в коментарі нижче, Fail2ban вимагає певних системних ресурсів. Але не дуже. Принаймні, я можу сказати, що у мене ніколи не було проблем з продуктивністю, які я міг би віднести до Fail2ban. Однак у мене виникли проблеми з продуктивністю від дуже агресивних сценаріїв, які намагалися грубими паролями або кидали тисячі спроб введення SQL та інших подвигів в секунду на мій сервер. Блокування їх на рівні брандмауера вимагає меншої кількості ресурсів, ніж блокування їх на рівні сервера / програми. Також можна розширити запуск спеціальних скриптів для заборони IP-адрес - тому замість заборони їх у IPtables, можливо, ви можете заборонити їх у апаратному брандмауері або надіслати електронною поштою комусь, якщо той самий чоловік намагається напасти на вас, щоб ви могли скаржитися. до свого провайдера або попросіть ваш центр обробки даних заблокувати їх на брандмауерах.
Будь-які інші поради?
ВДАЛО РЕКОМЕНДОВАНО, щоб ви додавали в білий список декілька IP-адрес, якими ви керуєте, щоб не випадково заблокувати себе.