Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...

Recommended Posts

Добрый день!

 

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


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

 

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

Share this post


Link to post
Share on other sites

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

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

 

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

Deny from ип_адресс

  • Upvote 1

Share this post


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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

Edited by Асид

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

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

Edited by Асид

Share this post


Link to post
Share on other sites

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

 

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

  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...