PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 14/06/2011 23:44:37

miloofr
Membre

Probleme de transfert de port pour attaquer une base postgres

Bonjour. J'ai actuellement une base postgres chez moi sur un serveur local, relié à l'internet par une livebox. Sur ce serveur tourne un serveur postgres. Je souhaite accéder à une base sur ce serveur de l'extérieur par l'intermédiaire d'un fichier php.

Jusqu'à ces derniers jours, ça marchait parfaitement bien depuis 2 ans, mais j'ai du tout reconfigurer suite à un changement de fournisseur, passant de nordnet à orange.

Je pense avoir tout réglé pour que ça fonctionne pourtant :
1) postgresql.conf a listen_addresses = '*'                 
2) pg_hba.conf a "host    all         all         A.B.C.0/24      md5 où A.B.C.D est l'IP du serveur qui héberge le fichier php qui attaque mon serveur local
3) j'ai mis une régle NAT sur la livebox qui transfère le port 5432 (déclaré dans postgresql.conf) sur mon serveur,
4) le pare feu de la livebox est au plus faible niveau "Faible" donc normalement il ne bloque aucune connexion sortante si j'ai bien lu ce qui la concerne.
5) Le service dyndns de la livebox me permet d'avoir un nom associé à l'IP de ma livebox, nom déclaré dans le fichier php pour retrouver mon chez-moi.
6) Le pare-feu sur mon serveur est réduit au minimum :

root@server:/etc/postgresql/8.4/main# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

J'ai testé le transfert de port et il semble bien fonctionner : j'ai testé avec des sites de tests de port comme http://www.yougetsignal.com/tools/open-ports/
J'ai aussi testé de l'extérieur (internet) en faisant un telnet sur le port 5432 et j'ai bien une connexion. Si j'arrête le service postgres (mon serveur est basé sur ubuntu lucid) le port est déclaré fermé par le site et la connexion telnet ne se fait pas. Et pourtant, le fichier php qui fonctionnait parfaitement avec mon instal précédente (nordnet) ne fonctionne plus et j'ai un message d'erreur qui apparaît :

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: Connection timed out Is the server running on host "valombre.homeip.net" and accepting TCP/IP connections on port 5432? in /home/valombre/public_html/calendar.php on line 1028

D'ailleurs vous pouvez voir en direct l'erreur sur le lien : http://le-valombre.fr/index.php?page=reservation

Je n'y comprends rien. Toutes les conditions semblent réunies pour que ça fonctionne, les transferts de l’extérieur sont bien réalisés (telnet) et pourtant j'ai un timeout sur le fichier. Je suis désespéré, ça fait plusieurs jours que je tourne et retourne le problème mais là je ne sais plus quoi faire. Quelque chose a dû m'échapper mais quoi ??? Auriez-vous des suggestions à me faire pour que j'arrive à faire fonctionner ce lien, c'est très important pour nous.

Dernière modification par miloofr (15/06/2011 00:04:09)

Hors ligne

#2 15/06/2011 08:14:18

gleu
Administrateur

Re : Probleme de transfert de port pour attaquer une base postgres

Et avec psql sur le serveur qui dispose du fichier php, arrivez-vous à établir la connexion ?


Guillaume.

Hors ligne

#3 15/06/2011 09:17:14

miloofr
Membre

Re : Probleme de transfert de port pour attaquer une base postgres

Bonjour. Je viens de faire le test avec psql, d'un poste autre que le serveur sur lequel est hébergé le fichier car sur ce dernier je n'ai pas d'accès ssh.
Donc, à partir d'un poste "extérieur", IP E.F.G.H, sur lequel j'ai installé psql (version windows). Si j'ajoute sur mon serveur local (chez moi derriere la livebox) la ligne :
host    all         all         E.F.G.0/24      md5
J'arrive bien à me connecter :

H:\>psql -h mon.adr.dyndns -U jp -d residence
Password:
Password:
Welcome to psql 7.4.6, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)

residence=#

De plus le sys log de mon serveur note bien une connexion :

Jun 15 09:10:04 server postgres[21542]: [4-1] 2011-06-15 09:10:04 CEST LOG:  00000: connexion re?ue : h?te=E.F.G.H port=1392
Jun 15 09:10:04 server postgres[21542]: [4-2] 2011-06-15 09:10:04 CEST EMPLACEMENT :  BackendInitialize, postmaster.c:3279
Jun 15 09:10:04 server postgres[21542]: [5-1] 2011-06-15 09:10:04 CEST LOG:  00000: connexion autoris?e : utilisateur=jp, base de donn?es=residence
Jun 15 09:10:04 server postgres[21542]: [5-2] 2011-06-15 09:10:04 CEST EMPLACEMENT :  BackendInitialize, postmaster.c:3357

Si je commente la ligne dans pg_hba.conf, la connexion échoue :

H:\>psql -h mon.adr.dyndns -U jp -d residence
psql: FATAL:  aucune entr?e dans pg_hba.conf pour l'h?te << E.F.G.H >>,
utilisateur << jp >>,
base de donn?es << residence >>, SSL inactif


Bizarrement, j'ai également installé SquirrelSQL, créé un alias pour mon serveur et utilise la ligne :
jdbc:postgresql:mon.adr.dyndns:5432/residence
pour la connexion.
et les identifiants corrects pour la connexion sur la meme BDD que ci-dessus,.
Dans ce cas j'ai un message d'erreur :

Alias: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections

Et je ne vois rien apparaitre dans le log de mon serveur ...

Hors ligne

#4 15/06/2011 09:30:15

miloofr
Membre

Re : Probleme de transfert de port pour attaquer une base postgres

Je viens d'avoir la solution ! Désolé pour cette discussion, en fait cela venait de mon hébergeur qui n'avait pas ouvert le port qu'il fallait mais simplement autorisé la gamme d'adresse IP qui correspondait à mon ancien fournisseur internet ! Du coup, en changeant de fournisseur, ma gamme d'IP a changé et je n'avais plus de privilèges. Du coup l'hébergeur a ouvert le port et ça marche. On peut passer cette histoire en résolu, et encore désolé pour le dérangement !

Hors ligne

#5 15/06/2011 09:36:29

gleu
Administrateur

Re : Probleme de transfert de port pour attaquer une base postgres

Bien content que vous ayez réglé votre problème.


Guillaume.

Hors ligne

Pied de page des forums