logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 02-02-2018 18:50:42

Yagermoe
Membre
Lieu : Entre Lyon et Valence
Distrib. : Bookworm
Noyau : le dernier...
(G)UI : Cinnamon
Inscription : 15-12-2011

Nginx en reverse proxy, IP sources non tranférées

Bonjour,
Pour un certain nombre de raisons, j'ai essayé d'utiliser NGINX en reverse proxy. Ca fonctionne plutôt bien, je me connecte comme je veux sur le bon site depuis l'extérieur.
Mais l'adresse IP qui est dans les logs de mon site de destination est l'adresse du serveur qui fait tourner NGINX, pas celle de l'extérieur ! Je ne peux donc pas mettre en place les sécurités qui vont bien.

J'ai créé un fichier reverse_proxy. conf dans /etc/nginx/conf.d.
Ca ressemble à ça :

server {
    listen 443 ssl;
    server_name mon.site.de.destination;

    ssl_certificate /etc/letsencrypt/live/mon.site/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/mon.site/privkey.pem;


##    ssl on;
##    ssl_session_cache  builtin:1000  shared:SSL:10m;
##    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
##    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
##    ssl_prefer_server_ciphers on;

        location / {
##          fastcgi_param REMOTE_ADDR $http_x_real_ip;
              proxy_set_header        Host $host;
              proxy_set_header        X-Real-IP $remote_addr;
              proxy_set_header        X-Forwarded-Proto htpps;
              proxy_set_header        X-Forwarded-For $remote_addr;
              proxy_set_header        X-Forwarded-Host $remote_addr;
##          proxy_set_header        REMOTE_ADDR $remote_addr;
##          proxy_pass          https://localhost:443;
              proxy_pass          https://192.168.0.43:443/;
##          proxy_read_timeout  90;
##          proxy_redirect      https://localhost:443 https://192.168.0.43:443/;

        }



Le serveur avec NGINX est en 192.168.0.19:443
Le site de destination est en 192.168.0.43:443
J'ai essayé différentes configurations des paramètres ci-dessus, en mettant l'une ou l'autre des adresses. J'ai parcouru pas mal de forums et aussi la doc de NGINX. Après de multiples essais, je n'arrive toujours pas à récupérer l'adresse externe dans les logs..

Merci d'avance pour toutes vos suggestions.
A+

J'ai oublié.... Ca se passe sur des RPi3, Raspbian en Jessie.
J'ai mis ce sujet dans la partie réseau, je ne pense pas que la plate-forme elle-même y soit pour grand chose. Mais bon......

Dernière modification par Yagermoe (02-02-2018 18:52:57)


Asus M5A97 - Phenom X4 965 - 8 Go - Radeon HD6850
"Ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux" (P. Dac)

Hors ligne

#2 03-02-2018 10:05:11

raleur
Membre
Inscription : 03-10-2014

Re : Nginx en reverse proxy, IP sources non tranférées

L'adresse source de la connexion HTTP(S) reçue par le serveur web est forcément celle du reverse proxy.
As-tu vérifié que le reverse proxy ajoute bien les en-têtes HTTP X-Forwarded-* aux requêtes qu'il fait suivre au serveur web (par exemple avec un script PHP) ?
Le serveur web est-il bien configuré pour inclure la valeur de cet en-tête dans les logs qu'il génère ?

Il vaut mieux montrer que raconter.

Hors ligne

#3 03-02-2018 15:25:39

Yagermoe
Membre
Lieu : Entre Lyon et Valence
Distrib. : Bookworm
Noyau : le dernier...
(G)UI : Cinnamon
Inscription : 15-12-2011

Re : Nginx en reverse proxy, IP sources non tranférées

Merci.

L'adresse source de la connexion HTTP(S) reçue par le serveur web est forcément celle du reverse proxy.


Certes, il me semble avoir compris que la machine de destination pouvait "voir" l'adresse externe

As-tu vérifié que le reverse proxy ajoute bien les en-têtes HTTP X-Forwarded-* aux requêtes qu'il fait suivre au serveur web (par exemple avec un script PHP) ?


Non, parce que dans l'immédiat, je ne sais pas trop faire ça. Mais je vais chercher. Au cas où, si tu as un outil/site à recommander...

Le serveur web est-il bien configuré pour inclure la valeur de cet en-tête dans les logs qu'il génère ?


C'est peut-être là le problème. Je n'ai pas la main sur cette partie.
Pour être plus précis, je fais un peu de domotique, cette machine fait tourner l'appli Domoticz. Les forums propres à Domoticz, pourtant riches en infos, ne parle que très peu de ce problème, même chose pour la doc. Pas encore très bien compris non plus ce qui gère l'interface web.

A+


Asus M5A97 - Phenom X4 965 - 8 Go - Radeon HD6850
"Ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux" (P. Dac)

Hors ligne

#4 04-02-2018 13:45:27

raleur
Membre
Inscription : 03-10-2014

Re : Nginx en reverse proxy, IP sources non tranférées

Yagermoe a écrit :

il me semble avoir compris que la machine de destination pouvait "voir" l'adresse externe


Tu parles du serveur final et de l'adresse du client originel ?
Dans le fonctionnement classique d'un proxy, le serveur final ne peut pas voir directement l'adresse du client originel. Il y a une connexion HTTP entre le client originel et le proxy (qui joue le rôle de serveur), et une autre connexion HTTP entre le proxy (qui joue cette fois le rôle de client) et le serveur final. Ces deux connexions HTTP sont indépendantes, et le serveur final ne voit que la connexion provenant du proxy.

La seule façon pour le serveur de connaître l'adresse du client originel, c'est que le proxy l'inclue dans les en-têtes HTTP des requêtes qu'il lui transmet.

Il existe peut-être des modes de fonctionnement moins classiques d'un proxy où ce dernier se connecte au serveur en usurpant l'adresse IP du client (peut-être en utilisant la fonctionnalité TPROXY d'iptables).


Il vaut mieux montrer que raconter.

Hors ligne

#5 10-02-2018 23:02:19

Yagermoe
Membre
Lieu : Entre Lyon et Valence
Distrib. : Bookworm
Noyau : le dernier...
(G)UI : Cinnamon
Inscription : 15-12-2011

Re : Nginx en reverse proxy, IP sources non tranférées

Le principe de fonctionnement est assez clair. Le fait que le serveur final ne puisse voir que le proxy me semble normal.
Ce qui m'avait échappé lors de mes recherches, c'est qu'il faut que le serveur puisse être paramétré pour considérer une valeur spécifique dans l'en-tête comme l'IP du client.
Il faut donc que je cherche un peu plus de ce coté. Je laisse le sujet ouvert au cas où je trouverais une solution à ce truc.
Mais j'y crois assez peu.
Merci, à+

Asus M5A97 - Phenom X4 965 - 8 Go - Radeon HD6850
"Ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux" (P. Dac)

Hors ligne

#6 11-02-2018 12:19:16

raleur
Membre
Inscription : 03-10-2014

Re : Nginx en reverse proxy, IP sources non tranférées

Quel type de contrôle d'accès veux-tu mettre en place ?

Il vaut mieux montrer que raconter.

Hors ligne

#7 11-02-2018 18:53:39

Yagermoe
Membre
Lieu : Entre Lyon et Valence
Distrib. : Bookworm
Noyau : le dernier...
(G)UI : Cinnamon
Inscription : 15-12-2011

Re : Nginx en reverse proxy, IP sources non tranférées

Salut,
Le contrôle d'accès en lui-même existe déjà, login + mdp sur le serveur. Je voulais pouvoir retrouver dans les logs les tentatives de connexion et traiter les curieux à coup de Fail2ban.
Je n'ai pas eu trop de temps pour me remettre sur le truc, je suis tombé sur ce site.

La solution est peut-être de faire l'authentification au niveau du proxy. J'ai commencé à regarder hier, mais ma box a perdu le réseau ... sad , pas top pour vérifier l'accès extérieur.
Je me suis un peu battu avec les fichiers de conf avant de m'en rendre compte. Je retente demain soir.
A+

Asus M5A97 - Phenom X4 965 - 8 Go - Radeon HD6850
"Ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux" (P. Dac)

Hors ligne

#8 25-02-2018 18:17:30

Yagermoe
Membre
Lieu : Entre Lyon et Valence
Distrib. : Bookworm
Noyau : le dernier...
(G)UI : Cinnamon
Inscription : 15-12-2011

Re : Nginx en reverse proxy, IP sources non tranférées

Salut,
J'ai refait quelques essais, mais rien de probant. J'ai été un peu pris par la partie domotique elle-même, et je ne suis pas très souvent à la maison en ce moment.
Je ne lâche pas l'affaire mais je mets entre parenthèses pour le moment.
A+

Asus M5A97 - Phenom X4 965 - 8 Go - Radeon HD6850
"Ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux" (P. Dac)

Hors ligne

Pied de page des forums