Можно ли обслуживать определенные страницы на основе IP-адреса?

Я был целью атаки методом перебора на двух сайтах WordPress, которыми я владею. Злоумышленник использует старый добрый XML-RPC, чтобы усилить взлом пароля методом перебора. К счастью, у нас есть очень хорошо сгенерированные пароли, поэтому я очень сомневаюсь, что он когда-нибудь добьется чего-нибудь.

Я ' я просто использовал iptables для блокировки его запросов всякий раз, когда он снова появляется (всегда от того же поставщика виртуального облака), но я бы предпочел изменить сервер так, чтобы всякий раз, когда его IP-адрес запрашивал любую страницу, он получал ответ, говорящий ему, чтобы он получил жизнь. Большинство запросов являются POST-сообщениями, поэтому в идеале я хотел бы просто изменить заголовок ответа, включив в него что-то вроде «Удачи в следующий раз!» или что-то столь же удовлетворительное.

Возможно ли это? Я далек от эксперта по Apache, поэтому не уверен, насколько сложно это будет реализовать. Но даже если это займет у меня часы, удовлетворение будет бесценным.

Для справки, я использую Ubuntu 16.04.2 LTS, а Apache 2.4.18 размещает Wordpress 4.7.3.

8
задан 28 March 2017 в 10:56
4 ответа

Просто установите fail2ban с соответствующей тюрьмой и покончите с этим. Не утруждайтесь давать пользовательский ответ, так как, скорее всего, его никогда не увидят.

.
25
ответ дан 2 December 2019 в 22:40

Это очень просто с ModSecurity, который является модулем WAF стороннего производителя для Apache. Хотя это и подразумевает изучение синтаксиса языка правил.

Вы также можете использовать ModSecurity, чтобы просто разорвать соединение, а не отвечать вообще.

Сказав, что установка ModSecurity только для этого, когда, как подсказывали другие, скорее всего, ответы будут проигнорированы, вы вполне можете быть переутомлены.

.
3
ответ дан 2 December 2019 в 22:40

Есть возможность, и мы сделали это достаточно много, чтобы обратить вспять возможные атаки. Используйте iptables для перенаправления облачного провайдера (диапазон адресов) на другой порт - и там атакующий получит ответ, даже в простых заголовках.

В Apache можно модифицировать заголовки на примере:

Header set GetOut "Better luck next time!"
5
ответ дан 2 December 2019 в 22:40

Я бы выбрал fail2ban и сбросил запросы из известных мест злоупотреблений. И если вы чувствуете, что злоумышленник не виноват, сообщайте об атаках на его адрес электронной почты для злоупотреблений.

Если вы хотите потратить время на то, чтобы сделать что-то, что замедлит атакующего, вы можете попробовать сделать брезент . Сначала вы, конечно, должны знать, откуда исходят атаки. Затем вы можете использовать apache для перенаправления запроса из ip (range?) на определенный скрипт. Это может помочь, хотя я сам еще не пробовал. Тогда просто реализуйте скрипт, который, например, распечатывает точку (или что-то из /dev/null) каждые 15 секунд, чтобы держать соединение злоумышленника открытым бесконечно.

Так как злоумышленник, скорее всего, использует скрипты для атаки на ваш сайт, то может потребоваться время, чтобы заметить, что атаки застопорились, так как все соединения, кажется, активны, таймаут не будет, и запрос не будет отклонен на месте.

Проблема в том, что вы посвящаете свое время и ресурсы чему-то, что, вероятно, не принесет такой пользы, как более важная задача: обеспечение безопасности вашего логина. Сложно атаковать, когда вы не знаете, где атаковать. Рассмотрим некоторые из следующих моментов:

  • ограничьте доступ к странице входа (только ваша интрасеть? ip диапазон? vpn? other?).
  • добавьте reCaptcha или другой проверочный вопрос для входа.
  • используйте многофакторную аутентификацию.
  • спрячьте вашу страницу входа. Если возможно, не ссылайте на нее с главной страницы и не используйте /логин или другое очевидное место.
2
ответ дан 2 December 2019 в 22:40

Теги

Похожие вопросы