Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 27/11/2012, 16h34   #1
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Par défaut Proxy inverse avec un sous-domaine

Bonjour.

Si j'ai par exemple domaine1.com à protéger via un proxy inverse, je ne peux
pas utiliser le même domaine1.com en proy comme ceci ?

Et l'accès publique est http://sitelocal.com port 80

dans le virtualhost :

Code :
1
2
3
4
     ProxyPreserveHost On
     ProxyRequests off
     ProxyPass / http://domaine1.com:80
     ProxyPassReverse / http://domaine1.com:80
Je crois que ça prends une autre adresse? c'est une question.
Si y a un tuto qui expliquerait le tout en détails, ça ferait bien
mon bonheur (pas un tuto qui explique c est quoi u proxy).

Mon but est de ne pas exposer directement http://sitelocal.com
au front des attaques.

de l'aide me serait bien utile.
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 16h40   #2
jackson67
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 53
Points : 15
Points : 15
nginx en reverse proxy + apache ?
jackson67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 16h55   #3
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Un ptit détail oublié.. c'est Apache 2.2 sous Linux Ubuntu serveur 12.04.1
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 17h31   #4
jackson67
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 53
Points : 15
Points : 15
Citation:
Envoyé par dancom5 Voir le message
Un ptit détail oublié.. c'est Apache 2.2 sous Linux Ubuntu serveur 12.04.1
C'est une proposition que je faisais ci-dessus.
Google [nginx reverse proxy + apache] pour plus d'info
jackson67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 18h52   #5
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Citation:
Envoyé par jackson67 Voir le message
C'est une proposition que je faisais ci-dessus.
Google [nginx reverse proxy + apache] pour plus d'info
Avant de venir ici, j'ai déjà fait ces recherches sur Google. J'ai pas trouvé réponse.
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 23h24   #6
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 146
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 146
Points : 10 700
Points : 10 700
Je n'ai rien compris à ce que tu cherches à faire. Tu peux redonner des explications s'il te plaît avec des exemples si nécessaire ?

Pourquoi une conf
Code :
1
2
ProxyPass / http://sitelocal.com:80/
ProxyPassReverse / http://sitelocal.com:80/
dans la conf du VH de domaine1.com ne suffit pas ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 08h32   #7
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Merci Mac.

J'explique: L'an dernier, j'avais installé une webcam localement accessible sur le port 8080. Et pour y accéder, j'avais un sous-domaine et j'y ai mis le proxy inverse pour pouvoir accéder à cette webcam.

domaine.com:80 allait chercher 127.0.0.1:8080

Ainsi, 127.0.0.1 au lieu de l'exposer le web étant donné que le serveur de la webcam n'avait pas de possibilité de protection comme on peut faire avec Apache, c'est pour la raison que j'utilisais le proxy inverse.

Mais, là, ce que je cherche à faire, c'est de protéger domaine.com:80 lui-même avec un proxy inverse comme j'ai pu faire avec 127.0.0.1.

ça doit être faisable. Ou bien, ça prends absolument un autre domaine sur la même machine. Je sais pas.
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 21h39   #8
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 146
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 146
Points : 10 700
Points : 10 700
C'est parfaitement possible avec le même Apache. Mais il faut configurer 2 hôtes virtuels : un pour le VH domaine.com et un pour le VH sitelocal.com, chacun ayant la configuration de reverse proxy vers le truc qui va bien. Schématiquement :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName sitelocal.com
    ProxyPass / http://domaine.com/
    ProxyPassReverse / http://domaine.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName domaine.com
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 14h03   #9
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Bonjour MAC,

Je vais tester ça un moment donné quand j'aurai franchi le reste de mes choses à faire finalement.

Mais, j'ai une question de sécurité que je veux savoir.

Code :
1
2
3
4
ProxyPreserveHost On
ProxyRequests off
ProxyPass /test/ http://local:8080
ProxyPassReverse /test/ http://local:8080
Ceci me permet d'utiliser un serveur qui n'est pas accessible directement via le net sauf si je passe par un serveur web.

domaine.com/test/ qui me donne accès au serveur local sur le port 8080.

Mais comment limiter seulement à un seul sous-domaine?

Actuellement, même avec le IP Publique, je peux avoir accès à domaine.com/test/.

1.2.3.4/test/
toutsousdomaine.com/test
etc.

Je veux limiter à seulement lesousdomaine.com/test/
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 21h28   #10
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 146
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 146
Points : 10 700
Points : 10 700
Ben c'est ce que je dis : utilise des hôtes virtuels :
Code :
1
2
3
4
5
6
7
8
9
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName mondomaine.com
    ProxyPreserveHost On
    ProxyRequests off
    ProxyPass /test/ http://local:8080
    ProxyPassReverse /test/ http://local:8080
</VirtualHost>
De cette manière, le site sur le port 8080 ne sera accessible que depuis http://mondomaine.com/test/.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 22h37   #11
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Merci pour la réponse.

J'ai accès à /test/ par sous.monhost.com mais pas seulement à ce
sous domaine mais aussi par tout ce qui se rattache à mon IP.
ex: 1.2.3.4/test/ donne aussi acces à mon proxy.

ma config :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<VirtualHost *:80>

	DocumentRoot /home/monhost
	ServerName sous.monhost.com
	ServerAlias site.monhost.com *.sous.monhost.com
	VirtualDocumentRoot /home/monhost/%1

	<Directory "/home/monhost">
		 allow from all
		 Options +Indexes
	</Directory>

</VirtualHost>

<Proxy *>
 AuthType Basic
 AuthName "access"
 AuthUserFile /home/monhost/privee/.htpasswd
 require valid-user
 order deny,allow
 allow from all
</Proxy>

ProxyPass /test/ http:/localhost:8080/ 
ProxyPassReverse /test/ http:/localhost:8080/
ProxyRequests off
ProxyPreserveHost on
Je veux seulement pouvoir avoir accès au /test/ par l'un des *.sous.monhost.com ou bien juste un qui appartient à sous.domaine.com
(de préférence à un seul comme sous.sou.domaine.com).
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 11h17   #12
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Merci MAC, J'ai mal positionné les trucs de proxy. Et j'ai pas réalisé quand vous me l'avez montré.

Une autre chose, j'ai des ServerAlias sous.monhost.com *.sous.monhost.com
et si je veux mettre mon truc de proxy dans seulement un comme par exemple:

lulu est un sous répertoire de sous.monhost.com qui devient un serveur alias.

Si je veux que lulu.sous.monhost.com puisse aller chercher mon serveur qui n'est pas visible qui est localhost:8080

Le but est de ne pas donner accès au autres serveur alias au répergtoire contenant localhost:8080.

C'est possible?
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 21h11   #13
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 146
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 146
Points : 10 700
Points : 10 700
Si j'ai bien compris la question, ça doit être possible (mais je ne suis pas sûr à 100%) avec 2 hôtes virtuels et écrits dans cet ordre là dans la configuration Apache : un premier VH pour lulu.sous.monhost.com avec la config de reverse proxy et un second VH avec le ServerAlias *.sous.monhost.com. Ca devrait marcher car Apache traite les VH dans l'ordre dans lequel il les trouve dans sa configuration. Si ça ne marche pas, il y a peut-être moyen encore avec un seul VH sur ServerAlias *.sous.monhost.com et une configuration mod_rewrite :
Code :
1
2
3
RewriteEngine on
RewriteCond %{HTTP_HOST} lulu\.sous\.monhost\.com
RewriteRule (.*) http://localhost:8080/$1 [P]
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 22h51   #14
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Merci pour la réponse.

C'est pas tout à fait cela.

J'ai un VirtualHost * principal: monhost.com
Dans ce virtual host, j'ai un sous domaine principal: sous.monhost.com
et plusieurs alias: lulu.sous.monhost.com

Ex:
Code :
1
2
lulu.sous.monhost.com
toto.sous.monhost.com
etc

lulu et toto ce sont des répertoire qui créé les alias de sous-domaine.

lulu.sous.domaine.com aurait accès au proxy mais pas toto.

Donc, détecter si HTTP_HOST est lulu... et que le répertoire est /dossier/

Donc, si je tapperais: lulu.sous.monhost.com/dossier/ j'accède au proxy
http://localhost:8080

Code :
1
2
3
RewriteEngine on
RewriteCond %{HTTP_HOST} lulu\.sous\.monhost\.com
RewriteRule (.*) http://localhost:8080/$1 [P]
Et je mettrais ceci dans le virtualhost principal qui est : sous.monhost.com.

Je ferais cela de manière à rediriger ailleurs que dans le proxy tous les alias
qui n'est pas "lulu" lorsque ceux-ci tappe le répertoire /dossier/*
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 04h30   #15
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Bonjour.

Pour dire que normalement, ce code fonctionnerait :

Code :
1
2
3
4
RewriteEngine on
RewriteCond %{HTTP_HOST} !alias1\.sous\.domaine\.com
RewriteCond %{REQUEST_URI} /test/ [NC]
RewriteRule (.*) - [F]
Si /test/ serait un répertoire dans l'alias du sous domaine, ça fonctionnerait.
Mais, vu que /test/ n'est pas un sous répertoire mais plutôt un accès au
serveur via proxy, ça ne fonctionne pas; en tout cas, pas dans Virtualhost.
Je ne vois pas comment je peux résoudre mon problème avec un alias.

Merci pour l'aide reçue.
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 21h28   #16
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 146
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 146
Points : 10 700
Points : 10 700
Tu as essayé le flag P de RewriteRule, voire éventuellement aussi le flag PT ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 01h46   #17
dancom5
Membre régulier
 
Inscription : janvier 2010
Messages : 372
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 372
Points : 73
Points : 73
Citation:
Envoyé par _Mac_ Voir le message
le flag PT
Oui, si je mets le tout dans la même partie que ProxyPass et ProxyPassReverse dans la balise virtualhost. Je précise que ce n'est pas dans la partie balise DIRECTORY.

Code :
RewriteRule (.*) - [F] [PT]
Au lieu d’interdire, je vais plutôt rediriger.

Ça marche à merveille. Merci.
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h30.


 
 
 
 
Partenaires

Hébergement Web