HFRplus icon indicating copy to clipboard operation
HFRplus copied to clipboard

Reverse proxy SSL/IPv6

Open FLKone opened this issue 9 years ago • 8 comments

Test effectué avec NGINX et la config suivante :

(pas de SSL pour le moment, ce sera pour la phase 2 :D)

server {
   listen 80;
   server_name reverse.hfr.local;

   location / {
        proxy_pass http://forum.hardware.fr;
   }

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

   proxy_pass_header  Set-Cookie;

   proxy_cookie_domain forum.hardware.fr reverse.hfr.local;
   proxy_cookie_domain hardware.fr reverse.hfr.local;
}

reverse.hfr.local à remplacer par n'importe quel domaine :o

Ne fonctionne pas :

  • identification OK
  • les pages affichées restent celles pour les utilisateurs non-identifiés

FLKone avatar Sep 01 '16 08:09 FLKone

Chez moi ca marche avec cette conf.

Apres des que tu cliques un lien avec le vrai ndd, ca pose problème visiblement, mais j'arrive a accéder a mon profil sur un domaine tiers.

c0mm0n avatar Sep 01 '16 09:09 c0mm0n

Bon la plupart des clicks meme vers des liens avec le ndd du proxy font sauter l'authentification.

Mais le profil ca marche.

c0mm0n avatar Sep 01 '16 10:09 c0mm0n

Besoin d'aide pour l'IPV6. Je n'arrive à rien. Y'a que si je m'auto-ping sur Z:Z:Z:Z::1 que ça marche.

Si je m'auto-ping sur Z:Z:Z:Z:1:1:1:1 ça marche pas...

Et depuis l'extérieur c'est même pas la peine...

Wiripse avatar Sep 02 '16 09:09 Wiripse

:D

c0mm0n avatar Sep 02 '16 09:09 c0mm0n

Sinon je suis arrivé à quelque chose d'opérationnel pour le reverse proxy https avec apache2.

Je considère ici que la question des certificats est déjà réglée :o:

  • Modifier /etc/apache2/ports.conf et ajouter NameVirtualHost *:443
  • Créer un vhost dans /etc/apache2/sites-available avec le contenu suivant :
<VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName NDD.EXT
        ServerAlias NDD.EXT

ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/NDD.EXT/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/NDD.EXT/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/NDD.EXT/chain.pem

<FilesMatch "\.(cgi|shtml|phtml|php)$" >
SSLOptions +StdEnvVars
</FilesMatch>

ProxyPass / http://forum.hardware.fr/
ProxyPassReverse / http://forum.hardware.fr/
ProxyPassReverseCookieDomain .hardware.fr NDD.EXT
</VirtualHost>
  • Activer le plugin de proxy

a2enmod proxy_http

  • Activer le vhost créé

a2ensite FICHIER

  • Reboot apache

service apache2 restart

Wiripse avatar Sep 02 '16 09:09 Wiripse

T'arrives a clicker sans perte de cookie ?

Poster meme ? Drapeaux ?

c0mm0n avatar Sep 02 '16 09:09 c0mm0n

Bon je viens de tester sur un serveur Gandi.net, avec la conf auto de LetsEncrypt + les 3 lignes pour le reverse et ça a l'air de rouler. IPv6 a l'air de fonctionner aussi (avec le site https://www.ssllabs.com/ qu'ils filent à la fin du process LetsEncrypte il vérifie bien le domaine en IPv4 et IPv6 et c'est OK pour les deux)

Je vais balancer une version à Apple pour voir, sans la publier sur le store.

Faut que je recode l'identification qui elle ne passe pas par le forum mais par le site :o

Faut aussi trouver un moyen de bloquer l'accès au proxy en dehors de l'appli (une clé dans les headers ça serait le top, mais je sais pas comment faire pour qu'Apache vérifie ça :D)

FLKone avatar Sep 04 '16 11:09 FLKone

Config finale avec blocage sur l'UserAgent, même si c'est pas le top ça limite déjà le nombre de requêtes à la con/robots

Thanks les loulous :o

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin [email protected]

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLCertificateFile /etc/letsencrypt/live/tim.cook.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/tim.cook.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf

        ServerName tim.cook.com
        SSLCertificateChainFile /etc/letsencrypt/live/tim.cook.com/chain.pem


        ProxyPass / http://forum.hardware.fr/
        ProxyPassReverse / http://forum.hardware.fr/
        ProxyPassReverseCookieDomain .hardware.fr tim.cook.com

        SetEnvIfNoCase User-Agent .*HFR+.* apps_hfr
        SetEnvIfNoCase User-Agent .*:o.* apps_hfr

        <Location />
                Order Deny,Allow
                Deny from All
                Allow from env=apps_hfr
        </Location>

</VirtualHost>
</IfModule>

FLKone avatar Sep 09 '16 14:09 FLKone