Artem
#whois - Работаю в sports.ru - front-end разработчик - Москва
Rinat
ку, добрый день)) кто как защищается от slowhttptest в nginx ?
Rinat
понятно есть limit_conn_zone но вопрос еще способы ?
Rinat
А зачем?
точнее даже от slow http
Alexander 🐕
В nginx это какой смысл делать?
Alexander 🐕
Вектор атаки какой?
Rinat
атака на dos
Rinat
легко проводится данной утилитой
Alexander 🐕
атака на dos
Опиши ее плз
Alexander 🐕
Эту атаку
Алик Сережевич
Alexander 🐕
Я тебе дам домен - давай, проведи ее этой утилитой
Rinat
ну если серьезный хостинг там все настроено
Rinat
если просто свой сервер, то давай
Rinat
проверимс
Alexander 🐕
Алик Сережевич
А что такое slow http? расскажите плз
Rinat
давай проверим
Rinat
ахаха)) я думаю не получится , ну давай
Alexander 🐕
ахаха)) я думаю не получится , ну давай
Я тоже думаю, что не получится
Alexander 🐕
Но, еще раз - никаких лимитов там нет
Alexander 🐕
Как работает данная атака?
Daniel
конечно, есть
Daniel
есть количество воркеров, и количество коннектов на воркер
Alexander 🐕
конечно, есть
Я их старательно выпиливал
Алик Сережевич
Как работает данная атака?
А что это вообще такое?
Rinat
ща придут тебе расскажут ) про ограничение коннекшенов на nginx
Daniel
если все эти сокеты занять - будет dos
Alexander 🐕
Рокет?
Сомпута
Rinat
у тебя там выкручено сильно
Александр
Найс
Rinat
поэтому с моего серва не потянет
Alexander 🐕
если все эти сокеты занять - будет dos
Ну - если так сделать, то да
Rinat
ооо на 8к упало
Rinat
все упал твой сайт
Daniel
но отэтой херни нет защиты и не может быть
Alexander 🐕
То есть - дудос так устроить вообще не вопрос
Rinat
в логах 500 ошибку ищи
Vladimir
все упал твой сайт
у меня его сайт по прежнему открывается )
Rinat
ну там 2 сек было
Daniel
в логах 500 ошибку ищи
и адрес атакера
Rinat
да и адреса
Daniel
мне не очень интересно, если честно
Daniel
потому как мне очевидно, как это работает
Alexander 🐕
Но ты же понимаешь - если это просто DOS, то мы тебя просто по адресу забаним
Rinat
ну дык меня интересует защита
Rinat
а не атак
Alexander 🐕
А если у тебя 5000 разных адресов, мы хрен что сделаем
Rinat
это и так понятно
Alexander 🐕
Ну вот - хорошо написанный бот гарантированно сайт положит
Rinat
когда выкручено сильно все, нужен посерьезнее канал или несколько адресов
Alexander 🐕
nginx не предназначен для детектирования таких ситуаций
Rinat
пишут по ip + юзер агент+ хедер можно ограничить коннекшены,
Daniel
можно
Rinat
сейчас так сделал у себя, но гы кривой способ
Alexander 🐕
Тупо потому что тяжело отличить легитимного от нелегитимного
Anonymous
nginx не предназначен для детектирования таких ситуаций
а если конкурирующая фирма вам захочет такой подарок сделать?
Alexander 🐕
Перебьем, но вручную
Anonymous
постоянно делают
как мне везло на тендерах, ни разу такого не было
Alexander 🐕
А вопрос был - как гасить не вручную
Alexander 🐕
Сейчас я отвечу, как
Rinat
короче никто ничего не делает, просто выставляет на максимум коннекшены, и ждут когда лимиты закончатся
Alexander 🐕
Так и вот
Alexander 🐕
Как это делают пацаны
Alexander 🐕
Тебе понадобится OpenResty или любая другая сборка с mod_lua
Alexander 🐕
Тебе понадобится in-memory storage
Alexander 🐕
Например, Tarantool
Alexander 🐕
И тебе понадобится баезовский классификатор
Aleksey
Юзал кто nginx под соусом openresty? Интересует, как через lua задать переменную в nginx'e? ну вроде обычного set $var value только value подставить из результата отработки lua сценария
Alexander 🐕
Написанный заботливыми руками твоей девушки