Перебор паролей

WoLFiks

Не курю...
Здравствуйте!

Случилось страшное ) На форуме пытаются подобрать пароли к администраторским никам. Простым перебором. Сложность в том, что присылают 100500 запросов и сервер, отдавая ответ "логин/пароль не верны" этими самыми ответами забивает на 100% весь исходящий канал. При неправильных 3х попытках форум блокирует авторизацию для логина, но суть даже не в методах защиты от перебора (блокировать на 30 мин, и т.д. и т.д.), а в том, что входящий трафик на 50% забит этими запросами, а исходящий забит ответами сервера "неверно" или "авторизация для данного логина запрещена на 60 минут" и т.д. Какой-то логики в IP нет, шлют через всевозможные прокси...

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

stalxed

Новичок
Врубите на каждый вход каптчу. Тогда каждая тысяча запросов(если каптча графическая) для них уже будет стоить 1-3 бакса, плюс каждый ответ на капчу занимает около 5 секунд на том же antigate.
Так же советую поискать JavaScript капчу, так как скорее всего брутят используя чистый http протокол(например используя курл), а JavaScript капчу даже браузерным спамером(HumanEmulator, ZenPoster) фиг разгадаешь.
 

WoLFiks

Не курю...
Врубите на каждый вход каптчу. Тогда каждая тысяча запросов(если каптча графическая) для них уже будет стоить 1-3 бакса, плюс каждый ответ на капчу занимает около 5 секунд на том же antigate.
Так же советую поискать JavaScript капчу, так как скорее всего брутят используя чистый http протокол(например используя курл), а JavaScript капчу даже браузерным спамером(HumanEmulator, ZenPoster) фиг разгадаешь.
А в чем особый смысл? При анализе капчи, при несовпадении серверу нужно будет отдать HTML "вы ошиблись при вводе капчи, попробуйте еще раз"... И опять же весь канал будет забит..
 

WoLFiks

Не курю...
Вот подумал, а случайно нельзя смастерить что-то типа такого:
При post запросе на определенный url за 5 сек с одного IP банить этот IP не доходя до обработки запроса и не отдавать вообще никакой ответ???
(правда скорее тогда это будет к разделу Хостинг, colocation, VPS, VDS, Nginx, Apache)
 

WMix

герр M:)ller
Партнер клуба
Капча чтоб пароли не подбирали
 

WoLFiks

Не курю...
Капча чтоб пароли не подбирали
Это в дальнейшем можно сделать, чтобы не пытались...
А вопрос про сейчас. Я понимаю так, у них там на автомате уже заряжено все. Пока цикл не закончится - не прекратится. Форум пока пришлось прикрыть, открываю, каналы забивает сразу. И на текущий момент получается ждать чтоли, пока не прекратят слать? )
 

WoLFiks

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

WMix

герр M:)ller
Партнер клуба
Ну да, сидят едят гамбургеры и пьют папсиколу. Потерпи уже... Отключи на пару часиков..
 

ksnk

прохожий
Форум закрыт уже сутки.
Может - это и было целью атаки?

А вот вариант - форму авторизации "сместить" на другой адрес по 302 или 307 редиректу. Простая настройка в конфигурации nginx-htaccess. Если курл тупой - пусть разоряться на пепсиколе. Зато если курл не тупой - надо будет думать дальше...
 

MiksIr

miksir@home:~$
Вот подумал, а случайно нельзя смастерить что-то типа такого:
При post запросе на определенный url за 5 сек с одного IP банить этот IP не доходя до обработки запроса и не отдавать вообще никакой ответ???
(правда скорее тогда это будет к разделу Хостинг, colocation, VPS, VDS, Nginx, Apache)
Если у вас сервер/VPS, то так и нужно делать, в чем проблема то. Периодически читаем лог, считаем и добавляем правило в iptables.
 

stalxed

Новичок
Может просто поставить AntiDdos типа cloudflare? Он высвечивает при первом заходе JavaScript страницу, врятли бот её пройдет.... на то и рассчитано.
 

MiksIr

miksir@home:~$
Cloudflare тоже ничо решение, но с ними есть одна проблема - доступ из России. Некоторые IP их в запретном списке и некоторые провайдеры фильтруют по IP.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а чего никто не начинает с limit_conn?

для форума, у которого _канал_, не cpu, забивается от брутфорса в форму логина, значит, сервер стоит под столом, в самый раз :)
 

Активист

Активист
Команда форума
Покажите netstat -na (куда-нибудь на pasterbin). У вас отказ (dDos ) на уровне вебсервера? Есть у вас есть рут, то лучше всего установить fail2ban (пакет , защита от перебора пароля). Его можно настроить на анализ собственных логов. Т.е. вы пишите на диск неудачные логины (IP, дата/время, сообщение) и учите fail2ban анализировать Ваш лог.

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

PS:Перед этим НАСТОЯТЕЛЬНО рекомендую в iptables добавить строку, что бы с ваших IP на 22 порт всегда был allow, а то забаните себя еще.
PS2: PHP умеет логировать в syslogd и auth.log (который уже умеет обрабатывать fail2ban). Главное, правильно сделать сообщения в лог.
 

Активист

Активист
Команда форума
а чего никто не начинает с limit_conn?

для форума, у которого _канал_, не cpu, забивается от брутфорса в форму логина, значит, сервер стоит под столом, в самый раз :)
юзеры за nat'ом могут пострадать. вообще, странно, что канал просел на логинах, что там за канал такой.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
от брутфорса спасет даже лимит на 70 соединений в минуту :)
 

Активист

Активист
Команда форума
Советую еще закрыть все порты, в т.ч. исходящий траф, кроме нужных. У китайцев там вирус под линукс ходит, инфицирует всякие сервера. Еще есть прикол, дидосят через открытый 53 порт по UDP NAMED'а по рекрсивным запросам, проверьте, нет ли у вас разрешения на рекурсивные запросы. Кроме того, проверьте, нет ли червя. Вообще, трафик можно whireshark'ом просканить, запустив через проброс иксов на свой комп.
 

Активист

Активист
Команда форума
от брутфорса спасет даже лимит на 70 соединений в минуту :)
маловато не? у него ж там с разных ипишников идет.

У меня от сина вот такое правило спасает
Код:
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j SYN_FLOOD
-A SYN_FLOOD -m limit --limit 500/sec --limit-burst 1500 -j RETURN 
-A SYN_FLOOD -j DROP
 
Сверху