IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Proxy inverse avec un sous-domaine


Sujet :

Apache

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 42
    Points
    42
    Par défaut
    nginx en reverse proxy + apache ?

  3. #3
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Un ptit détail oublié.. c'est Apache 2.2 sous Linux Ubuntu serveur 12.04.1
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 42
    Points
    42
    Par défaut
    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

  5. #5
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    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.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    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.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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/
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  10. #10
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ben c'est ce que je dis : utilise des hôtes virtuels :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  11. #11
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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).
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  12. #12
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    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?
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  13. #13
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  14. #14
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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/*
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  15. #15
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Bonjour.

    Pour dire que normalement, ce code fonctionnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  16. #16
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    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

  17. #17
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule (.*) - [F] [PT]
    Au lieu d’interdire, je vais plutôt rediriger.

    Ça marche à merveille. Merci.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon htaccess ne fonctionne pas avec les sous-domaines
    Par pierrot10 dans le forum Apache
    Réponses: 3
    Dernier message: 04/06/2012, 08h54
  2. Reverse proxy et redirection des sous-domaines
    Par sfair dans le forum Apache
    Réponses: 7
    Dernier message: 02/01/2012, 15h09
  3. [XHTML 1.0] Problème d'inclusion de CSS et JS avec des sous-domaines ?
    Par [ZiP] dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/05/2010, 12h41
  4. Réponses: 4
    Dernier message: 04/11/2009, 22h31
  5. [Cookies] Visibilité avec des sous-domaines
    Par kevinf dans le forum Langage
    Réponses: 6
    Dernier message: 06/02/2007, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo