Ignorar los reinicios de conexiones que se están cerrando
Protege contra un truco que termina una conexión enviando un reinicio falsificado mientras se está cerrando.
Por qué importa
Tras cerrar una conexión TCP, el kernel conserva su registro un tiempo en un estado llamado TIME-WAIT, para que los paquetes tardíos no se confundan con una conexión nueva. Un paquete de reset falsificado enviado en ese periodo puede destruir el registro antes de tiempo, lo que abre la puerta a confusión y secuestro. Esto se conoce como TIME-WAIT assassination.
Cómo funciona
Fija net.ipv4.tcp_rfc1337 en 1. Los paquetes de reset (RST) que llegan a un socket en estado TIME-WAIT pasan a descartarse en vez de acabar ese estado pronto.
Quién debería usarlo
Vale para casi cualquier equipo. Se aparta un poco del comportamiento TCP estricto de la forma que sugiere el RFC 1337, así que un equipo con equipamiento de red poco común puede querer probarlo antes.
Qué puedes notar
Nada en el uso diario. La conexión se comporta como siempre, incluso con la protección activada, y ninguna herramienta de red deja de funcionar por ella.
Compruébalo en tu equipo
Lee el valor actual:
sysctl net.ipv4.tcp_rfc1337 Aplícalo a mano
Establécelo ahora (hasta el próximo reinicio):
sudo sysctl -w net.ipv4.tcp_rfc1337=1 Consérvalo tras los reinicios, en un archivo tuyo:
sudo tee /etc/sysctl.d/90-net-tcp-rfc1337.conf <<'EOF'
net.ipv4.tcp_rfc1337 = 1
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