Os cookies TCP SYN estão sempre ativados quando ativados?

Os cookies TCP SYN estão sempre ativados quando ativados?

Para o kernel Linux 2.6.32, se eu definir, net.ipv4.tcp_syncookies = 1isso será sempre usado ou apenas durante um ataque de inundação SYN?

Encontrei 2 fontes que dizem o contrário.

1:

"Existem, no entanto, duas advertências que entram em vigor quando os cookies SYN estão em uso. Em primeiro lugar, o servidor está limitado a apenas 8 valores MSS exclusivos, pois isso é tudo o que pode ser codificado em 3 bits. Em segundo lugar, o servidor deve rejeitar todos Opções TCP (como janelas grandes ou carimbos de data/hora), porque o servidor descarta a entrada da fila SYN onde essas informações seriam armazenadas [1].

Embora estas restrições conduzam necessariamente a uma experiência abaixo do ideal, o seu efeito raramente é notado pelos clientes porque só são aplicadas quando estão sob ataque. Em tal situação, a perda das opções TCP para salvar a conexão é geralmente considerada um compromisso razoável."

2:

"A desvantagem é que nem todos os dados TCP cabem no campo Número de sequência de 32 bits, portanto, algumas opções de TCP necessárias para alto desempenho podem ser desativadas." Isso significa que opções como ACKs seletivos e TCP Window Scaling não funcionarão se você ativar os cookies SYN, mesmo que seu servidor não esteja sob ataque no momento."

Responder1

A segunda fonte

"isso significa que opções como ACKs seletivos e TCP Window Scaling não funcionarão se você ativar os cookies SYN, mesmo que seu servidor não esteja sob ataque no momento"

é simplesmente besteira, até

"TCP: request_sock_TCP: Possível inundação de SYN na porta 53. Envio de cookies. Verifique os contadores SNMP"

acontece que não há nada desativado.

Isso é facilmente comprovado comparando seu desempenho com o iperf3 e ativando/desativando "net.ipv4.tcp_sack" e "net.ipv4.tcp_window_scaling" enquanto mantém "net.ipv4.tcp_syncookies = 1" ativado.

Por que você lê fontes aleatórias em vez das oficiais? https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

tcp_syncookies - BOOLEAN
    Only valid when the kernel was compiled with CONFIG_SYN_COOKIES
    Send out syncookies when the syn backlog queue of a socket
    overflows. This is to prevent against the common 'SYN flood attack'
    Default: 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.

informação relacionada