0 Votes

Durcissement

Modifié par john le 2025/05/24 23:47

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é :

sudo apt update && sudo apt upgrade
# 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 deny incoming
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

-

Liens internes