¿Las cookies TCP SYN siempre están activadas cuando están habilitadas?

¿Las cookies TCP SYN siempre están activadas cuando están habilitadas?

Para el kernel de Linux 2.6.32, si lo configuro, net.ipv4.tcp_syncookies = 1¿se usará siempre o solo durante un ataque de inundación SYN?

Encontré 2 fuentes que dicen lo contrario.

1:

"Sin embargo, hay dos advertencias que entran en vigor cuando se utilizan cookies SYN. ​​En primer lugar, el servidor está limitado a sólo 8 valores MSS únicos, ya que eso es todo lo que se puede codificar en 3 bits. En segundo lugar, el servidor debe rechazar todos Opciones de TCP (como ventanas grandes o marcas de tiempo), porque el servidor descarta la entrada de la cola SYN donde de otro modo se almacenaría esa información [1].

Si bien estas restricciones necesariamente conducen a una experiencia subóptima, los clientes rara vez notan su efecto porque solo se aplican cuando están bajo ataque. En tal situación, la pérdida de las opciones TCP para salvar la conexión suele considerarse un compromiso razonable."

2:

"La desventaja es que no todos los datos TCP pueden caber en el campo Número de secuencia de 32 bits, por lo que algunas opciones de TCP necesarias para un alto rendimiento pueden estar deshabilitadas". Esto significa que opciones como los ACK selectivos y el escalado de ventana TCP no funcionarán si activa las cookies SYN, incluso si su servidor no está bajo ataque actualmente".

Respuesta1

la segunda fuente

"Esto significa que opciones como ACK selectivos y escalado de ventanas TCP no funcionarán si activa las cookies SYN, incluso si su servidor no está actualmente bajo ataque"

es simplemente una tontería, hasta que

"TCP: request_sock_TCP: Posible inundación SYN en el puerto 53. Envío de cookies. Verifique los contadores SNMP"

sucede que no hay nada deshabilitado.

Esto se puede demostrar fácilmente comparando su rendimiento con iperf3 y habilitando/deshabilitando "net.ipv4.tcp_sack" y "net.ipv4.tcp_window_scaling" mientras mantiene "net.ipv4.tcp_syncookies = 1" habilitado.

¿Por qué lees fuentes aleatorias en lugar de las oficiales? 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.

información relacionada