Apache: Какая комбинация модуля защиты от отказа в обслуживании и кеширования лучше всего подходит для сайта аукциона за гроши? [закрыто]

Сайт представляет собой простой грошовый аукцион сайт.

Сайт работает на:

  • MySQL
  • PHP

В любой момент времени:

  • аукцион может иметь от 100 до 2000 одновременных пользователей.
  • у каждого пользователя есть один одиночный «длинный опрос», выполняющийся в фоновом режиме, который обновляет их отображение
  • пользователь может открывать несколько окон, увеличивая количество запросов «длинного опроса» до количества открытых окон

] Можно с уверенностью сказать, что пользователю следует:

  • Никогда не открывать более 3–5 окон
  • Никогда не запрашивать страницы, изображения или вообще выполнять какие-либо запросы на получение слишком часто
  • Никогда не вызывать функцию обновления длинного опроса more чем один раз в секунду за окно (самое большее, но из-за логики, как правило, гораздо меньше)

На основании вышеизложенного, что бы вы рекомендовали для остановки любых атак типа «отказ в обслуживании»?

Пока что, когда дело доходит до отказа из службы, мне известно следующее:

  1. mod_qos
  2. mod_evasive
  3. mod_antiloris

Что бы вы порекомендовали и почему? Или, возможно, необходима комбинация?

С кешированием я уже использую MemCache, но, возможно, я могу включить кеширование на уровне веб-сервера? Цель состоит в том, чтобы снизить нагрузку на сервер до абсолютного минимума, что означает, что даже пользователи, повторно запрашивающие изображения или файлы css, должны быть остановлены?

В идеале я хочу, чтобы пользователь, который нарушает набор правил, которые я создаю, получил 403 запрещенный ответ, который должен иметь специальную страницу, объясняющую ему, почему он временно заблокирован. Это также означает, что если пользователь нарушает эти правила, он не должен быть заблокирован навсегда, а должен быть заблокирован на 10 минут.

Кроме того, одна из моих самых больших проблем - это блокировка по IP.Технически я мог бы создать блок на уровне PHP, но если несколько пользователей имеют одинаковый IP-адрес, как в случае с университетским или офисным блоком, как я могу предотвратить блокировку группы, если один парень нарушает правила? Верно и обратное: что, если одному парню удастся получить тысячи IP-адресов и ударить по серверу так сильно, как он может ... как мне это обнаружить?

Любые советы о том, как это сделать, были бы очень признательны!

-3
задан 2 April 2013 в 21:13
1 ответ

Я бы предложил использовать ModSecurity:

http://www.modsecurity.org/

Вот пример его использования для защиты DOS:

http://blog.cherouvim.com/simple-dos-protection-with-mod_security/

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

1
ответ дан 5 December 2019 в 22:00

Теги

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