10. Sécurité & Hardening
Renforcer la sécurité de PostgreSQL contre les intrusions, les accès non autorisés et les mauvaises pratiques d’administration.
Objectif: 🎯 Objectif du composant
Sécuriser l'accès aux bases PostgreSQL, assurer la confidentialité des échanges, tracer les actions et appliquer les bonnes pratiques d’authentification.
Paramètres: ⚙️ Paramètres concernés
password_encryption Méthode de hash des mots de passe pg_hba.conf Accès réseau par utilisateur et IP ssl Chiffrement des échanges log_connections Traçabilité log_disconnections Audit authentication_timeout Blocage rapide en cas d’attaque
Bonnes pratiques: ✅ Bonnes pratiques
- Utiliser SCRAM-SHA-256 pour les mots de passe - Activer SSL sur les connexions TCP - Filtrer les IP avec pg_hba.conf - Restreindre les rôles à leur minimum - Journaliser les connexions
Pièges à éviter: ⚠️ Pièges à éviter
- Laisser 'postgres' accessible depuis le réseau - Mot de passe faible ou partagé - md5 sans SSL = vulnérable - Port 5432 ouvert à tous - Absence de rotation de certificats SSL
Recommandations: 👤 Recommandations par profil
Production : SSL + SCRAM + log_connections Développement : accès restreint local uniquement Cloud : audit de logs, certificats à jour, rôles limités
Exemples: 🧪 Exemples de réglage
ALTER SYSTEM SET password_encryption = 'scram-sha-256'; ALTER SYSTEM SET log_connections = 'on'; ALTER SYSTEM SET authentication_timeout = '30s';
Commandes utiles: 🛠️ Commandes utiles
SHOW ssl; SHOW password_encryption; SELECT * FROM pg_hba_file_rules; SELECT * FROM pg_stat_ssl;
Références: 🔗 Références officielles
- https://www.postgresql.org/docs/current/auth-methods.html - https://wiki.postgresql.org/wiki/PostgreSQL_Security - https://www.cisecurity.org/benchmark/postgresql
