Pages : 1
#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
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
Hors ligne
Pages : 1