Защита от DDOS - всего 2 строки

O
На сайте с 13.08.2008
Offline
26
#11
myhand:
data :)

Именно!


кстати, да - по этой причине - тоже работать не должно. т.е. минимум нужна
еще какая-то проверка на флаги (SYN, etc..).

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


PS: вообще, на картинку системы под 20Mbps досом, фильтрующей _каждый_ входящий
TCP-пакет с данными взглянуть любопытно (top, %sy цифирки).

Да вообще копеечная нагрузка. Только железяка будет стоить порядка 100к евро.

Outsourcenow.ru: оттюним ваш веб-сервер. 100 млн. запросов в сутки - наш размерчик!
M
На сайте с 16.09.2009
Offline
278
#12
Outsourcenow:
Да вообще копеечная нагрузка. Только железяка будет стоить порядка 100к евро.

моя думал, идея в том, что вся эта "защита" со string - крутилась на

обычном выделенном сервере :(

в общем, автору незачет. пока не объяснит принцип работы

второй строки. и сколько дополнительных строк (напр, правил iptables) для этого

использовалось :D

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
N
На сайте с 06.05.2007
Offline
419
#13

Первая строка была

iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT. самый обычный способ ускорения iptables. Ускорения, я говорю. Даже с учетом того что трекер соединений жрет память.

Тотя те кого пугает 20мбит, наверное об этом не слышали.

Кнопка вызова админа ()
M
На сайте с 16.09.2009
Offline
278
#14
netwind:
Первая строка была
iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT. самый обычный способ ускорения iptables. Ускорения, я говорю. Даже с учетом того что трекер соединений жрет память.

а с --state NEW, например, что предлагается делать?

хорошо, а как насчет пакетов с данными, где нужного http-хидера - нет?

сумеете обойти это еще в одну строку?

netwind:
Тотя те кого пугает 20мбит, наверное об этом не слышали.

пугают не 20мбит, а идея сканирования на вхождение строки у _каждого_ входящего

TCP пакета с данными.

N
На сайте с 06.05.2007
Offline
419
#15

Ну может и в 3-4 строки весь комплекс правил был бы. Если Андрейка не приукрасил провокационными заявлениями, то это не Андрейка :)

Да даже если и сканирует каждый пакет - ничего страшного не будет. сервер это ж не циска какая-нибудь с i960 на 100 mhz

M
На сайте с 16.09.2009
Offline
278
#16
netwind:
Первая строка была
iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT. самый обычный способ ускорения iptables.

у вас поиск строки как раз в ESTABLISHED должен происходить :D Так доускоряетесь, nginx с

апачем за файерволом помрут.

netwind:
Ну может и в 3-4 строки весь комплекс правил был бы. Если Андрейка не приукрасил провокационными заявлениями, то это не Андрейка :)

тут недавно пробегало предположение, что под его ником минимум

двое постят.

тем не менее, даже в 3-4 строки это не решить: залез HTTP запрос

в TCP пакет вместе с хидерами - хорошо. Нет - его зарезали.

netwind:

Да даже если и сканирует каждый пакет - ничего страшного не будет. сервер это ж не циска какая-нибудь с i960 на 100 mhz

а вы пробовали?

N
На сайте с 06.05.2007
Offline
419
#17

Ну и пусть зарезали. Лес рубят - щепки летят. И ДДос не вечен.

Нет, я не пробовал string . А вы? Вы уже знали в то время про -m state ? попробовали с ним?

M
На сайте с 16.09.2009
Offline
278
#18
netwind:
Ну и пусть зарезали. Лес рубят - щепки летят.

Ага. Пользователь включил поддержку кукисов - а его все-равно 50/50 банят. Нафиг

такую "защиту" - проще уж --dport 80 -j DROP

Чтобы решение со string было хоть чуть рабочим - как минимум, HTTP-запросы

небольшими должны быть. POST, HTTP keepalive, да и простые GET - будут резаться.

netwind:

Нет, я не пробовал string . А вы?

string пробовал (не для защиты от ddos, но объем фильтруемого трафика

был сопоставим), потому и не верю в такой способ защиты на 20Mbps

проще в nginx проверять кукисы - а потом банить ipset. 20Mbps - вовсе не проблема,

скрытых граблей нет.

netwind:
Вы уже знали в то время про -m state ? попробовали с ним?

-m state тут совершенно непричем - необходимость фильтрации пакетов в

ESTABLISHED для 80-го порта это не отменяет :) Просто -j ACCEPT для них - нельзя, Вам

понятно почему?

N
На сайте с 06.05.2007
Offline
419
#19

Да чтото я не очень думал.

Давайте вернемся назад :

iptables -t nat -A PREROUTING -p tcp --dport 80 -m string --string "this-is-not-bot" --algo kmp -j REDIRECT --to-ports 8080

Если строка вообще была одна, что здесь не так? Учтите, что после однократного срабатывания -j REDIRECT, все остальные пакеты соединения будут перенаправляться на порт 8080, хотите вы этого или нет.

Может, по задумке команда была одна, но вылезла на вторую строчку ?

M
На сайте с 16.09.2009
Offline
278
#20
netwind:

iptables -t nat -A PREROUTING -p tcp --dport 80 -m string --string "this-is-not-bot" --algo kmp -j REDIRECT --to-ports 8080

Если строка вообще была одна, что здесь не так? Учтите, что после однократного срабатывания -j REDIRECT, все остальные пакеты соединения будут перенаправляться на порт 8080, хотите вы этого или нет.

шутите? пришел пакет с syn, там строки нет - мы на него забили?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий