"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
-----
 onExemple 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-256Code : 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