Bonjour,
je d=E9veloppe un serveur web, portable, et j'aimerais bien pouvoir le
"binder" au port 80 d'un pc sous Linux, sans pour autant le lancer avec
des privil=E8ges administrateur.
Je vois diff=E9rentes solutions =E0 ce probl=E8me, mais j'igore comment
les mettre en place...
- Soit un syst=E8me qui donne au script la permission de se connecter au
port 80.
- Soit une sorte de "proxy" s=E9curis=E9, lanc=E9 sous root sur le port 80
et qui retransmettrait tout =E0 mon serveur, sur un autre port.
- Soit utiliser mod_python pour passer par Apache (d=E9j=E0 en place)
Pouvez-vous m'aider =E0 mettre en oeuvre l'une de ces solutions, ou une
autre que je n'aurais pas envisag=E9e ?
Et une deuxième règle de ce genre avec "--destination 127.0.0.1". -- I WILL NOT CREATE ART FROM DUNG I WILL NOT CREATE ART FROM DUNG I WILL NOT CREATE ART FROM DUNG -+- Bart Simpson on chalkboard in episode BABF04
OoO En cette matinée pluvieuse du dimanche 06 novembre 2005, vers
10:17, "Python-Fr" <hexade@gmail.com> disait:
- Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80
et qui retransmettrait tout à mon serveur, sur un autre port.
Et une deuxième règle de ce genre avec "--destination 127.0.0.1".
--
I WILL NOT CREATE ART FROM DUNG
I WILL NOT CREATE ART FROM DUNG
I WILL NOT CREATE ART FROM DUNG
-+- Bart Simpson on chalkboard in episode BABF04
Et une deuxième règle de ce genre avec "--destination 127.0.0.1". -- I WILL NOT CREATE ART FROM DUNG I WILL NOT CREATE ART FROM DUNG I WILL NOT CREATE ART FROM DUNG -+- Bart Simpson on chalkboard in episode BABF04
Python-Fr
Vincent Bernat wrote:
OoO En cette matinée pluvieuse du dimanche 06 novembre 2005, vers 10:17, "Python-Fr" disait:
- Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80 et qui retransmettrait tout à mon serveur, sur un autre port.
Cela se fait facilement avec iptables : Je ne connaissait pas cet outil qui semble plutôt intéressant...
Merci
iptables -t nat -A PREROUTING -p tcp --destination-port 80 --destination ton.ip -j REDIRECT --to-port 8080 Par contre, j'ai une erreur et, ne connaissant pas l'outil, j'ignore
comment la résoudre: # /sbin/iptables -t nat -A PREROUTING -p tcp --destination-port 80 --destination 62.193.217.125 -j REDIRECT --to-port 8080 iptables v1.2.9: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.
Et une deuxième règle de ce genre avec "--destination 127.0.0.1".
Vincent Bernat wrote:
OoO En cette matinée pluvieuse du dimanche 06 novembre 2005, vers
10:17, "Python-Fr" <hexade@gmail.com> disait:
- Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80
et qui retransmettrait tout à mon serveur, sur un autre port.
Cela se fait facilement avec iptables :
Je ne connaissait pas cet outil qui semble plutôt intéressant...
Merci
iptables -t nat -A PREROUTING -p tcp --destination-port 80
--destination ton.ip
-j REDIRECT --to-port 8080
Par contre, j'ai une erreur et, ne connaissant pas l'outil, j'ignore
comment la résoudre:
# /sbin/iptables -t nat -A PREROUTING -p tcp --destination-port 80
--destination 62.193.217.125 -j REDIRECT --to-port 8080
iptables v1.2.9: can't initialize iptables table `nat': Table does not
exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Et une deuxième règle de ce genre avec "--destination 127.0.0.1".
OoO En cette matinée pluvieuse du dimanche 06 novembre 2005, vers 10:17, "Python-Fr" disait:
- Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80 et qui retransmettrait tout à mon serveur, sur un autre port.
Cela se fait facilement avec iptables : Je ne connaissait pas cet outil qui semble plutôt intéressant...
Merci
iptables -t nat -A PREROUTING -p tcp --destination-port 80 --destination ton.ip -j REDIRECT --to-port 8080 Par contre, j'ai une erreur et, ne connaissant pas l'outil, j'ignore
comment la résoudre: # /sbin/iptables -t nat -A PREROUTING -p tcp --destination-port 80 --destination 62.193.217.125 -j REDIRECT --to-port 8080 iptables v1.2.9: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.
Et une deuxième règle de ce genre avec "--destination 127.0.0.1".
Hervé Cauwelier
- Soit un système qui donne au script la permission de se connecter au port 80.
Ça s'appelle sudo sur Linux et FreeBSD. :-)
Par contre, il faut absolument après faire comme Apache ou Zope, que le programme change le propriétaire du processus vers un sans droit (www-data ou zope dans leur cas, ton compte pendant tes tests). Ça doit être dans le module os ou plus probablement sys.
Mais de toute façon, pendant que tu développes, utilise un port non-privilégié. Le port souvent utilisé est 8080.
- Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80 et qui retransmettrait tout à mon serveur, sur un autre port.
Bonne idée, c'est ce qu'on fait avec Zope derrière Apache par exemple. Il y a beaucoup d'exemples.
- Soit utiliser mod_python pour passer par Apache (déjà en place)
Un bon exercice mais ton serveur web devient pour le coup... une application web.
-- Hervé Cauwelier http://www.oursours.net/
- Soit un système qui donne au script la permission de se connecter au
port 80.
Ça s'appelle sudo sur Linux et FreeBSD. :-)
Par contre, il faut absolument après faire comme Apache ou Zope, que le
programme change le propriétaire du processus vers un sans droit
(www-data ou zope dans leur cas, ton compte pendant tes tests). Ça doit
être dans le module os ou plus probablement sys.
Mais de toute façon, pendant que tu développes, utilise un port
non-privilégié. Le port souvent utilisé est 8080.
- Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80
et qui retransmettrait tout à mon serveur, sur un autre port.
Bonne idée, c'est ce qu'on fait avec Zope derrière Apache par exemple.
Il y a beaucoup d'exemples.
- Soit utiliser mod_python pour passer par Apache (déjà en place)
Un bon exercice mais ton serveur web devient pour le coup... une
application web.
- Soit un système qui donne au script la permission de se connecter au port 80.
Ça s'appelle sudo sur Linux et FreeBSD. :-)
Par contre, il faut absolument après faire comme Apache ou Zope, que le programme change le propriétaire du processus vers un sans droit (www-data ou zope dans leur cas, ton compte pendant tes tests). Ça doit être dans le module os ou plus probablement sys.
Mais de toute façon, pendant que tu développes, utilise un port non-privilégié. Le port souvent utilisé est 8080.
- Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80 et qui retransmettrait tout à mon serveur, sur un autre port.
Bonne idée, c'est ce qu'on fait avec Zope derrière Apache par exemple. Il y a beaucoup d'exemples.
- Soit utiliser mod_python pour passer par Apache (déjà en place)
Un bon exercice mais ton serveur web devient pour le coup... une application web.
-- Hervé Cauwelier http://www.oursours.net/
Pierre Quentel
Bonjour, je développe un serveur web, portable, et j'aimerais bien pouvoir le "binder" au port 80 d'un pc sous Linux, sans pour autant le lancer avec des privilèges administrateur. Je vois différentes solutions à ce problème, mais j'igore comment les mettre en place... - Soit un système qui donne au script la permission de se connecter au port 80. - Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80 et qui retransmettrait tout à mon serveur, sur un autre port. - Soit utiliser mod_python pour passer par Apache (déjà en place)
Pouvez-vous m'aider à mettre en oeuvre l'une de ces solutions, ou une autre que je n'aurais pas envisagée ?
Merci d'avance,
Hex
Pour configurer Apache en mode proxy et tout renvoyer vers un serveur qui tourne sur le port 8080 tu peux modifier le fichier httpd.conf de cette façon :
- dans la section Dynamic Shared Object (DSO), décommenter les lignes
- ailleurs dans la section Main server configuration, ajouter les lignes suivantes :
ProxyRequests On ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/
et définir les autorisations:
<Proxy *> Order allow,deny Deny from none Allow from all </Proxy>
Voilà, ça devrait suffire
Pierre
Bonjour,
je développe un serveur web, portable, et j'aimerais bien pouvoir le
"binder" au port 80 d'un pc sous Linux, sans pour autant le lancer avec
des privilèges administrateur.
Je vois différentes solutions à ce problème, mais j'igore comment
les mettre en place...
- Soit un système qui donne au script la permission de se connecter au
port 80.
- Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80
et qui retransmettrait tout à mon serveur, sur un autre port.
- Soit utiliser mod_python pour passer par Apache (déjà en place)
Pouvez-vous m'aider à mettre en oeuvre l'une de ces solutions, ou une
autre que je n'aurais pas envisagée ?
Merci d'avance,
Hex
Pour configurer Apache en mode proxy et tout renvoyer vers un serveur
qui tourne sur le port 8080 tu peux modifier le fichier httpd.conf de
cette façon :
- dans la section Dynamic Shared Object (DSO), décommenter les lignes
Bonjour, je développe un serveur web, portable, et j'aimerais bien pouvoir le "binder" au port 80 d'un pc sous Linux, sans pour autant le lancer avec des privilèges administrateur. Je vois différentes solutions à ce problème, mais j'igore comment les mettre en place... - Soit un système qui donne au script la permission de se connecter au port 80. - Soit une sorte de "proxy" sécurisé, lancé sous root sur le port 80 et qui retransmettrait tout à mon serveur, sur un autre port. - Soit utiliser mod_python pour passer par Apache (déjà en place)
Pouvez-vous m'aider à mettre en oeuvre l'une de ces solutions, ou une autre que je n'aurais pas envisagée ?
Merci d'avance,
Hex
Pour configurer Apache en mode proxy et tout renvoyer vers un serveur qui tourne sur le port 8080 tu peux modifier le fichier httpd.conf de cette façon :
- dans la section Dynamic Shared Object (DSO), décommenter les lignes