Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Защита от 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?

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

 

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

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

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

 

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

Deny from ип_адресс

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

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

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

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

Опубликовано:
  • Автор

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

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

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

 

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

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

Опубликовано:

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

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

 

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

Опубликовано:
  • Автор

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

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

 

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

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

Опубликовано:

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

 

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

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.