Aller à la recherche

pg_hba.conf pour sécuriser les connexions à une instance PostgreSQL

Le fichier pg_hba.conf permet de configurer la maniéré d'authentifier les connexions à une instance de base de données postgresql. Nous allons voir ici comment gérer de façon un peu plus fine l’authentification.

Configurer pg_hba.conf

Format d'une ligne d'authentification

Type | Base | User | Adresse | Méthode | Option

Description ligne d'authentification

  • Type définit la manière dont on se connecte sur l'instance de la base de données et peut prendre comme valeur
    • local : Connexion via socket unix (le plus rapide à privilégier si les services tournent sur le même serveur)
    • host : Connexion chiffrée ou non via un socket TCP/IP
    • hostssl: Connexion chiffrée via un socket TCP/IP
    • hostnossl: Connexion non chiffrée via un socket TCP/IP
  • Base définit les bases aux quelles on peut se connecter et peut prendre comme valeur
    • all : pour toutes les bases de données
    • samerole, sameuser : l'utilisateur qui se connecte a le même nom ou nom de rôle que la base à laquelle il se connecte
    • base1, base2, base3 : liste de noms de base de données séparés par une virgule ou l'utilisateur peut se connecter
  • User définit les utilisateurs qui peuvent se connecter à l'instance et peut prendre comme valeur
    • all : Tout le monde
    • nom d'un groupe précédé du caractère +. ex : +dbuser (group dbuser)
    • user1, user2 : noms d'utilisateurs séparés par une virgule autorisé à se connecter
  • Adresse : Spécifie l'adresse ip (format CIDR) d'origine de la connexion et doit être vide lorsque le Type est local
  • Méthode : méthode de connexion au serveur et peut prendre comme valeur
    • trust : autorise sans vérifier le mot de passe
    • reject : rejette la connexion
    • md5 : un mot de passe sera demandé à l'utilisateur
    • ident : utilise le protocole IDENT pour authentifier l'utilisateur
    • kbr5, ldap, pam : autre protocole à utiliser. Des paramètres supplémentaires seront à spécifier dans la colonne option.

Par défaut, nous avons dans le fichier pg_hba.conf une ligne qui permet via un socket unix, la connexion de tous les utilisateurs à se connecter à toutes les bases de données sans demander de mot de passe.

local    all     all     trust

Exemple d'utilisation pg_hba.conf

Autorisons à une ip spécifique (192.168.100.101) l’accès à une base données "MABASE" avec l'utilisateur dbuser.

host         mabase     dbuser     192.168.100.101/32   md5

Nous pouvons depuis la machine 192.168.100.101 (et seulement elle) nous connecter psql -U dbuser -d mabase -h IP_SERVEUR_DB -p 5432

Voilà vous pouvez maintenant configurer l'authentification sur postgresl.

La discussion continue ailleurs

URL de rétrolien : https://www.binsp.net/?trackback/8

Fil des commentaires de ce billet

Page top