Configuration postgresql ph_hba

Configuration postgresql ph_hba

Configuration basée sur l'hôte, communément appelé PH_HBA.conf, est un fichier spécial utilisé pour l'authentification du client postgresql. Vous pouvez le considérer comme un fichier de configuration pour gérer les politiques d'accès au cluster de la base de données PostgreSQL.

Avant de plonger dans la façon de travailler avec le fichier de configuration PostgreSQL, installons PostgreSQL. Si vous l'avez déjà installé, n'hésitez pas à sauter la section.

Installation de PostgreSQL

Pour suivre ce guide, vous devez vous assurer que PostgreSQL soit installé. Je vais illustrer comment l'installer sur un système Debian.

Sur le système Arch - https: // linuxhint.com / install-PostgreSQL-10-ARCH-LINUX /

Sur Centos / Rehl - https: // linuxhint.com / install_postgresql_centos8 /

Commencez par mettre à jour votre système avec la commande:

Mise à jour d'installation Sudo apt-get
SUDO APT-GET ANGRADE

Une fois mis à jour, créez une configuration de référentiel de fichiers.

sudo sh -c 'echo "deb http: // apt.postgresql.org / pub / repos / apt $ (lsb_release -cs) -pgdg main "> / etc / apt / sources.liste.d / pgdg.liste'

Ensuite, importez la clé de signature et mettez à jour votre système comme:

wget --quiet -o - https: // www.postgresql.org / média / clés / accc4cf8.ASC | sudo apt-key add - && sudo apt-get update

Enfin, installez PostgreSQL Server et Client avec la commande:

sudo apt-get install postgresql-13 postgresql-client-13

Vous pouvez spécifier d'autres versions PostgreSQL telles que PostgreSQL 9, 10, 11, 12, 14, etc.

Vous pouvez désormais initialiser le cluster PostgreSQL avec la commande:

pg_ctlcluster 13 Démarrage principal

Comprendre le fichier ph_hba

Par défaut, le fichier de configuration Ph_HBA se trouve dans le répertoire de cluster racine.

Dans notre exemple, c'est dans:

/ etc / postgresql / 13 / main / ph_hba.confli

Le PG_HBA suit un format de configuration simple. Il comprend un ensemble de règles de configuration, une règle par ligne.

Le fichier de configuration n'est pas sensible aux espaces blancs, et tous les fichiers précédés d'un # sont traités comme des commentaires et ignorés.

Les règles PG_HBA ne peuvent pas s'étendre pour plusieurs lignes car chaque ligne est interprétée comme une règle distincte.

Le fichier de configuration contient 5 enregistrements dans le format suivant respectivement:

  • Tapez la méthode de l'adresse utilisateur de la base de données [Options]
  • Taper - Représente le type d'hôte.
  • Base de données - Spécifie la base de données pour laquelle la règle est configurée.
  • Utilisateur - Le nom d'utilisateur associé à la base de données définie correspondant à la règle SET.
  • Adresse - L'adresse du client. Il peut s'agir d'une seule IP ou d'un sous-réseau entier. PostgreSQL prend en charge les adresses IPv4 et IPv6.
  • Méthode - Spécifie la méthode d'authentification pour la règle définie.
  • Options d'authentification - Options pour ajouter des fonctionnalités à la méthode Auth spécifiée.
  • Options - Options de méthode d'authentification sous la forme de nom = valeur.

PostgreSQL accepte diverses méthodes d'authentification. Ceux-ci inclus:

  • Confiance - Utilisé pour définir la méthode Auth pour accepter les connexions inconditionnellement. S'il est défini sur Trust, n'importe qui peut se connecter au serveur de base de données comme n'importe quel utilisateur et aucune base de données sans avoir besoin d'un mot de passe.
  • Rejeter - Cette méthode est similaire à la méthode de confiance, mais elle rejette inconditionnellement les connexions.
  • Mot de passe - Si la méthode est définie sur le mot de passe, le client de connexion doit fournir un mot de passe non crypté.
  • Pair - La méthode d'authentification par les pairs fonctionne sur les connexions locales en utilisant le nom d'utilisateur du système d'exploitation du client de connexion et en vérifiant une base de données correspondante pour le nom d'utilisateur. Un exemple serait la commande psql sans le drapeau -u.
  • Certificat - Cette méthode d'authentification utilise les certificats SSL du client de connexion.
  • Ldap - Auth à l'aide d'un serveur LDAP.

Ce qui précède est une liste de certaines des méthodes d'authentification prises en charge. Vous pouvez consulter d'autres méthodes dans la documentation officielle.

Exemples de configurations

La configuration PG_HBA est un fichier texte brut que vous pouvez modifier avec n'importe quel éditeur de texte pris en charge.

Voici quelques configurations que vous pouvez effectuer à des fins de dépannage ou de sécurité.

Permettez à tout utilisateur de se connecter à une base de données (locale).

Tapez la méthode de l'adresse utilisateur de la base de données
local tous tous 127.0.0.0.1 confiance

Permettez à tout utilisateur de IP spécifique de se connecter à une base de données spécifique si le mot de passe est correct.

Tapez la méthode de l'adresse utilisateur de la base de données
hôte db_name Tous les 192.168.0.112 Scram-Sha-256

Rejeter toutes les connexions à partir d'un sous-réseau IP spécifique

Tapez la méthode de la base de données de la base de données IP-Address IP-Mask
hébergez tous les 192.168.1.110 255.255.0.0 Rejeter

Autoriser ou rejeter un segment de réseau IP spécifique

Tapez la méthode de l'adresse utilisateur de la base de données
hébergez tous les 192.168.0.1/24 rejeter

Spécification des adresses dans le protocole IPv4.

Permettez à tout utilisateur de se connecter à n'importe quelle base de données sur IPv6

Tapez la méthode de l'adresse utilisateur de la base de données
Hébergez tout :: 1 confiance

Pour couvrir IPv6 et IPv4, vous pouvez spécifier le nom d'hôte à la place.

Tapez la méthode de l'adresse utilisateur de la base de données
hébergez tous .rejet local

Enregistrement et application de la configuration

Avant d'enregistrer la configuration, assurez-vous qu'elle est dans le bon format. Pour recharger et appliquer les modifications, vous pouvez utiliser l'utilitaire PG_CTL.

La commande est:

pg_ctl rechargement -s -d / etc / postgresql / 13

Le -d spécifie le répertoire contenant le fichier de configuration. Si aucun n'est spécifié, la valeur par défaut est utilisée.

En résumé

Le pg_hba.Le fichier de configuration de Conf aide à spécifier l'authentification du client au serveur postgresql. Apporter des modifications peut vous permettre de sécuriser votre système et d'autoriser uniquement les utilisateurs et les hôtes spécifiques.