Файлы cookie Syn Syn всегда включены при включении?
Для ядра Linux 2.6.32, если я установил net.ipv4.tcp_syncookies = 1
будет ли он всегда использоваться или только во время атаки SYN?
Я нашел 2 источника, которые говорят об обратном.
1:
"Однако есть два предупреждения, которые вступают в силу при использовании файлов cookie SYN. Во-первых, сервер ограничен только 8 уникальными значениями MSS, так как это все, что может быть закодировано в 3 бита. Во-вторых, сервер должен отклонить все Параметры TCP (такие как большие окна или временные метки), потому что сервер отбрасывает запись очереди SYN, где в противном случае эта информация будет храниться. [1]
Хотя эти ограничения обязательно приводят к неоптимальному восприятию, клиенты редко замечают их влияние, потому что они применяются только при атаке. В такой ситуации потеря параметров TCP для сохранения соединения обычно считается разумным компромиссом ".
2:
"Недостатком является то, что не все данные TCP могут помещаться в поле 32-битного порядкового номера, поэтому некоторые параметры TCP, необходимые для высокой производительности, могут быть отключены". Это означает, что такие опции, как выборочные ACK и масштабирование окна TCP, не будут работать, если вы включите файлы cookie SYN, даже если ваш сервер в настоящее время не подвергается атаке ".
1 ответ
Второй источник "он означает, что такие опции, как выборочные ACK и масштабирование окна TCP, не будут работать, если вы включите файлы cookie SYN, даже если ваш сервер в данный момент не подвергается атаке" - это просто ерунда, пока "TCP: request_sock_TCP: возможный SYN флуд на порт 53. Отправка куки. Проверьте счетчики SNMP "бывает нет ничего отключенного
Это легко доказать, сравнив свою производительность с iperf3 и включив / отключив "net.ipv4.tcp_sack" и "net.ipv4.tcp_window_scaling", оставив "net.ipv4.tcp_syncookies = 1" включенным
почему вы читаете случайные источники вместо официальных? https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
tcp_syncookies - BOOLEAN Действителен только тогда, когда ядро было скомпилировано с CONFIG_SYN_COOKIES. Отправлять syncookies, когда переполняется очередь невыполненных запросов сокета. Это сделано для предотвращения распространенной атаки SYN по умолчанию. По умолчанию: 1
Note, that syncookies is fallback facility.
It MUST NOT be used to help highly loaded servers to stand
against legal connection rate. If you see SYN flood warnings
in your logs, but investigation shows that they occur
because of overload with legal connections, you should tune
another parameters until this warning disappear.
See: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.
syncookies seriously violate TCP protocol, do not allow
to use TCP extensions, can result in serious degradation
of some services (f.e. SMTP relaying), visible not by you,
but your clients and relays, contacting you. While you see
SYN flood warnings in logs not being really flooded, your server
is seriously misconfigured.