Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/02/2019, à 22:32

Compte supprimé

reverse proxy avoir ip réel des connexions derrière le reverse proxy

Bonjour je vous explique mon problème actuellement j'ai quelques service transmission-daemon, apache2, jellyfin en reverse proxy pour vous expliquer.
Les seuls IP affichait son celui de la machine locale. je précise que les ip publique que vous voyer son fausse j'ai vérifier a bien tout anonymiser en quelques sorte en gros ce son de fausses ip
Si je tape sa pour voir,

tail -f /var/log/apache2/access.log | egrep -o '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'

est bien il n'affichera que sa

192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.2

mais pas l'ip réel qui est derrière le reverse proxy or je voudrais que les Ip réel qui sont derrière le reverser proxy soient renvoyés
j'ai suivie ce tutoriel,
le tutoriel mais sa na rien donné où j'ai dû me planter qui sais


je vous fais un petit schéma. pour plus de compréhension

la seedbox = internet accès via https://seed.exemple.fr -----> apache2 principal avec virtualhost reverse proxy sur le port 9091 de transmission-daemond ---------> machine virtuel avec transmission-daemond

jellyfin = internet accès via https://movie.exemple.fr -----> apache2 principal avec virtualhost reverse proxy sur le port 9096 de jellyfin ---------> service jellyfin directement installer sur la même machine que le apache2

apache2 = internet accès via https://exemple.exemple.fr -----> apache2 principal avec virtualhost reverse proxy sur le port 80 de apache2---------> machine virtuel avec apache2

voilà un de mes vhost c’est les mêmes pour les 3 à part les données génériques tels que les domaines  de contact où les ports et les ip a reversé.
Il vient de mon vhost qui était à la base pour transmission-daemon que j’ai utilisée partout où y avait besoin d'un reversent proxy à faire sa marche très bien mais y a ce problème qui les Ip derrière le reverser proxy ne sont pas affichés et je souhaiterais que les ip des client qui son dérrière le reverse proxy sois directement envoyer si c'est possible.

<VirtualHost *:443>
servername exemple.exemple.tld
      ServerAlias exemple.exemple.tld
        Redirect permanent / exemple.exemple.tld
        RewriteEngine off
        RewriteRule /login.view[/]?$ /login.view [R=permanent]

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/exemple.exemple.tld/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/exemple.exemple.tld/privkey.pem
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
        #Header always set Content-Security-Policy "default-src 'self' data: ; script-src 'self' ; style-src 'self' 'unsafe-inline' fonts.googleapis.com https://code.jquery.com ; font-src 'self' fonts.gsta$

        ProxyRequests On
        ProxyPreserveHost Off

        ProxyRequests On
        ProxyPreserveHost Off
        <Proxy *>
        Order allow,deny
        Allow from all
        </Proxy>

        ProxyPassReverse / http://192.168.1.7:80/
        ProxyPass / http://192.168.1.7:80/



</Virtualhost>

<VirtualHost *:80>
        ServerAlias exemple.exemple.tld
        Redirect permanent / https://exemple.exemple.tld/
</Virtualhost>

alors j'ai légèrement modifier le vhost de jellyfin avant y avais sa dasn les loogs jellyfin

[2019-02-10 22:03:16.536 +01:00] [INF] HTTP Response 200 to "80.118.228.230". Time: "9""ms". "http://127.0.0.1:8096/emby/System/Logs/Log?name=jellyfin.log" ""
[2019-02-10 22:03:19.358 +01:00] [INF

] "HTTP GET" "http://127.0.0.1:8096/emby/System/Logs/Log?name=jellyfin.log". UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"

j'ai fais sa a la place dans le vhost

<VirtualHost *:443>
servername https://exemple.test.tld
      ServerAlias https://exemple.test.tld
        Redirect permanent / https://https://exemple.test.tld

        RewriteEngine off
        #RewriteRule /login.view[/]?$ /login.view [R=permanent]

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/movie.domaine.fr/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/movie.domaine.fr/privkey.pem
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

        ProxyRequests On
        ProxyPreserveHost On

        <Proxy *>
        Order allow,deny
        Allow from all
        </Proxy>

        ProxyPassReverse / http://127.0.0.1:8096/
        ProxyPass / http://127.0.0.1:8096/



</Virtualhost>

<VirtualHost *:80>
        ServerAlias exemple.test.tld
        Redirect permanent / https://exemple.test.tld/
</Virtualhost>

et maintenan j'ai sa

HTTP Response 200 to "80.118.228.230". Time: "2""ms". "http://exemple.test.tld:8096/emby/ScheduledTasks?IsEnabled=true" ""
[2019-02-10 22:09:45.565 +01:00] [INF] "HTTP GET" "http://exemple.test.tld:8096/emby/System/Logs/Log?name=jellyfin.log". UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"

ce qui me semble mieux déjà mais je souhaite vraiment votre aide pour amelioré tout sa car pour apache2 qui est reverser il détecte toujours l'ip 192.168.1.2

Dernière modification par Compte supprimé (Le 10/02/2019, à 23:20)

#2 Le 11/02/2019, à 13:10

Compte supprimé

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

personne n'a une idée

#3 Le 11/02/2019, à 15:13

bruno

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

Bonjour,

Il faut que tu paramètres les logs avec l'en-tête X-Forwarded-For pour tes hôtes qui utilisent un proxy inverse, exemple :

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_for_prooxy
CustomLog /var/log/apache2/jellyfin-access.log combined_for_proxy

Hors ligne

#4 Le 11/02/2019, à 15:31

Compte supprimé

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

je dois mettre cela donc sur le serveur cible ou dans les vhost du serveur qui fais les redirection

#5 Le 11/02/2019, à 15:34

bruno

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

Dans l'hôte virtuel qui sert de proxy.

Désolé c'était pas clair. Il faut faire cela sur la machine qui est derrière le proxy, celle qui héberge réellement le site.

Dernière modification par bruno (Le 11/02/2019, à 15:42)

Hors ligne

#6 Le 11/02/2019, à 15:36

Compte supprimé

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

alors c'est ce que j'ai fais mais quand j'accede en interne sa change ip donc celle de mon pc mais en 4g sa refais pareille en gros sur la machine cible sa donne toujours la même ip a part en interne mais sinon sa donne toujours 192.168.1.2 ( le master serveur apache2)
quand je redirige pour le deuxième apache2 on peu pas readapter le tuto que javais suivie mais pour apache2 car lui il avais config l'hote nginx qui servais de reverse proxy

Dernière modification par Compte supprimé (Le 11/02/2019, à 15:39)

#7 Le 11/02/2019, à 15:39

bruno

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

Normalement cela devrait fonctionner. Déjà il faudrait que tu aies des logs séparés pour chaque site (hôte virtuel) sinon c'est impossible à gérer.

Hors ligne

#8 Le 11/02/2019, à 15:42

Compte supprimé

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

sa pas l'air sa detecte juste en local les ip des pc mais des que sa passe en externe il redetecte le reverse proxy seulement

#9 Le 11/02/2019, à 15:45

bruno

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

J'ai corrigé #5 qui est confus. Je pense que tu n'as pas placé les logs personnalisés sur la bonne machine : il faut le faire sur la machine qui héberge réellement le service pas sur celle qui sert de proxy. L'en-tête HTTP X-Forwarded-For est ajouté par le serveur qui sert de proxy.

Hors ligne

#10 Le 11/02/2019, à 15:51

Compte supprimé

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

justemùent y a pas une valeur a mettre pour que celui qui gerer le proxy l'envoie

L'en-tête HTTP X-Forwarded-For

je vais test actuellement je prends tout les site que je host je crée les log personnalisé

        ErrorLog /var/log/apache2/jellyfin-error.log
        CustomLog /var/log/apache2/jellyfin-access.log combined

et je modifie c'est mieux effectivement pour si retrouvé
je vais test ce que tu m'a dit directement après avoir installer les logs personnalisé car c'est mieux pour si retrouvé.

non sa change rien bizarre faut savoir que cette solution n'est du coup pas valable pour transmission daemon est jellyfin mais a la limite pas grave mais la sa marche pas en faite même pour apache bizarre
le tuto que j'avais suivie que j’ai indiquer concerné un apache2 en récepteur et nginx en émetteur on pourrais peut-être adapter ce qu'il a mis sur nginx mais pour mon apache2 qui sert de proxy non enfait je cherche des idée car la ca ne marche pas et sa me dérange légèrement.

après la question c'est le proxy ne pourrais t'il pas tout simplement ce débrouillerais pour le faire en toute transparence sans modification coté serveur cible ce qui permettrait un fonctionnement sur tout les service.

Dernière modification par Compte supprimé (Le 11/02/2019, à 16:09)

#11 Le 11/02/2019, à 16:17

Compte supprimé

Re : reverse proxy avoir ip réel des connexions derrière le reverse proxy

après je vois pas le remote ip semble être une bonne piste sur le tuto tuto
sa c'est le proxy nginx

location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass  http://192.168.1.7;
    proxy_pass_header Content-type;
}

faut que j'arrive a traduire sa mais pour mon proxy apache2

sa

 #dans /etc/apache2/conf-available/remoteip.conf
# on utilise ici X-Forwarded-For 
# libre à vous de remplacer par X-Real-IP
RemoteIPHeader X-Forwarded-For

# ici les adresse distantes auxquelles on fait confiance pour présenter une valeur RemoteIPHeader
RemoteIPTrustedProxy 192.168.1.2 ::1

je peut je croie déjà le mettre après je voudrais ton avis sur mon idée si c'est débile ou si c'est une piste exploitable
a est enfaite javais placer les logs sur la bonne machine.

Dernière modification par Compte supprimé (Le 11/02/2019, à 16:37)