Projet

Général

Profil

Tâche #33459

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

implémentation de hostssl dans le pg_hba.conf

Ajouté par Vincent Chavanon il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
PNE-SR - MTES - prestation Cadoles - s46-52
Début:
15/11/2021
Echéance:
% réalisé:

100%

Restant à faire (heures):
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 ko) Vincent Chavanon, 08/02/2022 08:27

Révisions associées

Révision 3de1ede8 (diff)
Ajouté par Matthieu Lamalle il y a plus de 2 ans

ajout option connexion ssl ref #33459

Révision fd722ea0 (diff)
Ajouté par Matthieu Lamalle il y a plus de 2 ans

ajout option connexion ssl ref #33459

Révision 544e4928 (diff)
Ajouté par Laurent Gourvenec il y a plus de 2 ans

Utilisation de hostssl si on est en SSL only

Ref: #33459

Révision 0a55c38f (diff)
Ajouté par Emmanuel GARETTE il y a environ 2 ans

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

Historique

#1 Mis à jour par Matthieu Lamalle il y a plus de 2 ans

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 Mis à jour par Matthieu Lamalle il y a plus de 2 ans

  • Statut changé de Nouveau à En cours

#3 Mis à jour par Matthieu Lamalle il y a plus de 2 ans

  • Statut changé de En cours à À valider

#4 Mis à jour par Joël Cuissinat il y a plus de 2 ans

  • Statut changé de À valider à 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 Mis à jour par Matthieu Lamalle il y a plus de 2 ans

  • Statut changé de Nouveau à À valider

#6 Mis à jour par Vincent Chavanon il y a plus de 2 ans

  • Statut changé de À valider à 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 Mis à jour par Laurent Gourvenec il y a plus de 2 ans

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

#8 Mis à jour par Laurent Gourvenec il y a plus de 2 ans

  • Statut changé de En cours à À valider

#9 Mis à jour par Laurent Gourvenec il y a plus de 2 ans

  • % réalisé changé de 0 à 100

#10 Mis à jour par Vincent Chavanon il y a plus de 2 ans

  • Statut changé de À valider à En cours
  • % réalisé changé de 100 à 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 Mis à jour par Emmanuel GARETTE il y a environ 2 ans

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 Mis à jour par Vincent Chavanon il y a environ 2 ans

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

#13 Mis à jour par Vincent Chavanon il y a environ 2 ans

#14 Mis à jour par Vincent Chavanon il y a environ 2 ans

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 Mis à jour par Emmanuel GARETTE il y a environ 2 ans

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 Mis à jour par Emmanuel GARETTE il y a environ 2 ans

  • Assigné à mis à Emmanuel GARETTE
  • % réalisé changé de 0 à 100

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

#17 Mis à jour par Emmanuel GARETTE il y a environ 2 ans

  • Statut changé de En cours à Résolu

#18 Mis à jour par Vincent Chavanon il y a environ 2 ans

  • Statut changé de Résolu à Fermé
  • Assigné à Emmanuel GARETTE supprimé
  • Restant à faire (heures) mis à 0.0

recetté sur une eole 2.8.1 vairante geomatique : OK

Formats disponibles : Atom PDF