Pull to refresh

Comments 58

UFO just landed and posted this here
UFO just landed and posted this here
Достаточно эффективно.
Наиболее эффективен данный метод против syn flood атак, так как они как раз создают кучу открытых соединений.
Если поиграть со лимитом соединений на ip то большинство досеров отсеиваются достаточно быстро.
Для http я советовал бы еще потюнить в iptables параметры limit.
>Для http я советовал бы еще потюнить в iptables параметры limit.
можно поподробнее?
Вот очень хорошее объяснение принципов работы этого модуля
Спрашивайте если что не понятно
Наиболее эффективен данный метод против syn flood атак


а если syn flood + ip forge — не пришей кобыле хвост, можно хоть с одного адреса накидать
я имел в виду случай, если не используются syn cookies
UFO just landed and posted this here
Судя по описанию он уже 3 года не развивается, да и информация для анализа там берется от роутера.
Знаю, что многие не доверяют журналу Хакер, однако раз тема есть, вот ( www.xakep.ru/magazine/xa/081/066/1.asp ) небольшая статейка, думаю новичкам будет интересно.
UFO just landed and posted this here
Конечно могут.
Только такие проекты на которые целят столь серьезные армии и защищаются методами другого уровня.
Данный скрипт не панацея, а возможность отсечь большинство атак, которых ботов не слишком много.
UFO just landed and posted this here
Зависит от конкретного случая.
Скрипт запускается каждую минуту и смотрит количество текущих открытых соединений, так что возможно при серьезной атаке сил не хватит даже чтобы запуститься, и только после этого банит. Но это довольно экзотический вариант.
А еще поисковые боты будут отсекаться что не есть гуд
UFO just landed and posted this here
от банального пинга по айпи ничего не спасает, последни ддосы на нас именно так и были реализованы(ложится узкий канал. это если хостер не мегакрут)…
провайдер тупо отключал наш айпи и привет.
либо надо восходящему провайдеру применять меры, но отчего то они ничего не принимали…
наверно потому что хостер не мегакрут
UFO just landed and posted this here
При чистейшем http- флуде при наличии какого-то отклонения в запрашиваемом URL (к примеру запрос вида «GET /lskdjflkdj.html») гораздо легче серверу выгребать инфу с помощью знакомого всем инструмента tail:

tail -1000 /var/log/nginx-access.log | grep «lskdjflkdj.html» | cut -f1 -d« „ |sort -u

Получаем список IP. Далее лучше по моему мнению записать все это хозяйство в какую нибудь базу, например тот же niggerz, НО, нужно проверить а нет ли в ней дубликатов (perl меня тут спасает), проверив пишем в базу, и в очищенный файлик к примеру ddos. Далее все просто, читаем файлик ddos где у нас флудные, но не забаненные IP, читаем номер правила предыдущего добавленного правила в фаервол из файлика rules (предполагается наличие такового), и закрываем новую партию, обновляем файлик с номером правила, чистим файлик ddos. Все. ~ 3000 — 4000 ботов выдержать с такой защитой можно, запуская такое решение по крону раз в минуту.

Сейчас постараюсь выложить готовое решение на perl под freeBSD (линукса у меня нету)

Это слабое решение. Цель-максимум: не допустить ни одного вредоносного запроса вообще.

Большой ботнет на несколько десятков тысяч узлов из какой-нибудь Латинской Америки плавно просыпается когда у нас настаёт ночь, то, что вы заблокируете каждый его адрес после одного обращения не избавит вас от проблем.
> ~ 3000 — 4000 ботов выдержать с такой защитой можно, запуская такое решение по крону раз в минуту.

Я не вел речи о большом ботнете. Максимум что мне доводилось отражать это 10 000 IP. Верхнее решение помогало мне 7 раз. Да, был такой ребяческий флуд. Начиная с 7-8 тысячи любое решение размещенное на самом атакуемом сервере теряет свою эффективность на 99%. Вот когда начинаешь задумываться над наличием цисок и другого железа установленного перед атакуемым сервером
Циска без профессионального человеческого вмешательства — металлолом, поверьте.

Начиная с 7-8 тысячи любое решение размещенное на самом атакуемом сервере теряет свою эффективность на 99%


Извините, но это заблуждение. Есть решения которые отбивают хоть 20, хоть 30 тысяч ботов прямо с фронтенда без какого-либо дополнительного оборудования. Всё, конечно, зависит от того, удаётся ли получить сигнатуру атаки или нет. В большинстве случаев это возможно.
Циска без профессионального человеческого вмешательства — металлолом, поверьте.


Знаю, проходили.

Можно продолжить эту цепочку:
tail -1000 /var/log/nginx-access.log | grep «lskdjflkdj.html» | cut -f1 -d « » -f 1 | sort | uniq -c | grep -Eo «([2-9]|[1-9][0-9])+ ([0-9.]*)» | cut -d « » -f2

Порог срабатывания задается строкой
grep -Eo «([2-9]|[1-9][0-9])+ [0-9.]+»
В данном случае все, что больше 1

Все, что больше 9:
grep -Eo «[1-9][0-9]+ [0-9.]+»

Все, что больше 99:
grep -Eo «[1-9][0-9][0-9]+ [0-9.]+»
Вот: ddos-http.pl.txt. Решение это — сборное, что то в инете нарыл, что то сам дописал. Факт один — работает.
UFO just landed and posted this here
По существу. Но штука в том, что толковые решения в этой области редко кто будет обсуждать публично: у стен есть уши :-)

И покупать сервера специально под атаки мало кто, конечно, станет. В большинстве случаев серверов бывает ровно столько, сколько необходимо в текущий момент времени + 20-40% запаса. Таков бизнес, мало кто готов к скачку нагрузки в 100 в течение суток.
А одно из очень полезных вещей в цисках — автоматическое syn-проксирование + обучаемость. Остальное навёрстывается, конечно, самостоятельной аналитикой трафика и принятием правил.
Вы правы, машинам после некоторого порога становится пофиг, а вот ботнеты при этом перестают работать на «отказ» и начинают слать спам… Вот его тоже надо каким-то образом отсеивать…
>вообще каждая защита, также как и каждая отака это творческий процесс, и каждая сторона стремится изъебнуться по свойму.
Два умных программиста пытаются показать друг другу кто кого умнее =)
Я бы предложил вместо отдельного правила на каждый IP адрес с deny
пихать всё в table который нужно блокировать
deny ip from table(1) to any
Не открывается ваше решение :(
очень просто да и безопасность поднимет, спасибо.
Если стоит nginx как фронтэнд можно использовать
клнструкцию
limit_zone one $binary_remote_addr 10m;
для ограничения кол-ва соединений с 1 IP.
Опять же я заметил что при connect атаках
зачастую используется 1) либо феэйк UserAgent
вида Netscape/4.7 либо 2) либо толпа рандомных.
Оба варианта можно отсечь ограничив на время
атаки доступ только по основным UserAgent, которые
вы предварительно вытянули из awstats напрмер.
Закрыть можно темже nginx.
Ну а ксли DDOS уж совсем по-взрослому, то тут
уж надо 'puzzle solving' механизмы
www.google.ca/search? hl=en&safe=off&q=ddos+puzzle+solving&btnG=Search&meta=
и BGP с разных точек на земле.

Ребячество: большой ботнет будет ломить по одному разу в пять минут с каждого узла, чем создаст достаточно веселья
Не ребячество — puzzle solving + BGP с разных позволял выживать при 3GB ddos.
Почитайте первые ссылки из поиска — народ и при 10GB выживал используя эти
меры.
я про количество соединений с одного ip. Прошу прощения, не уточнил
И подключение у нас всего-то 100 мегабит, куда нам убогим :-)
«Если стоит nginx как фронтэнд можно использовать
клнструкцию
limit_zone one $binary_remote_addr 10m;
для ограничения кол-ва соединений с 1 IP.»

К сожалению это типичный хабракомментарий.
=(
Тоскливо.
Какая новость (1 строка -> netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n), такой и коментарий,
все соразмерно.
Вот я и говорю соразмерно =)
Одни пишет «новость» не о чем. Скриптик откопал… netstat -ntu блин… =)) Нахрена повышать энтропию скриптами не о чем… если в линуксе (а автор видими о нем пишет ибо -ntu в BSD юникссокты покажет) можно ядром и модулями ограничить колличество соединений, а не баны придумывать.

Второй ему отвечает в стиле — я тут тоже звон слышал… тока не понимаю о чем… Но приведу строчку из конфига nginx, о котором тоже слышал… строчка красивая… но к делу не относится — она память выделяет… =)

Давай поминусуй… пионэр =)

UFO just landed and posted this here
Вынужден категорически не согласиться с Вами:

DoS-атака (от англ. Denial of Service — «отказ в обслуживании») и DDoS-атака (Distributed Denial of Service — «распределённый отказ обслуживания») — это разновидности атак злоумышленника на компьютерные системы. Целью этих атак является создание таких условий, при которых легитимные (правомерные) пользователи системы не могут получить доступ к предоставляемым системой ресурсам, либо этот доступ затруднён.


Страницы сайта есть предоставляемый системой ресурс. А юзать cisco для отражения атаки в 200 IP — вот это есть низкий уровень. Задачи понимаете разные у скриптов и железа, хотя цель одна.
UFO just landed and posted this here
В данном случае речь идет не о веб скриптах, которые некоторые ставят себе на страницы, что бы защищатся от DDos`a
В данном случае речь идет не о веб скриптах, которые некоторые ставят себе на страницы, что бы защищатся от DDos`a
Хорошая идея.
Можно защитить себя от ддоса, таким способом, но вот только закрыть все дыры безопасности врядли получится, когда залатываете одно, даже не подозреваете что можете открыть что то другое.
конечно какой-то толк есть от этого, но он минимальный. Обычно при дос атаке главная цель забить канал, а уж потом сделать так чтоб сервер не мог ответить на запрос. Плюс мало представляю, что кто-то с одного IP будет досить… Плюс надо очень продумывать над кодом, что бы на начальном этапе инициализации не делались ни какие сложные вычесления или работа с DB. Ну и конечно немного спасет циски перед сервером, но опять же это только защитит от детский атак. Крупные атаки можно наверно только с помощью провайдера отразить, и то если он адекватный…
сам юзаю lighttpd, там для таких вещей есть mod_evasive с 1м параметром evasive.max-conns-per-ip = XX и никаких скриптов не надо;) хотя надо проверить срабатывает ли он при syn флуде
Sign up to leave a comment.

Articles