Desligar confirmações seletivas
Este recurso do TCP já foi alvo de ataques remotos. Desligá-lo remove esse alvo.
Por que importa
Acknowlegements seletivos deixam o TCP dizer exatamente quais partes chegaram, para só as faltantes serem reenviadas. O código que os trata já teve erros graves, e em 2019 uma falha chamada SACK Panic permitiu a um atacante remoto derrubar uma máquina Linux com pacotes montados. Desligar o SACK remove esse tipo de alvo.
Como funciona
Define net.ipv4.tcp_sack como 0. As conexões TCP voltam a um jeito mais simples de recuperar pacotes perdidos, sem acknowledgements seletivos.
Quem deve usar
Uma escolha de defesa em profundidade para servidores expostos a tráfego não confiável. As falhas conhecidas já estão corrigidas nos kernels atuais, então para um desktop o custo de velocidade costuma ser pior negócio. Deixe ligado se você usa enlaces lentos ou com perda.
O que você pode notar
Downloads e uploads podem ficar mais lentos em Wi-Fi, móvel ou conexões longas que perdem pacotes. Em redes cabeadas limpas você pode não notar nada.
Verifique no seu computador
Leia o valor atual:
sysctl net.ipv4.tcp_sack Aplique à mão
Defina agora (até a próxima reinicialização):
sudo sysctl -w net.ipv4.tcp_sack=0 Mantenha após reinicializações, em um arquivo seu:
sudo tee /etc/sysctl.d/90-net-tcp-sack.conf <<'EOF'
net.ipv4.tcp_sack = 0
EOF
sudo sysctl --system Desfaça
Remova o arquivo e reinicie, ou volte ao valor antigo com sysctl -w.
Configurações relacionadas
Fontes
- Linux Hardening Guide (madaidans)
- 2.2.2