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 03/12/2017, à 20:30

Mickael Dubos

OpenVPN Apache Redirection de port

Bonsoir, comme le sujet l'indique, j'essaie d'accéder à un server Apache au travers d'un VPN

Voilà le schéma :    INTERNET --- PC (VPN + Apache)

Lorsque le VPN est off, j'ai évidemment accès à Apache via le port 80. Lorsque le VPN est activé, impossible d'y accéder.

Voilà qq tentative :

#iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  10.37.10.0/24        anywhere             multiport dports http,https
ACCEPT     udp  --  10.37.10.0/24        anywhere             multiport dports domain

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.11  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::8341:a6ec:33d9:b89c  prefixlen 64  scopeid 0x20<link>
        ether 2c:56:dc:99:95:94  txqueuelen 1000  (Ethernet)
        RX packets 102802  bytes 124883971 (124.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 77567  bytes 16843483 (16.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Boucle locale)
        RX packets 39333  bytes 3637893 (3.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39333  bytes 3637893 (3.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.37.10.6  netmask 255.255.255.255  destination 10.37.10.5
        inet6 fe80::ed80:ee43:88df:abb3  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 57008  bytes 68635666 (68.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 44998  bytes 4378543 (4.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Merci beaucoup de bien vouloir m'éclairer :)

Dernière modification par Mickael Dubos (Le 03/12/2017, à 20:31)

Hors ligne

#2 Le 03/12/2017, à 21:36

Zakhar

Re : OpenVPN Apache Redirection de port

Tu expliques 10% des choses, ça va être dur de t'aider !

Tu accèdes d'où ? Sur le PC lui-même ou sur depuis un autre PC branché sur internet ?

Pourquoi des règles FORWARD... ça ne sert (en général) que si ton PC est un routeur, et pour cela il faut qu'il ait plusieurs interfaces, ce qui n'est pas ton cas...

Aussi le VPN, tu es en client ou en serveur ?


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#3 Le 03/12/2017, à 21:41

Mickael Dubos

Re : OpenVPN Apache Redirection de port

Hum, tu vois donc l'étendue de ma connaissance...

Je souhaite y accéder depuis le monde, pour le VPN c'est un client à PIA

Hors ligne

#4 Le 04/12/2017, à 00:03

Zakhar

Re : OpenVPN Apache Redirection de port

"Depuis le monde"... que tu peux tester avec un mobile en 4G à côté du serveur.

Tu dis "accessible sur le port 80", vu l'IP de ton ethernet tu es derrière une box ?

Tu as forwardé 80 de ta box vers ton PC ?.. mauvaise idée !..

Aucune idée de ce qu'est PIA ? un fournisseur de VPN ?

Ensuite lorsque tu es VPN en mode "client", les "config. pour Madame Michu" redirigent tout le trafic vers le VPN. Et précisément comme tu es "client" en général tu ne peux pas faire tourner un "serveur" sur ta machine, puisque ça voudrait dire pouvoir gérer le port-forwarding depuis le serveur VPN.

Imagine que tous le client de ce VPN aient l'idée d'avoir un serveur apache et vouloir tous l'accéder sur le port 80, vers qui tu rediriges une requête port 80 entrant sur le serveur VPN ?..

Enfin, tu nous fais le syndrome classique de poser la réponse au lieu de poser la question.

Si tu nous disais ce que tu veux faire vraiment... le serveur Apache n'étant qu'un moyen !..

Dernière modification par Zakhar (Le 04/12/2017, à 00:05)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#5 Le 04/12/2017, à 02:01

Mickael Dubos

Re : OpenVPN Apache Redirection de port

Oui effectivement je peux tester. Oui, je suis derrière une box. Oui PIA est un fournisseur. J'ai une première réponse, merci, je dois forwarder depuis un server... (ce n'était pas bien clair pour moi).
Apache c'est pour l'exemple, je veux pouvoir accéder à certain de mes fichiers depuis n'importe où, on pourrait longtemps chercher d'autres, sûrement meilleures solutions mais si si si je veux le faire via Apache. Et un server Emby aussi m'intéresse. Bref, pour tout ça, le fait dêtre derrière un VPN me coince.

Si je comprends bien, il m'est impossible d'accéder à quelconque server depuis l'extérieur tant que la machine où est installée le server tourne avec un client VPN ?

Hors ligne

#6 Le 04/12/2017, à 08:50

Zakhar

Re : OpenVPN Apache Redirection de port

En gros oui... tant que tu utilises un serveur VPN public. Seuls certains permettent cette manipulation délicate.

Mais continue le jeu des "pourquoi".

Pourquoi donc veux-tu passer par un VPN pour récupérer des fichiers stockés chez toi ?

Tu veux cacher quoi de qui ?

Si c'est pour cacher à ton fournisseur internet le flux réseau sortant de ta machine, https est suffisant.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#7 Le 04/12/2017, à 09:34

Mickael Dubos

Re : OpenVPN Apache Redirection de port

Alors dans les Parce que : cacher les flux torrent
Mon server n'a pas besoin d'être caché

Hors ligne

#8 Le 04/12/2017, à 20:06

Zakhar

Re : OpenVPN Apache Redirection de port

Voila on y vient à avoir la question au lieu de la réponse !

Tu sais que ce genre de "solution" est assez inefficace. On lit dans les news que certains se sont bel et bien fait "piquer" (l'opérateur de VPN les a dénoncés). En réalité tu ne fais que transférer la "confiance" de ton FAI à un autre opérateur, ce qui ne règle rien, même si ça complique un peu les choses pour les "radars automatiques".

Donc ce qui ne va pas, c'est que ton paquet vers le port 80 de ton apache va bien arriver à ton serveur, mais quand apache va chercher à répondre, comme la gateway par défaut a été changée par celle du VPN, la réponse va partir via le VPN... ce qui évidemment ne fonctionne pas.

C'est sans doute réglable à coup d'iptables, je n'ai jamais eu ce cas de figure.
Un truc qui pour sûr est possible est de faire des règles iptables par user. Ainsi tu pourrais tourner transmission (ou autre) avec ton user et ne passer que ça au VPN. Apache tournant sur un autre user (www-data) ne serait pas affecté.

Une autre solution "bulldozer", si ta machine est assez costaud est de créer une VM où tu mets tes torrent, et tu mets le VPN dans ta VM. Ainsi seule la VM va passer via le VPN et le reste du trafic (Apache compris) ne sera pas affecté.

A part la dernière solution qui est simple (mais bulldozer) les autres options réclament de bonnes notion réseau !


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#9 Le 04/12/2017, à 22:03

Mickael Dubos

Re : OpenVPN Apache Redirection de port

Oui, j'avais bien pensé à la VM mais c'est trop bourrin. J'ai cru aussi comprendre que c'était réglable avec iptables.
Me voilà donc au même point. Merci pour ta tentative, si tu as une idée de comment faire avec iptables, je suis évidemment preneur smile

Merci encore.

Hors ligne

#10 Le 04/12/2017, à 23:11

Zakhar

Re : OpenVPN Apache Redirection de port

A essayer :

-1) Tu enlèves la directive redirect-gateway (tu commentes avec un # devant) de ton fichier de configuration VPN
-2) Tu relances le VPN (avec la commande adéquate selon ta version... sinon tu rebootes !)
-3) Tu devrais constater que tu as toujours tun0, mais que le trafic n'y passes plus.
-4) Fais un route -n pour vérifier
-5) En supposant que ton id user est 1000 (par défaut sur Ubuntu, sinon cherche ton UID), tu fais

sudo iptables -A POSTROUTING -t nat -m owner --uid-owner 1000 -p tcp -o tun0 -j SNAT --to-source  10.37.10.6

Cela suppose que le VPN t'attribue toujours cette adresse 10.37.10.6 ... sinon il te faut faire un script pour la récupérer.

Là normalement tout le trafic qui part de ton user 1000 devrait aller sur le VPN, et tout ce qui n'est pas propre à 1000 devrait aller sur ta route par défaut.
Donc en principe les requêtes arrivant sur port 80 sur Apache, qui forcément ne tourne pas sur ton user 1000, peuvent être répondues.

Bon courage.

Dernière modification par Zakhar (Le 04/12/2017, à 23:13)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#11 Le 05/12/2017, à 17:25

Mickael Dubos

Re : OpenVPN Apache Redirection de port

Merci pour tes explications (j'apprends petit à petit grâce à toi)

Je t'avoue ne rien comprendre à mon route -n

route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         10.3.10.5       0.0.0.0         UG    50     0        0 tun0
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 enp4s0
10.3.10.1       10.3.10.5       255.255.255.255 UGH   50     0        0 tun0
10.3.10.5       0.0.0.0         255.255.255.255 UH    50     0        0 tun0
108.61.122.224  192.168.0.1     255.255.255.255 UGH   100    0        0 enp4s0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp4s0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp4s0
192.168.0.1     0.0.0.0         255.255.255.255 UH    100    0        0 enp4s0

Hors ligne

#12 Le 05/12/2017, à 19:11

Zakhar

Re : OpenVPN Apache Redirection de port

192.168.0.1     0.0.0.0         255.255.255.255 UH    100    0        0 enp4s0
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 enp4s0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp4s0

-1) 192.168.0.1 est sur enp4s0
-2) La route par défaut (pour tout ce qui ne correspond pas à une autre règle) est de passer par 192.168.0.1
-3) Les adresses 192.168.0.N sont sur enps4s0, c'est pour le cas où tu aies d'autres machines sur ton réseau local derrière ta box.

(Je présume 198.168.0.1 est l'IP réseau local de ta box)

108.61.122.224  192.168.0.1     255.255.255.255 UGH   100    0        0 enp4s0
10.3.10.5       0.0.0.0         255.255.255.255 UH    50     0        0 tun0
0.0.0.0         10.3.10.5       0.0.0.0         UG    50     0        0 tun0

-4) Comme on va changer la route par défaut... on indique avant que 108.61.122.224 doit passer par 192.168.0.1, il s'agit de l'adresse IP publique de ton fournisseur de VPN
-5) 10.3.10.5 est sur tun0
-6) La route par défaut est de passer par 10.3.10.5

Comme la route par défaut sur 10.3.10.5 a une "métrique" plus faible, c'est elle qui aura la priorité sur l'autre route (50 vs 100)
L'ancienne route par défaut est donc bien toujours là, mais n'est plus utilisée que pour ce qui a été forcé sur cet interface, c'est à dire pour l'adresse réelle de ton VPN et les autres machines de ton réseau local.

Ce n'est pas strictement un redirect-gateway (comme on trouve sur la conf VPN de la Freebox par exemple), mais le résultat est similaire.

Mon diagnostic initial (sans voir la route) est donc correct, les paquets qui sont "forwardés" à ton Apache depuis l'extérieur vont bien y arriver (tu peux vérifier avec un Wireshark) via enp4s0, mais comme la route par défaut demande à passer par 10.3.10.5, la réponse repartira via tun0 ... ce qui évidemment ne marche pas... personne n'attend une réponse à la sortie de ton VPN puisque la question n'est pas entrée par là !

Dernière modification par Zakhar (Le 05/12/2017, à 19:17)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#13 Le 05/12/2017, à 19:51

Mickael Dubos

Re : OpenVPN Apache Redirection de port

Donc, c'est impossible ?

Hors ligne

#14 Le 05/12/2017, à 22:35

Zakhar

Re : OpenVPN Apache Redirection de port

Tu peux tester en inversant les métriques (jamais fait ça !) et en utilisant l'iptables signalée.

L'inversion des métriques va faire fonctionner à nouveau ton Apache, il faudra vérifier si le partage de tes iso Linux en Torrent continue de fonctionner, et s'il passe bien par le VPN.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#15 Le 06/12/2017, à 05:42

Mickael Dubos

Re : OpenVPN Apache Redirection de port

Je vais me renseigner.
Je te remercie pour ton implication et tes explications smile

Hors ligne