[POSTGRESQL] lancer sur port 80

lancer sur port 80 [POSTGRESQL] - SQL/NoSQL - Programmation

Marsh Posté le 23-12-2004 à 18:29:35    

Le port par défault de postgresql est 5432,
je veux le lancer sur le port 80.
 
je fait donc :  
 

Code :
  1. /usr/bin/pg_ctl -D /var/lib/pgsql/data/ -o '-p 80 -i' start


 
et j'ai ca :
 

Code :
  1. bash-2.05$ /usr/bin/pg_ctl -D /var/lib/pgsql/data/ -o '-p 80 -i' start
  2. postmaster successfully started
  3. bash-2.05$ LOG:  could not create IPv6 socket: Famille d'adresses non supportée par le protocole
  4. LOG:  could not bind IPv4 socket: Permission non accordée
  5. HINT:  Is another postmaster already running on port 80? If not, wait a few seconds and retry.
  6. FATAL:  could not create TCP/IP listen socket


 
alors que pour 8080 par example, ca marche.
 
 :sweat:


Message édité par no_code le 23-12-2004 à 18:30:22
Reply

Marsh Posté le 23-12-2004 à 18:29:35   

Reply

Marsh Posté le 23-12-2004 à 20:33:35    

tu es bien entendu au courant que le port 80 est resérvé au protocole HTTP, et donc que non seulement, au niveau sécurité, c'est n'importe quoi de foutre un serveur sur ce port, mais qu'en plus, tu empêches tout le monde d'accéder à Internet ? [:itm]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-12-2004 à 01:50:33    

Le problème, c'est que 80 est plus petit que 1024. Sous Unix, les ports en dessous de 1024 sont dits privilégiés, et seul l'utilisateur root peut se mettre en écoute dessus. C'est pour ça que ça passe avec 8080 et pas 80.
Il faut donc que ton postgresql soit lancé par root.
Maintenant, faire tourner un soft de la complexité d'une bdr en tant que root, c'est vraiment pas génial au niveau sécurité, et je te le déconseille chaudement (surtout que j'imagine que le port 80, c'est pour contourner un firewall, et avoir un serveur de bases de données visible sur Internet, c'est pas génial non plus niveau sécu)

Reply

Marsh Posté le 24-12-2004 à 12:20:34    

Harkonnen a écrit :

tu es bien entendu au courant que le port 80 est resérvé au protocole HTTP, et donc que non seulement, au niveau sécurité, c'est n'importe quoi de foutre un serveur sur ce port, mais qu'en plus, tu empêches tout le monde d'accéder à Internet ? [:itm]


 
Merci pour cette réponse constructive.

Reply

Marsh Posté le 24-12-2004 à 12:23:51    

Bufff a écrit :

Le problème, c'est que 80 est plus petit que 1024. Sous Unix, les ports en dessous de 1024 sont dits privilégiés, et seul l'utilisateur root peut se mettre en écoute dessus. C'est pour ça que ça passe avec 8080 et pas 80.
Il faut donc que ton postgresql soit lancé par root.
Maintenant, faire tourner un soft de la complexité d'une bdr en tant que root, c'est vraiment pas génial au niveau sécurité, et je te le déconseille chaudement (surtout que j'imagine que le port 80, c'est pour contourner un firewall, et avoir un serveur de bases de données visible sur Internet, c'est pas génial non plus niveau sécu)


 
Pour la sécurité, c'est un autre problème, merci toutefois de me  
mettre en garde.
J'en suis arrivé à la même conclusion que toi, faire tourner  
postgres en root, même si c'est moche.
Reste à trouver comment faire.
 

Reply

Marsh Posté le 24-12-2004 à 13:30:24    

Ça va pas forcément être simple. Il me semble que les scripts de lancement refusent de lancer PostgreSQL en root, et il y a peut-être aussi ce genre de vérification dans l'exécutable lui-même (je n'ai pas regardé)
Sinon, une autre solution, beaucoup plus sûre : pourquoi ne pas mettre un serveur SSH (éventuellement sur le port 80), et passer par un tunnel?

Reply

Marsh Posté le 24-12-2004 à 13:44:36    

autre idée :  
modifier le code source de postgres :
 
It's backend/main/main.c that checks the username with geteuid(). If you disable it and re-compile the file, postmaster will not check the username.

Reply

Marsh Posté le 24-12-2004 à 13:48:23    

Mais pourquoi faire tourner des trucs sur un port réservé et pas pour eux? J'arrive pas à voir l'intéret de faire tourner un SGBDR sur le port 80... Si tu veux administrer ton SGBDR à travers le net il existe plein d'interface web d'administration.
 
Si çà peut aider, si tu regardes ton /etc/services tu verras comment tout les numeros de ports sont attribués sur ton système (<1024 ils sont attribués par l'IANA, de 1024 à 49151 ils sont enregistrés comprendre non officiellement attribués mais il vaut mieux les laisser comme tels enfin de 49152 à 65535 ils sont disponibles pour tout usage)
 

Reply

Marsh Posté le 24-12-2004 à 13:53:15    

Connexion à la base depuis des machines dans une administration française dont le firewall ne permet que de passer par le port 80 pour me connecter à la base.
 
Bien evidement, ils ne veulent pas modifier le parametrage  
du firewall, ca serait trop simple !
 
 
 

Reply

Marsh Posté le 24-12-2004 à 13:57:35    

Ben tu passes par une interface d'administration web genre phpmyadmin et pis voilà tu auras juste à configurer ton SGBDR et pas la conf réseau du système à laquelle il faut pas toucher

Reply

Marsh Posté le 24-12-2004 à 13:57:35   

Reply

Marsh Posté le 24-12-2004 à 14:00:39    

Moi j'ai utilisé çà http://phppgadmin.sourceforge.net/

Reply

Marsh Posté le 24-12-2004 à 14:02:42    

C'est pas pour administrer, c'est pour une appli cliente
de la base, qui doit y acceder en jdbc, par le firewal.
 

Reply

Marsh Posté le 24-12-2004 à 14:16:01    

Reply

Marsh Posté le 24-12-2004 à 14:32:10    

Sympa ! j'étais justement déjà en train de tester ça !
Merci bcp matanane.

Reply

Marsh Posté le 25-12-2004 à 23:37:04    

Ou alors ....
 
....Webmin


---------------
www.sagis.tk
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed