Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Faire fonctionner Apache sur une seule interface

4 réponses
Avatar
franck05
Bonjour,

Je n'arrive pas à configurer Apache 2 sur une Debain Sarge utilisée
comme passerelle avec deux interfaces réseaux eth0 (vers le net) et eth1
vers mon LAN.
Comme j'utilise squid et que je voudrais le faire tourner sur le port 80
d'eth1 pour qu'il soit obsolète pour les utilisateurs, je souhaite qu'apache
ne fonctionne que sur eth0, or il fonctionne sur les 2 interfaces.

J'ai donc essayé dans httpd.conf :

Listen 192.168.0.1:80

et j'obtiens l'erreur suivante :

Forcing reload of web server: Apache2(98)Address already in use:
make_sock: could not bind to address 192.168.0.1:80
no listening sockets available, shutting down
Unable to open logs

Si quelqu'un pouvait me donner un coup de main ça serait super sympa,

merci d'avance :-)




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

4 réponses

Avatar
Sylvain Sauvage
Dimanche 30 avril 2006, 20:04:36 CEST, a écrit :

Bonjour,



'soir,

Je n'arrive pas à configurer Apache 2 sur une Debain Sarge utilisée
comme passerelle avec deux interfaces réseaux eth0 (vers le net) et
eth1 vers mon LAN.
Comme j'utilise squid et que je voudrais le faire tourner sur le port
80 d'eth1 pour qu'il soit obsolète pour les utilisateurs,



« obsolète » ? Qu'entends-tu par « que [squid] soit obsolète pour les
utilisateurs » ?

je souhaite
qu'apache ne fonctionne que sur eth0, or il fonctionne sur les 2
interfaces.

J'ai donc essayé dans httpd.conf :

Listen 192.168.0.1:80

et j'obtiens l'erreur suivante :

Forcing reload of web server: Apache2(98)Address already in use:
make_sock: could not bind to address 192.168.0.1:80
no listening sockets available, shutting down
Unable to open logs



Normal : un seul programme par port.
Il n'y a qu'un port par machine, et pas un port par IP. On pourrait
penser qu'il y a un port par interface, mais non.

La solution à ton problème : iptables. Tu rediriges les paquets sur le
port 80 en provenance d'eth1 sur squid (qui tourne sur le port 3128).
C'est un proxy transparent.

Sinon, ce que tu veux faire n'est pas très clair : placer squid sur le
port 80 ne fera pas de lui un proxy transparent, si un client du lan
demande une connexion sur, p.ex., www.debian.org:80, il ne passeront pas
par squid (à moins que leur navigateur soit configuré pour).

--
Sylvain Sauvage


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal Hambourg
Salut,

Sylvain Sauvage a écrit :
Dimanche 30 avril 2006, 20:04:36 CEST, a écrit :

Je n'arrive pas à configurer Apache 2 sur une Debain Sarge utilisée
comme passerelle avec deux interfaces réseaux eth0 (vers le net) et
eth1 vers mon LAN.
Comme j'utilise squid et que je voudrais le faire tourner sur le port
80 d'eth1 pour qu'il soit obsolète pour les utilisateurs,



« obsolète » ? Qu'entends-tu par « que [squid] soit obsolète pour les
utilisateurs » ?



Oui, je suis curieux aussi.

je souhaite
qu'apache ne fonctionne que sur eth0, or il fonctionne sur les 2
interfaces.





Je ne pense pas que ce soit possible : une socket TCP peut être lié à
une adresse locale particulière mais pas à une interface.

J'ai donc essayé dans httpd.conf :

Listen 192.168.0.1:80

et j'obtiens l'erreur suivante :

Forcing reload of web server: Apache2(98)Address already in use:
make_sock: could not bind to address 192.168.0.1:80
no listening sockets available, shutting down
Unable to open logs



Normal : un seul programme par port.
Il n'y a qu'un port par machine, et pas un port par IP.



Si, il y a bien un port par adresse locale : on peut avoir plusieurs
sockets en écoute sur le même port mais des adresse locales différentes,
l'adresse 0.0.0.0 comptant pour toutes les adresses locales en même temps.

Facile à tester :
$ nc -l -p <port> -s <adresse_locale> &
$ nc -l -p <port> -s <autre_adresse_locale> &
$ netstat -ltn

On pourrait donc avoir squid qui écoute sur l'adresse d'eth1 (si la
configuration de squid le permet) et apache qui écoute sur l'adresse
d'eth0, tous les deux sur le port 80. Mais cela n'empêche toujours pas
d'accéder à n'importe lequel des deux services par n'importe quelle
interface, du moment qu'on s'adresse à l'adresse sur laquelle il écoute.

On pourrait penser qu'il y a un port par interface, mais non.



Non, en effet. Juste un port par adresse locale.

[Rien à ajouter au reste de la réponse]


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sylvain Sauvage
Mardi 2 mai 2006, 00:25:43 CEST, Pascal Hambourg a écrit :

Salut,



'lut,

Sylvain Sauvage a écrit :
[...]
> Normal : un seul programme par port.
> Il n'y a qu'un port par machine, et pas un port par IP.

Si, il y a bien un port par adresse locale[...]



Oui, voilà ce que c'est de ne pas réfléchir...

On pourrait donc avoir squid qui écoute sur l'adresse d'eth1 (si la
configuration de squid le permet)[...]



Oui, squid le permet : http_port 1.2.3.4:80

--
Sylvain Sauvage


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sylvain Sauvage
[ Je remets sur la liste : cela permet à tous de répondre et aux suivants
de lire les archives. D'ailleurs, le « vos réponses » m'incite à penser
à une erreur d'aiguillage. Sinon : désolé. ]

Jeudi 4 mai 2006, 07:44:22 CEST, a écrit :

Meri pour vos réponses :-)

Il n'y a qu'un port par machine, et pas un port par IP

ah bon ?! merde !



Comme l'a recadré Pascal : 1 port par IP, pas un port par interface.
On peut avoir plusieurs IP par interface, donc par machine physique.

Oui, squid le permet : http_port 1.2.3.4:80

si je fais ça squid ne répond pas et c'est apache qui répond...



Parce que la requête est envoyée à l'IP sur laquelle apache écoute.
Par exemple :
apache : listen 10.0.0.1:80
squid : http_port 192.168.0.1:80
dns : toto.local.net -> 192.168.0.1

Si le client demande http://toto.local.net, il tombera sur squid. Par
contre, il peut toujours demander http://10.0.0.1 pour avoir apache
directement.

C'est pour cela que ce que tu veux faire (2 programmes pour le même port)
n'est pas très fréquent et, pour distribuer les requêtes selon l'origine,
on utilise plutôt iptables.

Comment fais-tu tes tests ?

En fait, j'ai du mal à saisir ce que tu veux faire...

--
Sylvain Sauvage


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact