Project

General

Profile

Tâche #33459

Scénario #33348: postgresql : implémentation de hostssl

implémentation de hostssl dans le pg_hba.conf

Added by Vincent Chavanon almost 2 years ago. Updated over 1 year ago.

Status:
Fermé
Priority:
Normal
Assigned To:
-
Target version:
PNE-SR - MTES - prestation Cadoles - s46-52
Start date:
11/15/2021
Due date:
% Done:

100%

Remaining (hours):
0.0

Description

eole-postgresql (et eole-db) ne permettent aujourd'hui de ne spécifier pour postgresql que 2 types de connections : local ou host. il serait intéressant de pouvoir utiliser en complément le type hostssl, afin de pouvoir configurer un serveur à n'accepter que ce type de connection.
On peut imaginer que la définition des permissions pour les rôles intègre une nouvelle variable Eole "n'autoriser que les connections ssl" de type oui/non

zephir_config_301.eol (10.6 KB) Vincent Chavanon, 02/08/2022 08:27 AM

Associated revisions

Revision 3de1ede8 (diff)
Added by Matthieu Lamalle almost 2 years ago

ajout option connexion ssl ref #33459

Revision fd722ea0 (diff)
Added by Matthieu Lamalle almost 2 years ago

ajout option connexion ssl ref #33459

Revision 544e4928 (diff)
Added by Laurent Gourvenec over 1 year ago

Utilisation de hostssl si on est en SSL only

Ref: #33459

Revision 0a55c38f (diff)
Added by Emmanuel GARETTE over 1 year ago

prise en compre de hostssl dans eole-db (ref #33459)

History

#1 Updated by Matthieu Lamalle almost 2 years ago

VincentC: en fait, l'idée serait plutot d'ajouter une variable commune pour toutes les entrées : "voulez vous faire du ssl O/N". Et selon la réponse, soit on met du host partut (comme c'est aujourd'hui le cas), soit on met du hostssl partout.

VincentC: faire du ssl sur certaines entrées et pas d'autres ne nous semble pas tres cohérent, et ca ajouterait une option en plus par entrée.

#2 Updated by Matthieu Lamalle almost 2 years ago

  • Status changed from Nouveau to En cours

#3 Updated by Matthieu Lamalle almost 2 years ago

  • Status changed from En cours to À valider

#4 Updated by Joël Cuissinat almost 2 years ago

  • Status changed from À valider to Nouveau

Visiblement le commit eole-postgresql:fd722e est spécifique à la 2.8.1 mais le merge 2.8.0/master → master indique un conflit !

eole-postgresql$ git merge 2.8.0/master 
Fusion automatique de dicos/22_postgresql.xml
Fusion automatique de tmpl/pg_hba.conf
CONFLIT (contenu) : Conflit de fusion dans tmpl/pg_hba.conf
La fusion automatique a échoué ; réglez les conflits et validez le résultat.

#5 Updated by Matthieu Lamalle over 1 year ago

  • Status changed from Nouveau to À valider

#6 Updated by Vincent Chavanon over 1 year ago

  • Status changed from À valider to En cours

bonjour,

Je constate un soucis avec l'implémentation de hostssl en 2.7.2 : (et le paquet est passé en stable aujourd'hui) :

malgré que la variable set_pg_role_perms soit positionnée à "oui", j'ai le pg_hba.conf suivant :

cat /etc/postgresql/10/main/pg_hba.conf
local   all     postgres                md5
local   adl     adl             md5
local   postgres        postgres                md5
local   zephir  zephir          md5
local   template_postgis        postgis         md5
host    all     all     0.0.0.0 0.0.0.0 md5

je pense que /usr/share/eole/posttemplate/01-eoledb (entre autres) a sa part de responsabilité

#7 Updated by Laurent Gourvenec over 1 year ago

Ça devrait être bon maintenant. Il y avait un petit oubli dans la fonction qui génère le fichier de conf.

#8 Updated by Laurent Gourvenec over 1 year ago

  • Status changed from En cours to À valider

#9 Updated by Laurent Gourvenec over 1 year ago

  • % Done changed from 0 to 100

#10 Updated by Vincent Chavanon over 1 year ago

  • Status changed from À valider to En cours
  • % Done changed from 100 to 0

bonjour,

Il y a toujours un soucis : cette fois, il n'y a plus d'entrées "host" dans le pg_hba.conf :

root@seth:~CreoleGet pg_ssl_only
non

root@seth:~# cat /etc/postgresql/10/main/pg_hba.conf
local all postgres md5
local adl adl md5
local postgres postgres md5
local zephir zephir md5
local template_postgis postgis md5
host all all 0.0.0.0 0.0.0.0 md5

root@seth:~# CreoleGet pg_ssl_only
oui

root@seth:~# reconfigure

root@seth:~# cat /etc/postgresql/10/main/pg_hba.conf
local all postgres md5
local adl adl md5
local postgres postgres md5
local zephir zephir md5
local template_postgis postgis md5
root@seth:~#

#11 Updated by Emmanuel GARETTE over 1 year ago

J'ai testé sur 2.7.2 et 2.8.1 avec et sans eole-db.
Je n'ai aucune ligne dans aucun cas qui ressemble à la ligne :

host all all 0.0.0.0 0.0.0.0 md5

#12 Updated by Vincent Chavanon over 1 year ago

bonjour,

Ces parametres sont issus de la conf du serveur : par defaut, nous poussons via la variante la création d'une base et d'un role de connexion avec droits là.

En PJ, le .eol d'un serveur

#14 Updated by Vincent Chavanon over 1 year ago

on a donc naturellement un pg_hba.conf correspondant au 1er fichier décrit dans #10. Un CreoleSet pg_ssl_only oui suivi d'un reconfigure devrait remplacer la directive "host" par un "hostssl", et ce n'est pas le cas.

#15 Updated by Emmanuel GARETTE over 1 year ago

Pour reproduire :

installer eole-db sur Zéphir.

exécuter ce script :

from creole.loader import creole_loader
from creole.loader import creole_loader, config_save_values

c = creole_loader(rw=True)
c.creole.postgresql.pg_additional_db = 'oui'
c.creole.postgresql.pg_additional_db_name.pg_additional_db_name = ["adl"]
c.creole.postgresql.pg_additional_db_name.pg_additional_db_template[0] = 'postgis'
c.creole.postgresql.pg_additional_db_name.pg_additional_db_admin[0] = 'adl'
c.creole.postgresql.pg_additional_db_name.pg_additional_db_admin_createrole[0] = 'oui'
c.creole.postgresql.pg_additional_db_name.pg_additional_db_admin_superuser[0] = 'oui'

c.creole.postgresql.pg_additional_role = 'oui'
c.creole.postgresql.pg_additional_role_name.pg_additional_role_name = ["adl"]
c.creole.postgresql.pg_additional_role_name.pg_additional_role_pwd[0] = "manuelle" 
c.creole.postgresql.pg_additional_role_name.pg_additional_role_superuser[0] = "oui" 

c.creole.postgresql.set_pg_role_perms = 'oui'
c.creole.postgresql.pg_role_perms.pg_role_perms = ['all']
c.creole.postgresql.pg_role_perms.pg_role_perms_name[0] = 'all'
c.creole.postgresql.pg_role_perms.pg_role_perms_object[0] = 'all'
c.creole.postgresql.pg_role_perms.pg_role_perms_source_ip[0] = '0.0.0.0'
c.creole.postgresql.pg_role_perms.pg_role_perms_source_netmask[0] = '0.0.0.0'

config_save_values(c, 'creole')

Puis reconfigure

#16 Updated by Emmanuel GARETTE over 1 year ago

  • Assigned To set to Emmanuel GARETTE
  • % Done changed from 0 to 100

Après mise à jour les lignes "hostssl" bien bient présente.

#17 Updated by Emmanuel GARETTE over 1 year ago

  • Status changed from En cours to Résolu

#18 Updated by Vincent Chavanon over 1 year ago

  • Status changed from Résolu to Fermé
  • Assigned To deleted (Emmanuel GARETTE)
  • Remaining (hours) set to 0.0

recetté sur une eole 2.8.1 vairante geomatique : OK

Also available in: Atom PDF