Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Одмин

Защита от ddos

Рекомендованные сообщения

Добрый день!

 

Сегодня смотрю, кто-то решил атаковать с одного IP. Гостей в он-лайне форума стало более 20000! Раз-через-раз форум стал выдавать ошибки в браузере "503 service unavailable...".

В списке гостей форума обнаружил IP (к счастью, атаковали с одного IP), с которого ведется атака. Забанил IP, потом в настройках безопасности поставил проверку IP и браузера в сессиях и уровень гостей в он-лайне упал.

С моим хостингом такая договорённость... на уровне сервера защита ведется хостером, на уровне сайта защиту своих сайтов должен устанавливать пользователь. В моем случае, я защитил форум от атаки с одного айпи. А если бы атака на форум велась с разных айпи, что делать? Может быть есть какие-то решения? Конечно, я понимаю, при серьезной атаке на форум (а следовательно, и на сервер) с разных айпи, я могу обратиться к хостеру и попросить устранить проблему сообща, но всё же может быть есть решение на уровне форума?

Поделиться сообщением


Ссылка на сообщение

Анализировать логи и забанить ип-адреса с которых идут аномально частые обращения. Как правило это делается специальным скриптом, который в определенным интервале времени анализирует логи обращений, проверяет если адреса не принадлежат ПС и, если частота обращений превышает определенное количество ип банится через htaccess или вносятся сразу в iptables.

Также можно посмотреть к каким странам принадлежат атакующие ИП и забанить всю страну, например Китай, Тайвань, Африка и тд, т.е. оттуда откуда у вашего ресурса маловероятно может быть целевая аудитория.

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

 

В данном случае видим что ИП один а сессии очень много, в ввиду того, что бот не принимает кукисов. Отфильтровать такие ип в сессиях форума можно с помощью запроса:

 

SELECT ip_address, COUNT(*) as count, member_id, browser FROM sessions GROUP BY ip_address ORDER BY count DESC

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

 

Если сервер выделенный/виртуальный можно ставить ограничения на уровне web-сервера для одновременного подключения в секунду, или общее количество установленных соединений. На nginx это limit_conn_module.

 

Помогите с защитой от DDoS

Для совсем запущенных случаях JavaScript не дружит с IPB?

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Если сервер выделенный/виртуальный можно ставить ограничения на уровне web-сервера для одновременного подключения в секунду, или общее количество установленных соединений. На nginx это limit_conn_module.
Скажите, а можно ли подобное ограничение поставить на уровне форума через php.ini, и в какой директиве задается ограничение? И вот интересный вопрос, а каким образом происходит ограничение? Сервер перестает принимать запросы от с повторных ипов, с которых идет флуд?

 

ип банится через htaccess или вносится сразу в iptables
Подскажите, как это реализовать...

Поделиться сообщением


Ссылка на сообщение

Скажите, а можно ли подобное ограничение поставить на уровне форума через php.ini

php.ini это конфигурационный файл php, а здесь речь идет о настройках веб сервера, и конкретно про nginx. Наверное и на апаче есть аналогичные модули. Как происходит блокировка или ограничение нужно детальнее прочитать в документации конкретно к этому модулю. Вообще желательно хорошо изучить настройку подобных модулей, дабы не перзабавнить половину пользователей. limit_conn насколько я знаю ограничивает количество подключений или в целом, или в интервале времени.

 

Подскажите, как это реализовать...

Deny from ип_адресс

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Deny from ип_адресс
Скажите, а в чём принципиальная разница между "Deny from ип_адресс" и стандартным функционалом форума (бан айпи адреса через АЦ)?

Поделиться сообщением


Ссылка на сообщение

Разница довольно принципиальна.

В первом случае вы баните на уровне веб-сервера через конфигурационный файл htaccess.

Во втором случае на уровне форума, для которого тратятся ресурсы на запуск пхп, подключения к базе данных, обработка массива данных пользователя и тд. Если обращения идут с целю отказа в обслуживании сервера, то большой принципиальной разницы нету - запуск форума все равно отработает. Немного увеличив число обращений можно добиться того же эффекта, что сервер начнет жрать ресурсы и отказывать в обслуживание. Концепция эффективной защиты от ddos'а состоит в блокировке как можно на более высоком уровне. В случае бана на уровне htaccess, веб-сервер сам отрубает запрос и не запускает php (форум) для его обработки. Блокировка на уровне iptables еще эффективнее, в таком случае не запускается веб-сервер для обработки запроса, а отрубается на уровне ОС, и тд.

Поделиться сообщением


Ссылка на сообщение
08/09/14 14:36 (изменено)

siv1987, спасибо! Но, вы же сами понимаете, если пойдет атака на сервер с 1000 разных айпи, то это не решит моментально создавшуюся проблему. А пока будем решать, хостер забанит аккаунт за то, что мы своим действием (или бездействием) положили сервер.

Поэтому, хочется что-то более функциональное и продуманное.

Я тут накидал немного идей, может кто сможет воплотить и дополнить (усовершенствовать), критика и помидоры так же приветствуются:

 

Итак, суть программы будет заключаться в следующем... В инете достаем базу диапазонов айпишников Гугла, Яндекса, Майла и других поисковиков, которым мы хотим дать беспрепятственный доступ к нашему форуму. Ну и создаем программу, логика которой будет состоять в том, чтобы банить любые айпи на форуме (и лишать их всякой активности в отношении обращений к БД, например, на 20 секунд), имеющих активность более 5-х запросов с одного IP в секунду (кроме указанных выше IP поисковиков и иных статичных нужных нам айпи).

Изменено пользователем Асид

Поделиться сообщением


Ссылка на сообщение

Но, вы же сами понимаете, если пойдет атака на сервер с 1000 разных айпи, то это не решит моментально создавшуюся проблему.

Смотря что "это" у вас будет.

 

Все анти-ddos скрипты работают примерно по этому принципу. В сети их должно быть полно. Предварительно чем блокировать можно дать решить капчу, и уменьшить процент срабатываний.

Поделиться сообщением


Ссылка на сообщение
08/10/14 14:43 (изменено)

Перерыл кучу разных сайтов, в итоге решил остановиться на этом.

Как считаете, стоящее решение?

 

И ещё... почему-то при загрузке файлов на форум (проверял на картинках) через расширенную форму, пишет: "Возникла ошибка при загрузке файла". С чем это может быть связано?

Изменено пользователем Асид

Поделиться сообщением


Ссылка на сообщение

Наверное отсутсвует формат для этого прикрепляемого файла.

 

Ну отбить ботов от форума поможет, а дальше зависит от мощности сервера и типа ддос. Ставить на рабочем форуме, если нет никакой атаки лучше не следует. Могут быть проблемы у пс ботов и пользователей которые отключили кукисы.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...