Desactivar las confirmaciones selectivas
Esta función de TCP ha sido objetivo de ataques remotos. Desactivarla elimina ese objetivo.
Por qué importa
Los reconocimientos selectivos permiten a TCP indicar exactamente qué partes llegaron, para reenviar solo las que faltan. El código que los trata ha tenido fallos graves, y en 2019 uno conocido como SACK Panic permitió a un atacante remoto caer una máquina Linux con paquetes a medida. Apagar el SACK quita ese tipo de objetivo.
Cómo funciona
Pone net.ipv4.tcp_sack en 0. Las conexiones TCP vuelven a una forma más simple de recuperar paquetes perdidos, sin reconocimientos selectivos.
Quién debería usarlo
Una elección de defensa en profundidad para servidores expuestos a tráfico no confiable. Los fallos conocidos ya están corregidos en los kernels actuales, así que para un escritorio el coste de velocidad suele ser peor negocio. Déjalo activado si usas enlaces lentos o con pérdida.
Qué puedes notar
Las descargas y subidas pueden ir más despacio en Wi-Fi, móvil o conexiones largas que pierden paquetes. En redes cableadas limpias puede que no notes nada.
Compruébalo en tu equipo
Lee el valor actual:
sysctl net.ipv4.tcp_sack Aplícalo a mano
Establécelo ahora (hasta el próximo reinicio):
sudo sysctl -w net.ipv4.tcp_sack=0 Consérvalo tras los reinicios, en un archivo tuyo:
sudo tee /etc/sysctl.d/90-net-tcp-sack.conf <<'EOF'
net.ipv4.tcp_sack = 0
EOF
sudo sysctl --system Deshazlo
Elimina el archivo y reinicia, o vuelve a poner el valor anterior con sysctl -w.
Ajustes relacionados
Fuentes
- Linux Hardening Guide (madaidans)
- 2.2.2