Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 10/01/2017 16:49:53
- TJ85
- Membre
Première connexion distante
Bonjour à tous,
Nouveau venu dans l'univers PostgreSQL, je découvre. J'étais habitué à RdB sous VMS, et bien sûr aux autres BDs courantes sur PC. Je trouve PostgreSQL remarquable, la doc également. MAIS : Je suis fichtrement infoutu de me connecter d'une machine sur une autre !
J'ai une installation standard OSX Server sur un MacMini. La version servie par Apple est 9.4, ses répertoires d'installation sont non-standard. L'adresse IP de cette machine est 10.0.1.65.
J'aimerais attaquer Postgres depuis un autre Mac, d'adresse 10.0.1.20, sur lequel j'ai construit de manière standard une version 9.6 complète (dans l'idée de développer des trucs, un peu pour jouer).
Des deux côtés Postgres fonctionne en local sans problème.
J'essaie tout d'abord ceci, depuis le client (10.0.1.20) :
$ /usr/local/pgsql/bin/psql -h 10.0.1.65 -d test -U postgres
et je reçois ce message :
psql: FATAL: no pg_hba.conf entry for host "10.0.1.20", user "postgres", database "test", SSL off
Je ne comprends pas ce message. Je comprendrais qu'il me dise qu'il ne trouve pas de fichier pg_hba.conf à l'adresse 10.0.1.65, qui est ma cible et l'endroit où tourne le serveur que j'attaque, mais là il semble chercher le fichier en local...
Pour essayer de lui faire plaisir, sur la machine 10.0.1.20 (cliente), j'ai renseigné le fameux fichier ainsi :
host all all 10.0.0.0/8 trust
L'idée est de permettre à tout mon réseau (255 machines au maximum) d'attaquer le serveur.
Ca n'a rien changé.
Côté serveur j'utilise l'outil pgAdmin3. J'ai constaté que j'arrive à ouvrir un fichier pg_hba.conf en passant par Tools - Server Configuration, mais que lorsque je veux utiliser l'option File - Open pg_hba.conf, l'interface ne trouve pas le fichier.
J'ai modifié le contenu du fichier accessible pour qu'il soit identique à celui de l'autre machine, soit :
host all all 10.0.0.0/8 trust
Malgré tout, lorsque je tente la connexion depuis le client (10.0.1.20) j'ai toujours le même fichu message, que je ne comprends toujours pas :
psql: FATAL: no pg_hba.conf entry for host "10.0.1.20", user "postgres", database "test", SSL off
Moilà ! Si quelqu'un passant par ici pouvait me décoincer, il aurait droit à ma reconnaissance durant un certain nombre de clicks !
Merci d'avance, bonne fin de journée
Thierry
Hors ligne
#2 10/01/2017 17:24:49
- Marc Cousin
- Membre
Re : Première connexion distante
Bonjour,
C'est un message envoyé par le serveur. C'est bien du contenu du pg_hba.conf du serveur dont il est question ici. Oubliez la configuration sur le client.
Avez vous bien fait un reload de la configuration après avoir modifié le pg_hab.conf ?
Marc.
Hors ligne
#3 10/01/2017 19:39:34
- TJ85
- Membre
Re : Première connexion distante
Oui, c'est au moins une chose dont je suis sûr. Par contre il y a à coup sûr un lézard dans ma configuration, car lorsque je démarre psql je me fais injurier car il ne trouve pas le serveur sur un socket /var/pgsql_socket/.s.PGSQL.5432.
Du coup, j'essaie de procéder à l'envers, du serveur officiel vers le client. Et j'obtiens un autre message d'erreur : "Connection refused". Ceci après avoir ouvert mon firewall sur le client, 10.0.1.20, qui du coup est devenu le serveur...
J'ai redémarré le serveur sur mon client (!), après avoir modifié pg_hba.conf ainsi :
host all all 0.0.0.0/0 trust
Si j'ai bien compris, je devrais ainsi accepter toutes les connexions, sans restrictions ni password. Rien ne change pourtant : "Connection refused". Je note que lorsque je tente une connexion à distance avec postgres démarré en interactif, je ne logue aucun message d'erreur alors que lorsque je me connecte avec un nom d'utilisateur Postgres inconnu je vois bien une trace sur la console.
Donc, c'est pas encore ça... Mais diantre, que c'est donc compliqué !
Hors ligne
#4 10/01/2017 20:30:07
- Marc Cousin
- Membre
Re : Première connexion distante
Connection refused, c'est probablement que vous avez listen_addresses qui est toujours à localhost (postgres n'écoute dans ce cas qu'en local). Modifiez le paramètre à * dans le fichier de configuration.
Pour ce qui est d'être compliqué, oui, par défaut, postgres est plutôt «fermé» par défaut, pour des raisons de sécurité.
Sinon, pour se mettre le pied à l'étrier: http://postgresql.fr/guidedemarragerapide
Marc.
Hors ligne
#5 11/01/2017 00:11:25
- TJ85
- Membre
Re : Première connexion distante
Grand merci pour le lien, je pense que je vais pouvoir m'en tirer en lisant cette doc. Elle m'avait échappé jusqu'ici. Dans le cas contraire, je referai un tour par ici !
Bonne soirée,
Thierry
Hors ligne
#6 11/01/2017 18:08:24
- dverite
- Membre
Re : Première connexion distante
Par contre il y a à coup sûr un lézard dans ma configuration, car lorsque je démarre psql je me fais injurier car il ne trouve pas le serveur sur un socket /var/pgsql_socket/.s.PGSQL.5432
C'est normal parce que quand on lance psql sans argument de host (-h) par défaut il prend celui avec lequel sa lib a été compilée, et dans le cas du psql compilé/pré-installé par Apple c'est le répertoire pour Unix Domain Socket se trouvant dans /var/pgsql_socket (pour une connexion locale, donc).
Il faut s'assurer d'utiliser -h et dans le cas présent d'un psql compilé par vos soins, s'assurer de lancer celui-là et non celui pré-installé dans /usr/bin.
Les versions plus de MacOS version desktop ont un client PostgreSQL pré-installé, mais pas les plus récentes (depuis au moins 2 ans je crois).
Sinon le problème de départ, comme répondu par Marc est que les règles pour pour autoriser les clients via pg_hba.conf se font sur le serveur, pas sur le client, sinon n'importe quel client pourrait s'auto-autoriser, ça n'apporterait aucune sécurité.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
#7 11/01/2017 21:34:05
- TJ85
- Membre
Re : Première connexion distante
Bon,
La doc a été salvatrice, maintenant le serveur sert et le client cliente et moi, je suis bien content !
Je relève toutefois que le message d'erreur que je recevais,
"psql: FATAL: no pg_hba.conf entry for host "10.0.1.20", user "postgres", database "test", SSL off"
est quelque part buggué, car il mentionne bien l'adresse de la machine depuis laquelle je tentais la connexion, et non celle du serveur (qui est en 10.0.1.65). Ca ne contribue pas à la clarté du débat. Et je note bien l'histoire du socket, encore un truc qui ne me venait pas tout seul...
La prochaine étape est de nettoyer mon MacMini de l'installation 9.4 Apple actuelle et d'y installer un beau build 9.6 tout propre, installé conformément aux canons ...nix. Il n'y a pas de raison de faire autrement. D'autant plus que la doc de build du site Français est parfaite et fonctionne right out of the box, elle ! La seule chose que je dois faire si je comprends bien est de récupérer le fichier launchd et de l'adapter à mes souhaits. Je suis optimiste...
En tout cas merci à vous deux, il est agréable de ne pas se sentir tout seul en ces tragiques circonstances ;-)
Thierry
Hors ligne
Pages : 1