Forum Linux.général Apache2 redirection vers IP local

Posté par  . Licence CC By‑SA.
Étiquettes :
0
21
déc.
2016

EDIT complet pour précision (désolé)

Bonjour,

J'ai donc trois machines SRV1 (local), SRV2 (local) et VPN (distant). SRV1 et SRV2 sont connectés a VPN. L'idée est d'avoir accès aux ports 80 et 443 de SRV1 et SRV2 (peu importe le moyen). Les 3 machines sont dédiés.

Avec IPTABLES, je ne peux rediriger les ports 80 et 443 que sur une machine. Je cherche donc à utiliser les virtualhost et mod_proxy mais sans succès jusque là, que ce soit sur un apacha local ou apache sur le VPN.

            <VirtualHost *:80>
                ServerName titi.toto.tld
                ProxyPass / http://ip_srv2/
                ProxyPassReverse / http://ip_srv2/
                ProxyPreserveHost On
                ProxyRequests On
            </VirtualHost>

            <VirtualHost *:80>
                ServerName tata.toto.tld
                ProxyPass / http://ip_srv1/
                ProxyPassReverse / http://ip_srv1/
                ProxyPreserveHost On
                ProxyRequests On
            </VirtualHost>

Ceci ne fonctionne pas

Comme dit juste en dessous, l'idéal serai que le apache du VPN face tout ceci.
Le schéma serai donc le suivant :

Titre de l'image

  • # pas compris la question

    Posté par  . Évalué à 2.

    si tu as 2 machines, tu as 2 IPs

    donc tu fais subdomain1 -> premiere IP (donc premier serveur)
    subdomain2 -> 2e IP (donc 2e serveur)

    ton serveur apache ecoutant lui sur le port 80 ou 443 de l'adresse IP publique externe de ton serveur VPN,
    et renvoyant sur les IPs VPN de tes deux machines clientes.

    • [^] # Re: pas compris la question

      Posté par  . Évalué à 1. Dernière modification le 22 décembre 2016 à 10:40.

      Cette solution est en effet la première à laquel j'ai pensé mais semble impossible si j'ai bien compris.

      <VirtualHost *:80>
      ServerName titi.toto.tld
      ProxyPass / http://10.8.0.3/
      ProxyPassReverse / http://10.8.0.3/
      ProxyPreserveHost On
      ProxyRequests On
      </VirtualHost>

      ne semble pas non plus fonctionner depuis le apache du VPN. (le site fonctionne bien puisque si je NAT directement le port 80 de 10.8.0.3, le host m'affiche le site).

      • [^] # Re: pas compris la question

        Posté par  . Évalué à 2.

        simplifie deja pour commencer

         <VirtualHost *:80>
            ServerName titi.example.tld
            ProxyPass / http://10.8.0.3/
            ProxyPassReverse / http://10.8.0.3/
        </VirtualHost>
         <VirtualHost *:80>
            ServerName toto.example.tld
            ProxyPass / http://10.8.0.2/
            ProxyPassReverse / http://10.8.0.2/
        </VirtualHost>

        car si ca se trouve tes preservehost et autres options font que tu vois directement l'IP du demandeur, et que le serveur tente de lui repondre directement, sans repasser par le reverse proxy

        • [^] # Re: pas compris la question

          Posté par  . Évalué à 1.

          Merci pour ton retour.

          Malheureusement, ça n'a pas plus d'effet.
          Les logs apache ne montrent strictement rien non plus…

          • [^] # Re: pas compris la question

            Posté par  . Évalué à 2. Dernière modification le 22 décembre 2016 à 23:38.

            on est d'accord que tes SRV1 et SRV2 sont sur le reseau VPN 10.8.0.X

            et que toi, pour tester, tu arrives de l'exterieur, sur le serveur apache en lui meme,
            qui ecoute sur l'IP exterieure du serveur (sur la carte "SSL" sur son schema) ?

            • [^] # Re: pas compris la question

              Posté par  . Évalué à 1. Dernière modification le 23 décembre 2016 à 10:19.

              C'est bien ça.

              • VPN : 10.8.0.1
              • SRV1 : 10.8.0.2
              • SRV2 : 10.8.0.3

              De mon côté, je ne suis pas sur le VPN, donc j'arrive sur l'IP externe de VPN qui doit ensuite rediriger le traffic.

              VPN ne fait que "VPN" et a un apache tout frais pour le proxy. SRV1 et srv2 ont un apache également mais sans module proxy.
              Les redirections NAT IPTABLES des ports 80 et 443 ont été désactivés pour laisser apache faire le boulot.

              • [^] # Re: pas compris la question

                Posté par  . Évalué à 1.

                INFO supplémentaire: c'est peut être ça, actuellement, SRV1 et SRV2 peuvent ping VPN mais ne peuvent ce ping entre eux. VPN lui, ne ping ni SRV1 ni SRV2. Est-ce que ceci pourrait gêner apache ? (la connexion VPN est bien opérationnel).

                • [^] # Re: pas compris la question

                  Posté par  . Évalué à 2.

                  oui, ca peut etre un symptome,
                  que les clients vpn entre eux ne se pinguent pas ou ne se joignent pas, ce n'est pas choquant, c'est le "client isolation" et plutot mieux

                  mais si sur ta machine VPN Serveur, tu as mis de l'iptables pour permettre à srv1/srv2 de sortir vers internet, tu as peut-etre mis des regles qui bloquent les flux montants non liés à une demande de la machine (donc les flux entrants).

                  il faut alors deja verifier que le proxy apache puisse pinguer et se connecter au port 80 et 443 des 2 SRV, ensuite revoir la config du proxy si y a besoin.

                  tu peux utiliser les outils telnet ou tcptraceroute
                  qui vont te permettre de voir si le flux passe, et eventuellement par ou.
                  ex : telnet 10.8.0.2 80 ou tcptraceroute 10.8.0.2 80

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.