IPtables, защита от DoS атаки

1 2345 6
M
На сайте с 01.12.2009
Offline
235
#21
zexis:
Не знал о такой возможности. Спасибо, буду знать.

Вы меньше слушайте zexis :) , состояние ESTABLISHED, происходить после рукопожатие, в tcp.

Не-чё что у UDP отсутствует рукопожатие ? 😂

iopiop - и в UDP, можно не отвечать ;)

Администратор Linux,Freebsd. построения крупных проектов.
M
На сайте с 16.09.2009
Offline
278
#22
madoff:
Вы меньше слушайте zexis :) , состояние ESTABLISHED, происходить после рукопожатие, в tcp.

У модуля conntrack несколько иные представления о "состояниях", весьма отличные привычных вам для TCP. Так что iopiop в первом приближении - прав.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
M
На сайте с 01.12.2009
Offline
235
#23
myhand:
У модуля conntrack несколько иные представления о "состояниях", весьма отличные привычных вам для TCP. Так что iopiop в первом приближении - прав.

Вы ошибаетесь myhand , conntrack - берёт состояние исходя из стека.

M
На сайте с 16.09.2009
Offline
278
#24
madoff:
Вы ошибаетесь myhand , conntrack - берёт состояние исходя из стека.

Я никогда не ошибаюсь, т.к. сперва читаю документацию. Чего и вам советую.

M
На сайте с 01.12.2009
Offline
235
#25
myhand:
Я никогда не ошибаюсь, т.к. сперва читаю документацию. Чего и вам советую.

Значит вы плохо читаете,просмотрите хеш conntrack, и всё станет ясно ;)

UDP согласно протокола не имеет состояние ESTABLISHED

TCP - согласно протокола имеет состояние ESTABLISHED


root@sr ~ # cat /proc/net/nf_conntrack | more
ipv4 2 tcp 6 431996 ESTABLISHED src=37.55.82.236 dst=188.40.82.196 sport=18400 dport=80 packets=138 bytes=7912 src=188.40.82.196 dst=37.55.82.236 sport=80 dport=18400 packets=150 bytes=659
47 [ASSURED] mark=0 secmark=0 use=2
ipv4 2 udp 17 58 src=188.40.82.196 dst=8.8.8.8 sport=51417 dport=53 packets=2 bytes=110 src=8.8.8.8 dst=188.40.82.196 sport=53 dport=51417 packets=2 bytes=178 [ASSURED] mark=0 secmark=0 us
e=2
ipv4 2 tcp 6 94 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39900 dport=8080 packets=5 bytes=893 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39900 packets=5 bytes=781 [ASS URED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 42 TIME_WAIT src=78.153.29.157 dst=188.40.82.196 sport=3432 dport=80 packets=6 bytes=823 src=188.40.82.196 dst=78.153.29.157 sport=80 dport=3432 packets=5 bytes=370 [ASSURED]
mark=0 secmark=0 use=2
ipv4 2 tcp 6 53 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39616 dport=8080 packets=5 bytes=973 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39616 packets=5 bytes=1896 [AS SURED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 431975 ESTABLISHED src=178.122.139.74 dst=188.40.82.196 sport=21277 dport=80 packets=52 bytes=11942 src=188.40.82.196 dst=178.122.139.74 sport=80 dport=21277 packets=27 bytes=
16984 [ASSURED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 57 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39688 dport=8080 packets=5 bytes=391 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39688 packets=5 bytes=501 [ASS URED] mark=0 secmark=0 use=2
ipv4 2 udp 17 58 src=188.40.82.196 dst=8.8.8.8 sport=44290 dport=53 packets=2 bytes=112 src=8.8.8.8 dst=188.40.82.196 sport=53 dport=44290 packets=2 bytes=180 [ASSURED] mark=0 secmark=0 us
e=2
ipv4 2 udp 17 117 src=188.40.82.196 dst=8.8.8.8 sport=48876 dport=53 packets=2 bytes=116 src=8.8.8.8 dst=188.40.82.196 sport=53 dport=48876 packets=2 bytes=184 [ASSURED] mark=0 secmark=0 u
se=2
ipv4 2 tcp 6 405766 ESTABLISHED src=178.218.30.1 dst=188.40.82.196 sport=2739 dport=80 packets=241 bytes=19990 src=188.40.82.196 dst=178.218.30.1 sport=80 dport=2739 packets=281 bytes=1934
39 [ASSURED] mark=0 secmark=0 use=2
ipv4 2 udp 17 58 src=188.40.82.196 dst=8.8.8.8 sport=37726 dport=53 packets=2 bytes=116 src=8.8.8.8 dst=188.40.82.196 sport=53 dport=37726 packets=2 bytes=184 [ASSURED] mark=0 secmark=0 us
e=2
ipv4 2 tcp 6 2 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39362 dport=8080 packets=5 bytes=1048 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39362 packets=5 bytes=1150 [AS SURED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 3 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39364 dport=8080 packets=5 bytes=944 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39364 packets=5 bytes=1303 [ASS URED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 17 TIME_WAIT src=195.58.245.122 dst=188.40.82.196 sport=57128 dport=80 packets=6 bytes=646 src=188.40.82.196 dst=195.58.245.122 sport=80 dport=57128 packets=4 bytes=812 [ASSUR ED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 431991 ESTABLISHED src=213.110.134.121 dst=188.40.82.196 sport=2452 dport=80 packets=6 bytes=1885 src=188.40.82.196 dst=213.110.134.121 sport=80 dport=2452 packets=5 bytes=193
2 [ASSURED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 37 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39539 dport=8080 packets=5 bytes=757 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39539 packets=5 bytes=1115 [AS SURED] mark=0 secmark=0 use=2
ipv4 2 udp 17 178 src=188.40.82.196 dst=8.8.8.8 sport=54319 dport=53 packets=2 bytes=116 src=8.8.8.8 dst=188.40.82.196 sport=53 dport=54319 packets=2 bytes=184 [ASSURED] mark=0 secmark=0 u
se=2
ipv4 2 tcp 6 0 TIME_WAIT src=95.30.72.143 dst=188.40.82.196 sport=58622 dport=80 packets=7 bytes=1892 src=188.40.82.196 dst=95.30.72.143 sport=80 dport=58622 packets=6 bytes=935 [ASSURED]
mark=0 secmark=0 use=2
ipv4 2 tcp 6 57 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=52698 dport=80 packets=7 bytes=418 src=188.40.82.196 dst=188.40.82.196 sport=80 dport=52698 packets=7 bytes=595 [ASSURED ] mark=0 secmark=0 use=2
ipv4 2 tcp 6 92 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39894 dport=8080 packets=5 bytes=757 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39894 packets=5 bytes=1115 [AS SURED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 44 TIME_WAIT src=194.126.180.118 dst=188.40.82.196 sport=1381 dport=80 packets=7 bytes=1599 src=188.40.82.196 dst=194.126.180.118 sport=80 dport=1381 packets=5 bytes=524 [ASSU RED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 36 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39535 dport=8080 packets=5 bytes=757 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39535 packets=5 bytes=1115 [AS SURED] mark=0 secmark=0 use=2
ipv4 2 tcp 6 116 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=40030 dport=8080 packets=5 bytes=757 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=40030 packets=5 bytes=1115 [A SSURED] mark=0 secmark=0 use=2
ipv4 2 udp 17 58 src=188.40.82.196 dst=8.8.8.8 sport=42489 dport=53 packets=2 bytes=106 src=8.8.8.8 dst=188.40.82.196 sport=53 dport=42489 packets=2 bytes=174 [ASSURED] mark=0 secmark=0 us
e=2
ipv4 2 tcp 6 61 TIME_WAIT src=188.40.82.196 dst=188.40.82.196 sport=39759 dport=8080 packets=5 bytes=598 src=188.40.82.196 dst=188.40.82.196 sport=8080 dport=39759 packets=5 bytes=1646 [AS SURED] mark=0 secmark=0 use=2
ipv4 2 udp 17 177 src=188.40.82.196 dst=8.8.8.8 sport=38230 dport=53 packets=2 bytes=106 src=8.8.8.8 dst=188.40.82.196 sport=53 dport=38230 packets=2 bytes=174 [ASSURED] mark=0 secmark=0 u
root@sr ~ #
Z7
На сайте с 19.04.2011
Offline
41
#26
zexis:
Что такое подключенный IP ?
Вы имеете ввиду, что ваш сервер имеет несколько IP ? И для каждого свой лимит?

Для защиты игры есть такой интересный способ. Может пригодится.


iptables -A INPUT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 37800:37900 -m recent --set --name lserv --rsource -j DROP
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 2106 -m recent --rcheck --seconds 15 --name lserv --rsource -j LSCHAIN
iptables -A INPUT -p tcp -m tcp --dport 2106 -m conntrack --ctstate NEW -j DROP
iptables -A LSCHAIN -m recent --remove --name lserv --rsource -j ACCEPT


Смысл в том, что клиент может подключится только в том случае, если он перед этим сделает попытку подключения на определеннй секретный диапазон портов.
Секретный диапазон портов можно менять хитрыми алгоритмами.
Я вам идею дал, если ее развить, то можно постороить для игры защиту.

Насколько мне известно она уже реализована: lameguard.com

PS порткнокинг можно реализовать различными способами. Например апдейтер отстукивает на сервер > идет секретный порт > подключение. От серьезного DDoS'a не поможет.

M
На сайте с 16.09.2009
Offline
278
#27
madoff:
Значит вы плохо читаете,просмотрите хеш conntrack
...
ipv4     2 tcp      6 431996 ESTABLISHED src=37.55.82.236 dst=188.40.82.196 sport=18400 dport=80 packets=138 bytes=7912 src=188.40.82.196 dst=37.55.82.236 sport=80 dport=18400 packets=150 bytes=659

ipv4 2 udp 17 58 src=188.40.82.196 dst=8.8.8.8 sport=51417 dport=53 packets=2 bytes=110 src=8.8.8.8 dst=188.40.82.196 sport=53 dport=51417 packets=2 bytes=178 [ASSURED] mark=0 secmark=0 us
e=2

UDP согласно протокола не имеет состояние ESTABLISHED
TCP - согласно протокола имеет состояние ESTABLISHED

Может проблема в том вы предпочли гадать о формате этого файла? Ну, раз штатную документацию читать не хотите - может наведут на какие идеи существование файликов nf_conntrack_udp_timeout/nf_conntrack_udp_timeout_stream.

Нет? Ну вот вам гугл дал ликбез: http://www.rigacci.org/wiki/lib/exe/fetch.php/doc/appunti/linux/sa/iptables/conntrack.html

M
На сайте с 01.12.2009
Offline
235
#28
myhand:
Может проблема в том вы предпочли гадать о формате этого файла? Ну, раз штатную документацию читать не хотите - может наведут на какие идеи существование файликов nf_conntrack_udp_timeout/nf_conntrack_udp_timeout_stream.

Нет? Ну вот вам гугл дал ликбез: http://www.rigacci.org/wiki/lib/exe/fetch.php/doc/appunti/linux/sa/iptables/conntrack.html

Что и следовало доказать.

UDP

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

P.s Сути это не меняет, в UDP нету ESTABLISHED :) а iptables применяет собственный алгоритм для udp что бы помечать якобы ESTABLISHED ;)

I
На сайте с 23.12.2010
Offline
25
#29
madoff:
P.s Сути это не меняет, в UDP нету ESTABLISHED :) а iptables применяет собственный алгоритм для udp что бы помечать якобы ESTABLISHED ;)

оригинальный вопрос был про сферического коня или про iptables? в терминах iptables у UDP есть состояние ESTABLISHED, к чему коня приплетать?

M
На сайте с 01.12.2009
Offline
235
#30
iopiop:
оригинальный вопрос был про сферического коня или про iptables? в терминах iptables у UDP есть состояние ESTABLISHED, к чему коня приплетать?

Ну да вы не знали о том что в udp нету ESTABLISHED, а так всё ок ;)

Если честно, ещё надо разобраться, какой алгоритм применяет к udp трафику iptables - что он берёт за уникальность ;)

1 2345 6

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