Aller au contenu principal

Chapitre 5.4 - Bonnes Pratiques

Objectifs d'Apprentissage​

À la fin de ce chapitre, vous serez capable de:

  • Appliquer les bonnes pratiques de sécurité
  • Gérer les utilisateurs de manière sécurisée
  • Comprendre le principe du moindre privilège
  • Mettre en place des politiques de mots de passe
  • Auditer les permissions

Principe du Moindre Privilège​

Concept​

Donner seulement les permissions nécessaires, rien de plus.

Avantages:

  • Réduction surface d'attaque
  • Limitation des dégâts en cas de compromission
  • Conformité sécurité

Gestion des Utilisateurs​

Création​

Bonnes pratiques:

  • Créer utilisateurs avec UID ≥ 1000
  • Groupe principal dédié
  • Home directory avec permissions 700
  • Shell approprié (pas /bin/false pour utilisateurs normaux)
# Bon exemple
sudo useradd -m -s /bin/bash -u 1001 -g users user1
sudo chmod 700 /home/user1

Suppression​

Bonnes pratiques:

  • Désactiver avant supprimer (usermod -L)
  • Sauvegarder données importantes
  • Vérifier processus actifs
  • Nettoyer répertoires et fichiers
# Processus recommandé
sudo usermod -L user1 # Verrouiller
sleep 30 # Attendre
sudo pkill -u user1 # Tuer processus
sudo userdel -r user1 # Supprimer

Gestion des Groupes​

Organisation​

Bonnes pratiques:

  • Groupes par projet/équipe
  • Groupes par fonction (developers, admins)
  • Éviter groupes trop larges
  • Documenter les groupes
# Exemple organisation
sudo groupadd projet-alpha
sudo groupadd developers
sudo groupadd admins

Membres​

Bonnes pratiques:

  • Ajouter seulement utilisateurs nécessaires
  • Réviser régulièrement les membres
  • Retirer utilisateurs inactifs
  • Documenter les ajouts

Mots de Passe​

Politique​

Configuration dans /etc/login.defs:

# Durée minimale (jours)
PASS_MIN_DAYS 1

# Durée maximale (jours)
PASS_MAX_DAYS 90

# Avertissement (jours avant expiration)
PASS_WARN_AGE 7

Complexité​

Configuration avec PAM:

# /etc/pam.d/common-password (Ubuntu/Debian)
password requisite pam_pwquality.so retry=3 minlen=8 difok=3

Exigences:

  • Longueur minimale (8+ caractères)
  • Complexité (majuscules, minuscules, chiffres, symboles)
  • Pas de mots du dictionnaire
  • Pas de répétition

Expiration​

# Forcer changement au prochain login
sudo chage -d 0 user1

# Définir expiration
sudo chage -E 2024-12-31 user1

# Voir informations
chage -l user1

Permissions Fichiers​

Répertoires Système​

Bonnes pratiques:

  • /etc: 755 (root:root)
  • /bin, /sbin: 755 (root:root)
  • /home: 755 (root:root)
  • /home/user: 700 (user:user)
  • /tmp: 1777 (root:root, sticky bit)

Fichiers de Configuration​

Bonnes pratiques:

  • Permissions restrictives (600-644)
  • Propriétaire root ou service
  • Pas d'exécution sauf nécessaire
# Exemple
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
sudo chmod 640 /etc/group

Utilisation de sudo​

Configuration​

Bonnes pratiques:

  • Utiliser sudo au lieu de root direct
  • Limiter les commandes autorisées
  • Journaliser les actions
  • Timeout approprié
# /etc/sudoers
# Donner accès complet
user1 ALL=(ALL:ALL) ALL

# Limiter à commandes spécifiques
user1 ALL=(ALL) /usr/bin/systemctl, /usr/bin/docker

# Sans mot de passe (attention!)
user1 ALL=(ALL) NOPASSWD: ALL

Vérification​

# Voir privilèges sudo
sudo -l

# Voir historique
sudo cat /var/log/auth.log | grep sudo

Audit et Monitoring​

Vérifier les Permissions​

# Fichiers avec permissions larges
find /home -type f -perm -o+w

# Fichiers SUID/SGID
find / -type f -perm /4000 # SUID
find / -type f -perm /2000 # SGID

# Répertoires world-writable
find / -type d -perm -o+w

Monitoring Connexions​

# Utilisateurs connectés
who
w

# Historique connexions
last
lastlog

# Tentatives échouées
sudo grep "Failed password" /var/log/auth.log

Sécurité Root​

Bonnes Pratiques​

Ne jamais:

  • Se connecter directement en root
  • Partager compte root
  • Utiliser root pour tâches normales

Toujours:

  • Utiliser sudo
  • Limiter accès root
  • Journaliser actions root
  • Changer mot de passe root régulièrement

Résumé​

Dans ce chapitre, vous avez appris:

Moindre privilège: Donner seulement permissions nécessaires
Utilisateurs: Création sécurisée, suppression propre
Groupes: Organisation logique, membres contrôlés
Mots de passe: Politique forte, expiration
Permissions: Restrictives, audit régulier
sudo: Configuration appropriée, journalisation
Audit: Vérifications régulières, monitoring


Prochaines Étapes​

Module 6: Scripting Shell (avec crons)
Module 7: Réseau et Configuration


Chapitre créé le: Décembre 2024