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.confet tests après reboot
Attention : si ce VPS fait office de routeur, VPN (WireGuard) ou bridge Docker, adaptez
ip_forwardet 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érifiezrp_filtersur l'interface tunnel - Applications qui écoutent peu de connexions : réduisez
somaxconnou augmentez selonss -s - Logs martiens nombreux : attaque ou mauvaise route —
ip route, config réseau HolyCloud - Support HolyCloud : fichiers
/etc/sysctl.d/*.conf, sortiesysctl -a | grep -E 'forward|rp_filter|syncookies', rôle du VPS (web/VPN/Docker)