
Dans les environnements critiques, le durcissement réseau Linux ne peut se limiter à quelques règles de filtrage. Il doit intégrer des techniques défensives avancées, une inspection active du trafic, et une supervision continue. Ce guide s’adresse aux ingénieurs sécurité, DevOps et administrateurs Linux opérant dans des contextes sensibles (SOC, cloud, SI industriel, hébergeurs).
1. Désactivation proactive des services à risque
systemctl list-units --type=service --state=running
systemctl disable --now cups.socket rpcbind.service avahi-daemon.serviceÉlimine les services historiques rarement utilisés mais fréquemment ciblés.
2. Mise en place de règles nftables avec logging centralisé
nft add table inet firewall
nft add chain inet firewall input { type filter hook input priority 0; policy drop; }
nft add rule inet firewall input ct state established,related accept
nft add rule inet firewall input iif "lo" accept
nft add rule inet firewall input tcp dport {22,443} accept
nft add rule inet firewall input counter log prefix "DROP_INPUT: " group 5 dropBloque par défaut et trace chaque paquet non autorisé vers /var/log/kern.log ou vers un SIEM (via rsyslog/remote syslog).
3. Inspection de trafic avec Suricata en mode IDS passif
apt install suricata
suricata -c /etc/suricata/suricata.yaml -i eth0Suricata permet une détection temps réel d’attaques réseau basées sur signatures (DNS tunnel, exploit SMB, bruteforce SSH).
4. Application de rate limiting avancé via iptables
iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j REJECT
iptables -A INPUT -p tcp --dport 22 -m recent --set --name sshbrute
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 30 --hitcount 5 --name sshbrute -j DROPMitigation brute-force par connexion excessive ou taux élevé de requêtes.
5. Blocage actif des pays à haut risque avec ipset
ipset create blacklist hash:net
ipset add blacklist 185.220.101.0/24
iptables -I INPUT -m set --match-set blacklist src -j DROPPermet de construire une liste noire dynamique (GeoIP, fail2ban, crowdsec).
6. Surveillance continue des ports ouverts
watch -n 60 "ss -tulwn | grep -v 127.0.0.1 | grep -v ::1"Détection en live de services exposés par inadvertance ou suite à une compromission.
7. Vérification de TLS et services chiffrés actifs
nmap --script ssl-enum-ciphers -p 443 monserveur
sslyze --regular monserveur:443Analyse de la robustesse des protocoles TLS (version, algorithmes, renegociation).
8. Contrôle du trafic sortant non autorisé (C2, exfiltration)
iptables -P OUTPUT DROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/16 -j ACCEPTPolitique par défaut restrictive pour empêcher les connexions à des serveurs C2.
9. Intégration de CrowdSec pour défense collaborative
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | bash
apt install crowdsecAnalyse comportementale des logs et réponse automatique (ex : ban via bouncer-firewall).
10. Export des logs réseau vers un SIEM
echo "*.* @10.10.0.1:514" >> /etc/rsyslog.conf
systemctl restart rsyslogCentralise tous les logs réseau vers un serveur de journalisation pour corrélation, alerte et forensic.
Conclusion
Le durcissement réseau Linux doit être proactif, adaptatif et observable. La combinaison d’un pare-feu robuste, d’un IDS, d’une surveillance active et d’un flux de logs cohérent permet de limiter drastiquement les vecteurs d’attaque tout en répondant aux exigences de cybersécurité modernes (SOC, NIS2, ISO/IEC 27001, etc.).



