Назад | Перейти на главную страницу

предотвратить атаки ddos ​​с помощью nginx и apache (и haproxy?)

Иногда на моем сервере происходят ddos-атаки. Я пытаюсь предотвратить это. Я использую Nginx для обслуживания статического контента и в качестве обратного прокси и Apache для обслуживания приложений php.

Когда начинается атака, у меня есть много (например, 3000 IP-адресов), которые хотят получить доступ к моей странице одновременно, но есть только один IP-адрес за 4-5 секунд. Но если злоумышленников много, у меня все равно 400 запросов в секунду, но с другого IP. Поэтому у меня проблема с его блокировкой, потому что ограничение скорости IP-соединения в Nginx в этой ситуации не работает. У меня на этом сервере около 100 сайтов. Во время атаки Nginx работает нормально, но Apache полностью мертв, Nginx не может подключиться к восходящему потоку не только для атакованного сайта, но и для всех сайтов на сервере. У меня нет проблем с ситуацией, что во время атаки атакованный сайт не работает, но я хочу, чтобы другие сайты работали без последствий.

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

Не могли бы вы мне чем-нибудь помочь? Думаю использовать haproxy перед Nginx. Я бы добавил по одному бэкэнду для каждого сайта с ограничением одновременных подключений примерно до 40 подключений. Как вы думаете, хорошая ли это идея? А может у вас есть другие идеи, как предотвратить подобные атаки?

В Apache посмотрите на снижение значения для MaxRequestWorkers (или MaxClients в зависимости от вашей версии Apache). Как только значение станет достаточно низким, Apache не должен упасть, потому что он ограничен ответом только на столько запросов, сколько может обработать. Дополнительные запросы будут поставлены в очередь (до предела, описанного в связанных документах).

Для общей проблемы см. Я под DDoS. Что я могу сделать?.

DDOS никогда не бывает простой проблемой, но похоже, что типу низкоуровневой атаки, с которой вы сталкиваетесь, определенно поможет средство организации очередей в HAProxy, то есть не наводняйте сервер Apache слишком большим количеством запросов (maxconns).

Вы также можете попытаться расставить приоритеты для существующих клиентов с помощью файлов cookie, как это делают некоторые загруженные сайты. Черная пятница защита.