iptables - правила - обьясните
Обьясните как это работает и почему после внесения этих правил, замедляется ответ от сервера к примеру при заходе на сайт идёт как-бы задержка, если убрать, все более менее работает быстро.
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -p tcp ! --syn -m state --state NEW -j DROP
-A INPUT -p icmp -m icmp --icmp-type 5 -j DROP
Ответы (1 шт):
Смотрим man itables-extensions:
limit
This module matches at a limited rate using a token bucket filter. A rule using this extension will match until this limit is reached. It can be used in combination with the LOG target to give limited logging, for example.
xt_limit has no negation support - you will have to use
-m hashlimit ! --hashlimitrate in this case whilst omitting --hashlimit-mode.
--limit rate[/second|/minute|/hour|/day]-- Maximum average matching rate: specified as a number, with an optional/second,/minute,/hour, or/daysuffix; the default is 3/hour.
--limit-burst number-- Maximum initial number of packets to match: this number gets recharged by one every time the limit specified above is not reached, up to this number; the default is 5.
Markdown скопирован из этого ответа.
Более подробная документация тут в limit match extensions.
Там же дан пример и указан график на превдографике на примере борьбы с DDOS акатами, собственно, вполне логичное применение. Если идёт непонятный интенсивный траффик, то он будет резаться по скорости, снизится нагрузка на сервер.
У вас лимиты стоят на icmp (Ping requests) и tcp. Всё что будет идти по udp резаться по скорости не будет.
Флаги FIN, SYN , RST, ACK подробно объяснены здесь:
| Флаг | Значение |
|---|---|
| FIN | Указывает на то, что соединение разрывается. И отправитель, и получатель посылают пакеты FIN для изящного завершения соединения. |
| SYN | Пакеты, которые используются для инициирования соединения. |
| RST | Сигнализируют о разрыве соединения или о том, что служба не принимает запросы. |
| ACK | Пакеты, которые используются для подтверждения того, что пакеты данных были получены, также используются для подтверждения запроса на инициирование и запроса на разрыв соединения. |