Chiffrement des connexions TCP

Que l'outil soit basique ou avancé, pour pouvoir travailler avec PostgreSQL, il faut déjà se connecter !
Répondre
Phil
Administrateur du site
Messages : 244
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Chiffrement des connexions TCP

Message par Phil » mer. 15 mai 2019 17:12

Merci à un RSSI pour ses questions :


"Est-il possible de chiffrer les connexions TCP clientes vers un serveur PostgreSQL ?
Si oui, le sont-elles par défaut et comment forcer le chiffrement ?
Comment vérifier qu'une connexion est sécurisée ?"


Réponses :

1) Il est possible de sécuriser les connexions TCP clientes vers un serveur PostgreSQL via SSL (=> TLS).
2) ssl est configuré par défaut côté serveur pour tout cluster créé sur Debian par exemple.
Dans ce cas, le paramètre ssl est à on au niveau du cluster :

Code : Tout sélectionner

psql

select version();
                                                             version
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.3 (Debian 11.3-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit

show ssl;
 ssl
-----
 on
3) Pour forcer les connexions tcp en ssl, utiliser hostssl en remplacement de host dans le fichier pg_hba.conf
Exemple pour autoriser un client depuis n'importe quelle adresse IPv4 mais uniquement avec une connexion ssl :

Code : Tout sélectionner

hostssl    all             all             0.0.0.0/0               scram-sha-256
4) Il est possible de vérifier l'utilisation de ssl avec une simple requête SQL, exemple :

Code : Tout sélectionner

select s.pid, ssl, cipher, version, application_name, client_addr from pg_stat_ssl s join pg_stat_activity a on (a.pid = s.pid) where client_addr is not null;
  pid  | ssl |           cipher            | version |     application_name     | client_addr
-------+-----+-----------------------------+---------+--------------------------+--------------
 38203 | t   | ECDHE-RSA-AES256-GCM-SHA384 | TLSv1.2 | DBeaver 6.0.0 - Main     | xx.xxx.x.xx
 38204 | t   | ECDHE-RSA-AES256-GCM-SHA384 | TLSv1.2 | DBeaver 6.0.0 - Metadata | xx.xxx.x.xx
 38794 | t   | ECDHE-RSA-AES256-GCM-SHA384 | TLSv1.2 | psql                     | xx.xxx.xx.xx
Cdlt. Phil - pgphil.ovh

Répondre