Durcissement
Durcissement de Linux
Présentation
Le durcissement (ou *hardening*) d’une machine Linux consiste à renforcer sa sécurité pour limiter les risques d’exploitation, d’intrusion ou d’erreurs critiques.
C’est une démarche proactive, indispensable pour les systèmes exposés en réseau ou manipulés par plusieurs utilisateurs.
-
Objectifs du durcissement
- Réduire la surface d’attaque
- Protéger les données et services critiques
- Prévenir les exécutions non autorisées
- Isoler les composants sensibles
-
1. Nettoyer le système
- Supprimer les services inutiles :
systemctl list-units --type=service
sudo systemctl disable nom_du_service
- Supprimer les paquets superflus :
sudo apt autoremove
# ou
sudo dnf remove paquet
-
2. Mettre à jour régulièrement
Les mises à jour corrigent des failles de sécurité :
# ou
sudo dnf update
Automatiser avec `unattended-upgrades` (Debian/Ubuntu).
-
3. Sécuriser les comptes
- Désactiver l’accès root en SSH
- Utiliser `sudo` au lieu de se connecter en root
- Supprimer les utilisateurs inutilisés
- Utiliser des mots de passe robustes
-
4. Configurer un pare-feu
Utiliser `ufw` ou `nftables` :
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Ou pour un contrôle plus fin :
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; }
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iifname lo accept
sudo nft add rule inet filter input tcp dport ssh accept
sudo nft add rule inet filter input drop
-
5. Configurations sensibles
- `/etc/sysctl.conf` pour le kernel :
net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_source_route = 0
- `/etc/login.defs` pour la politique des mots de passe
- `/etc/ssh/sshd_config` :
- Désactiver root : `PermitRootLogin no`
- Forcer les clés : `PasswordAuthentication no`
-
6. Sécuriser les permissions et services
- Vérifier les fichiers SUID :
find / -perm -4000 -type f 2>/dev/null
- Utiliser `chmod`, `chown`, `ls -l` pour ajuster les permissions
- Mettre en place `AppArmor` ou `SELinux` pour renforcer l’isolation
-
7. Surveillance et audit
- Installer un IDS comme `AIDE`, `OSSEC`, ou `Fail2Ban`
- Auditer les connexions SSH, sudo, root :
journalctl -u ssh
sudo lastlog
-
8. Autres bonnes pratiques
- Désactiver les modules inutiles (`/etc/modprobe.d/blacklist.conf`)
- Monter `/tmp` et `/var/tmp` avec les options `noexec,nosuid,nodev`
- Utiliser des partitions séparées : `/home`, `/var`, `/srv`, etc.
- Activer la journalisation (`rsyslog`, `logrotate`)
-
Liens utiles
- [CIS Linux Benchmark](https://cisecurity.org)
- [Debian Securing Manual](https://debian-handbook.info)
- [ArchWiki: Hardening](https://wiki.archlinux.org/title/Security)
-