Durcir la couche TCP/IP d’un serveur Linux avec sysctl
Un serveur dédié n’a pas besoin de se comporter comme un routeur de bordure. Dans la majorité des cas, il héberge des services, répond à des connexions entrantes, puis renvoie ses réponses proprement. C’est tout. Pas besoin d’accepter des redirections ICMP douteuses, du source routing exotique ou des paquets qui sentent le spoofing à trois baies de distance.
On peut donc durcir une partie de la pile TCP/IP directement au niveau du noyau Linux avec sysctl. Ce n’est pas un pare-feu. Ce n’est pas une baguette magique. Toutefois, c’est une couche de défense saine, rapide à appliquer, et complémentaire à iptables, nftables, UFW et fail2ban.
Ce que l’on va sécuriser
L’objectif est de réduire la surface d’attaque réseau côté noyau. Nous allons notamment :
- limiter le spoofing IP avec le reverse path filtering ;
- activer une protection de base contre les attaques SYN flood ;
- refuser les redirections ICMP ;
- désactiver le source routing IPv4 et IPv6 ;
- ignorer les réponses ICMP manifestement invalides ;
- éviter les vieux scénarios de smurfing ;
- désactiver le forwarding si le serveur ne fait pas routeur ;
- garder IPv6 proprement configuré, sans casser la connectivité.
Sur un serveur web classique, ces réglages conviennent très bien. En revanche, adaptez-les si votre machine fait du routage, du VPN, du VRRP, du conteneur réseau avancé, du BGP, du Anycast, du multi-WAN ou du load-balancing bas niveau. Là, sysctl devient vite un sport de combat.