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