У меня есть простая настройка веб-сервера Apache и основные IP-таблицы (ufw) для сервера разработки. В своих журналах я вижу такие строки:
[Fri May 16 10:10:36.258369 2014] [:error] [pid 15926] [client 69.147.158.130:8396] script '/var/www/html/wp-login.php' not found or unable to stat
Я вообще не использую WordPress и понимаю, что это очень незначительная попытка взлома (существуют гораздо более изощренные атаки на Apache). Однако я хотел бы автоматически заблокировать этот IP-адрес (временно) без установки IDS / IPS, например Snort.
Я просто ищу простой способ заблокировать адрес, который пытается подключиться к wp-admin или wp-login. Есть ли модуль Apache, который справился бы с чем-то подобным?
Хотя вы явно просите решение для блокировки IP-адресов, я не думаю, что это хорошее решение.
Причина в том, что эти попытки, которые вы видите, исходят с разных IP-адресов, скорее всего, контролируемых одной главной системой. Это просто природа того, как DDoS и попытки взлома происходят в наши дни.
Вместо этого вам следует изучить реализацию ModSecurity. Это модуль Apache, который действует как брандмауэр уровня веб-служб. Он анализирует весь веб-трафик, поступающий на ваш сайт, и, если он обнаруживает известное аномальное поведение, доступ к нам заблокирован полностью с помощью ответа «403: Запрещено».
Немного отрицательным моментом является то, что MidSecurity имеет десятки наборов правил по умолчанию, которые работают хорошо, но могут вызывать ложные срабатывания. Поэтому, когда вы его реализуете, вам, скорее всего, придется настраивать его в течение первых нескольких недель.
Но в конечном итоге после этого периода «знакомства» у вас будет инструмент, который эвристически защищает ваш сайт от заведомо плохого поведения. И не просто вести список IP-адресов.
Решение, которое работает для меня, - fail2ban, как указано в комментарии @ceejayoz
@iain - это на самом деле дубликат - спасибо, что указали на это.
Я бы не рекомендовал делать это автоматически, я бы рекомендовал вручную заблокировать IP. Единственная автоматизированная система, которую я бы сделал, - это сценарий или что-то подобное, которое анализирует ваши журналы на предмет похожих ошибок.
Чтобы заблокировать IP с помощью ufw sudo ufw deny from <ip address>
с iptables sudo iptables -I INPUT -s <ip address> -j DROP