lancer sur port 80 [POSTGRESQL] - SQL/NoSQL - Programmation
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 ?
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)
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 ? |
Merci pour cette réponse constructive.
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. |
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.
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?
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.
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)
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 !
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
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.
Marsh Posté le 24-12-2004 à 14:32:10
Sympa ! j'étais justement déjà en train de tester ça !
Merci bcp matanane.
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 :
et j'ai ca :
alors que pour 8080 par example, ca marche.
Message édité par no_code le 23-12-2004 à 18:30:22