Durcissement kernel (sysctl) Appliquez des paramètres sysctl de durcissement réseau et noyau sur VPS HolyCloud : anti-spoofing, SYN flood, redirects ICMP et persistance. ~12 min de lecture Avancé #sysctl #kernel #hardening #securite #reseau Durcissement kernel (sysctl) Les paramètres sysctl modifient le comportement du noyau Linux sans recompiler : filtrage réseau, redirections ICMP, protection SYN, contrôle des core dumps. Sur un VPS Linux HolyCloud exposé Internet, un profil sysctl raisonnable réduit la surface d'attaque — en complément d'UFW, Fail2ban et SSH durci. Prérequis VPS HolyCloud Ubuntu/Debian, accès root ou sudo Compréhension des impacts : certains réglages cassent le routage, le forwarding ou le diagnostic (traceroute) Console HolyCloud ou second canal SSH avant application — erreur = perte d'accès rare mais possible sur stacks exotiques Sauvegarde de /etc/sysctl.conf et tests après reboot Attention : si ce VPS fait office de routeur, VPN (WireGuard) ou bridge Docker, adaptez ip_forward et les règles liées — ne copiez pas aveuglément un profil « serveur web ». Étape 1 : état actuel sysctl -a 2>/dev/null | wc -l sysctl net.ipv4.ip_forward sysctl net.ipv4.conf.all.rp_filter ls /etc/sysctl.d/ Sauvegarde : sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak.$(date +%F) Étape 2 : fichier de durcissement réseau IPv4 sudo nano /etc/sysctl.d/99-holycloud-hardening.conf # Reverse path filtering (anti-spoofing) — OK si une seule interface route par défaut net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # Ignorer les redirections ICMP (évite les attaques de redirection) net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.ipv6.conf.all.accept_redirects = 0 net.ipv6.conf.default.accept_redirects = 0 # Ne pas envoyer de redirections net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 # Ignorer les paquets ICMP broadcast net.ipv4.icmp_echo_ignore_broadcasts = 1 # Journaliser les paquets martiens net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1 # SYN cookies (mitigation SYN flood) net.ipv4.tcp_syncookies = 1 # Désactiver source routing net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv6.conf.all.accept_source_route = 0 Étape 3 : limites noyau et mémoire sudo nano /etc/sysctl.d/98-holycloud-limits.conf # Pas de core dumps pour les processus setuid (fuite d'infos) fs.suid_dumpable = 0 # Adresses aléatoires (ASLR) — généralement déjà à 2 kernel.randomize_va_space = 2 # Restreindre dmesg aux privilèges kernel.dmesg_restrict = 1 # Empêcher l'écriture de nouveaux modules noyau par utilisateurs non privilégiés (si modules utilisés) kernel.modules_disabled = 0 # Augmenter les descripteurs si serveur à fort trafic fs.file-max = 2097152 Pour un serveur web très chargé, ajustez aussi (dans le même fichier ou séparé) : net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.ip_local_port_range = 1024 65535 Étape 4 : IPv6 (optionnel) Si vous n'utilisez pas IPv6 : sudo nano /etc/sysctl.d/97-disable-ipv6.conf net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 Sinon, appliquez les mêmes règles accept_redirects que pour IPv4 (déjà dans le fichier §2). Étape 5 : appliquer et persister sudo sysctl --system sysctl net.ipv4.tcp_syncookies sysctl net.ipv4.conf.all.rp_filter Vérifier les conflits (dernier fichier gagne selon l'ordre lexicographique) : grep -r . /etc/sysctl.d/ /etc/sysctl.conf 2>/dev/null | grep -v '^#' Étape 6 : cas particuliers HolyCloud WireGuard / NAT : conservez : net.ipv4.ip_forward = 1 Docker : Docker réécrit souvent iptables et ip_forward ; testez les conteneurs après durcissement. Serveur web seul : ip_forward = 0 (défaut) est correct. Étape 7 : audit après reboot sudo reboot Après reconnexion : sysctl net.ipv4.tcp_syncookies net.ipv4.conf.all.rp_filter sudo dmesg | grep -i martian | tail -10 curl -I https://exemple.fr ssh -v localhost 2>&1 | tail -5 Vérification sudo sysctl --system 2>&1 | tail -5 for key in net.ipv4.tcp_syncookies net.ipv4.conf.all.accept_redirects kernel.randomize_va_space; do echo "$key=$(sysctl -n $key)" done Valeurs attendues : tcp_syncookies=1, accept_redirects=0, randomize_va_space=2. Besoin d'aide HolyCloud Perte de connectivité VPN après sysctl : réactivez ip_forward, vérifiez rp_filter sur l'interface tunnel Applications qui écoutent peu de connexions : réduisez somaxconn ou augmentez selon ss -s Logs martiens nombreux : attaque ou mauvaise route — ip route, config réseau HolyCloud Support HolyCloud : fichiers /etc/sysctl.d/*.conf, sortie sysctl -a | grep -E 'forward|rp_filter|syncookies', rôle du VPS (web/VPN/Docker) Suite de la lecture Article précédent Diagnostic réseau avec MTR Lire Article suivant Git et déploiement sur VPS Lire