8.6. Sécuriser PostgreSQL en limitant l'accès aux utilisateurs locaux authentifiés
PostgreSQL est un système de gestion de base de données (SGBD) objet-relationnel. Dans Red Hat Enterprise Linux, PostgreSQL est fourni par le paquetage postgresql-server
.
Vous pouvez réduire les risques d'attaques en configurant l'authentification du client. Le fichier de configuration pg_hba.conf
stocké dans le répertoire de données du cluster de bases de données contrôle l'authentification du client. Suivez la procédure pour configurer PostgreSQL pour l'authentification basée sur l'hôte.
Procédure
Installer PostgreSQL :
# yum install postgresql-server
Initialiser une zone de stockage de la base de données à l'aide de l'une des options suivantes :
Utilisation de l'utilitaire
initdb
:$ initdb -D /home/postgresql/db1/
La commande
initdb
avec l'option-D
crée le répertoire que vous spécifiez s'il n'existe pas déjà, par exemple/home/postgresql/db1/
. Ce répertoire contient alors toutes les données stockées dans la base de données ainsi que le fichier de configuration de l'authentification du client.Utilisation du script
postgresql-setup
:$ postgresql-setup --initdb
Par défaut, le script utilise le répertoire
/var/lib/pgsql/data/
. Ce script aide les administrateurs système à gérer les bases de données en cluster.
Pour permettre à n'importe quel utilisateur local authentifié d'accéder à n'importe quelle base de données avec son nom d'utilisateur, modifiez la ligne suivante dans le fichier
pg_hba.conf
:local all all trust
Cela peut s'avérer problématique lorsque vous utilisez des applications en couches qui créent des utilisateurs de base de données et aucun utilisateur local. Si vous ne souhaitez pas contrôler explicitement tous les noms d'utilisateur du système, supprimez la ligne
local
du fichierpg_hba.conf
.Redémarrez la base de données pour appliquer les modifications :
# systemctl restart postgresql
La commande précédente met à jour la base de données et vérifie également la syntaxe du fichier de configuration.