La Fibre

Fonctionnement du forum => A lire avant de commencer... => Bistro Bistro => Discussion démarrée par: Darklight le 15 novembre 2015 à 01:18:00

Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 15 novembre 2015 à 01:18:00
Bonjour, j'aimerais savoir si c'est possible d'avoir plusieurs passerelles sur OpenVPN pour un client.

L'idée est de faire du VPN avec un seul client sur Pfsense, et utiliser un serveur VPS chez OVH qui a des IP fail-over, car j'ai plusieurs réseaux physiques derrière ma box Pfsense, et je souhaite que chacun d'eux passent par un WAN différent sur le VPS. C'est surtout pratique pour la géolocalisation des IP  8)

Après, je cherche comment NATer en fonction de la gateway (si possible), le mieux serait de distribuer les IP fail-over directement au client avec le VPN en mode bridge, car la box pfsense fait très bien son boulot de NAT.
Sinon dans une logique inverse, pouvoir attribuer 2 IP au client et en faire 2 interfaces sur Pfsense? le NAT côté serveur serait alors du gâteau ^^

Pour l'instant j'ai une seule IP qui héberge un site web sur le VPS, et il me fournit aussi mon accès VPN.
Je compte migrer sur un VPS d'OVH 2016, malgré que j'ai entendu que leur conf IP est maintenant en DHCP  :( Actuellement je suis sur un revendeur OVH qui me propose du Gbit et 1 seule IP, là je passerais en 100Mbits pour un peu moins cher, mais je suis encore en ADSL je me pose pas la question du débit max

Une idée de la faisabilité de ce système?, même si c'est un gros bricolage dont j'espère éviter le double NAT comme actuellement, mais je doute qu'on puisse router une IP fail-over
Par la même occasion, avez-vous des retours de leur nouvelle gamme de VPS ?

Merci :)
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 16 novembre 2015 à 19:31:51
Une idée ?
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: kgersen le 16 novembre 2015 à 19:35:02
j'avoue ne pas avoir bien compris la question   ;D

en reformulant autrement la question/le probleme on arrive souvent a la réponse/solution.

Sinon j'utilise leur nouveau VPS c'est pas mal et compatible Docker contrairement a l'ancien. Par contre on n'a plus IPv6 (https://lafibre.info/ipv6/nouveau-serveurs-vps-ovh-pas-dipv6/msg260772)  :o

par contre on a acces au Canada maintenant...  ;D
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 16 novembre 2015 à 19:41:48
Merci pour le retour d'expérience, je vais probablement en commander un, l'actuel arrive à expiration bientôt et je pense tout migrer sous peu directement chez OVH.
Juste pour info, les interfaces TUN/TAP sont utilisables/activables?

edit : le service ipv6 de hurricane electric est possible le temps qu'OVH implèmente l'IPV6?

Bon sinon je ferais 2 clients VPN avec config séparée.. je ne sais pas si c'est possible avec Pfsense et si ça pouvait m'éviter d'établir trop de connexions vers le serveur, car j'ai un upload assez faiblard en ADSL et je souhaite conserver un maximum de débit
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: kgersen le 16 novembre 2015 à 20:14:24
bon j'ai relus ton 1er poste et je ne comprend pas le pb du double NAT la..

réseau local --- pfsense (client vpn) --- internet --- vps ovh (serveur vpn) -(NAT)-- internet

en principe quand on fait du VPN "site to site" et on n'a pas qu'un seul NAT, coté VPS.

apres y'a peut-etre une limitation de pfsense que je ne connais pas (c'est pas https://doc.pfsense.org/index.php/OpenVPN_Site_To_Site ?) ?!
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 16 novembre 2015 à 20:20:34
Je voudrais NATer vers plusieurs IP publiques (les fail-over) en utilisant 2 passerelles sur openVPN (côté serveur), en ayant par exemple 10.8.0.1 et 10.8.0.2, pour choisir vers quelle IP sortir derrière le VPN.
J'aimerais faire ça sans utiliser 2 clients simultanèment, ce qui prendrait plus de ressources (et un peu plus de bande passante j'imagine)

L'idéal serait d’adresser les IP fail-over directement sur le VPN pour le(s) clients, en mode TAP? Mais je pense que le serveur les récupère avant, une histoire d'adresse mac sur eth0?
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: kgersen le 16 novembre 2015 à 20:26:50
Je voudrais NATer vers plusieurs IP publiques (les fail-over) en utilisant 2 passerelles sur openVPN (côté serveur), en ayant par exemple 10.8.0.1 et 10.8.0.2, pour choisir vers quelle IP sortir derrière le VPN.
J'aimerais faire ça sans utiliser 2 clients simultanèment, ce qui prendrait plus de ressources (et un peu plus de bande passante j'imagine)

désolé mais j'ai vraiment du mal a te comprendre... "2 passerelles sur openVPN " ca veut dire quoi ?

t'as 2 LAN (LAN1=192.168.1.0/24 et LAN2=192.168.2.0/24) qui vont sur Internet via un seul pfsense. ce pfsense est en tunnel VPN avec un serveur  VPN qui a 2 IP publiques IPPUB1 et IPPUB2 et tu veux que LAN1 soit NATé sur IPPUB1 et LAN2 soit NATé sur IPPUB2 ? c'est bien ca?
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 16 novembre 2015 à 20:31:00
Oui, en fait l'interface virtuelle que OpenVPN utilise possède un adressage généralement dans 10.0.0.0/8, et la première IP est celle du serveur, les autres sont celles des clients.
Et je cherche à savoir si on peut assigner plusieurs IP côté serveur pour faire un NAT en fonction de cela. Ou l'inverse, mettre 2 IP sur le client?

Sinon, j'utilise 2 clients, mais c'est un peu ridicule  ::)

Je sais que ma demande est un peu spéciale, c'est du bricolage de NAT à la MacGyver mais ça peut marcher...
ensuite je devrais commander le serv' et ses IP ^^
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: xuaeser le 16 novembre 2015 à 21:26:27
J'aimerais faire ça sans utiliser 2 clients simultanèment, ce qui prendrait plus de ressources (et un peu plus de bande passante j'imagine)
Sauf que si avec ton pFsense tourne sur une machine avec au moins deux cœurs, tu obtiendras probablement de meilleurs perfs en ayant 2 clients OpenVPN dessus: chaque client va utiliser un coeur différent. Sur les connexions THD, c'est souvent le CPU qui est limitant. (bon je lis que tu es en ADSL...)
Je suis franchement pas persuadé que d'avoir un seul tunnel puisse améliorer les performances en faite...
Si tu tient à n'avoir qu'un seul tunnel, perso j'aurai tendance à créer un tunnel niveau 2 et à l'utiliser comme un trunk avec deux VLANs séparés dessus. Mais rien d'obligatoire à cela, tu peux aussi avoir deux plans d'adressage différents, à plat, sur le même tunnel.

Citation de: Darklight
Et je cherche à savoir si on peut assigner plusieurs IP côté serveur pour faire un NAT en fonction de cela. Ou l'inverse, mettre 2 IP sur le client?
Pourquoi tu ne pourrais pas ??! :p Je vois absolument pas ce qui risque de coincer la dessus. Par contre, il faudra probablement jouer avec des scripts sur le up/down (ce que permet OpenVPN) pour avoir ça qui remonte correctement quand tu reboot ou perte de connexion.

Sinon, je connais pas bien le principe des ip-failover... mais je sens que tu vas devoir utiliser du proxy ARP tout moche si tu veux amener les IPs de l'autre côté du tunnel...
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 16 novembre 2015 à 21:51:16
ça sent définitivement le bricolage le proxy ARP... faut mieux faire du NAT, c'est plus simple ;D

en fait je n'ai pas encore commandé le serveur mais je pense que les IP fail-over doivent apparaitre comme une interface réseau supplèmentaire qui s'affiche dans ifconfig...
Sinon si quelqu'un aurait un retour d'expérience ça serait cool!

En effet j'ai une carte mère dual-core, (j'ai acheté la même configuration qu'un membre du forum avait présenté il y a un petit moment), donc utiliser deux clients... de plus il y aurait une connexion 100Mbits en face. Si ça intéresse quelqu'un, sur le VPS actuel j'ai presque 1Gbit/s, vraiment impressionnant avec un wget  8)

wget http://ipv4.rbx.proof.ovh.net/files/1Gio.dat
--2015-11-16 21:54:03--  http://ipv4.rbx.proof.ovh.net/files/1Gio.dat
Resolving ipv4.rbx.proof.ovh.net (ipv4.rbx.proof.ovh.net)... 188.165.12.106
Connecting to ipv4.rbx.proof.ovh.net (ipv4.rbx.proof.ovh.net)|188.165.12.106|:80                                                          ... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1073741824 (1.0G) [application/octet-stream]
Saving to: `1Gio.dat'

100%[====================================>] 1,073,741,824  112M/s   in 9.3s

2015-11-16 21:54:12 (110 MB/s) - `1Gio.dat' saved [1073741824/1073741824]


Il reste à voir si Pfsense peut gérer plusieurs clients simultanèment.
Merci des quelques réponses, je suis preneur pour tout autre avis/conseil :)
Je vous tiens au courant
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: PhilippeMarques le 16 novembre 2015 à 22:11:44
.
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: kgersen le 16 novembre 2015 à 22:15:47
quand on contrôle les 2 cotés du tunnel on peut faire a peu pres tout ce qu'on veut.

Les configs openvpn de base sont simples mais le produit est bien plus riche.

on trouve les infos dans la doc ou en commentaire dans le   "config file" de reference (https://openvpn.net/index.php/open-source/documentation/howto.html#server) (voir la partie qui commence a "# To assign specific IP addresses to specific" ).

il faut jouer a la fois sur la config d'openvpn et iptables du serveur vps, tout n'est pas forcement au meme endroit.

par exemple on peut faire cette config simple:

réseaux privés (LAN1 et LAN2) -- psfense -- 10.8.0.2  --- 10.8.0.1 - serveur openvpn(nat(iptables)) -- internet (plusieurs IP)

La config VPN est tres simple : c'est juste un lien "site a site" donc un réseau avec 2 ip  (une a chaque bout) et du routage : LAN1 et LAN2 sont routés (et pas NATés) via 10.8.0.0/24 jusqu'au serveur openvpn. Ensuite, en dehors d'openvpn, le serveur peut NATer sur plusieurs IP publics en fonction de la source. Cela se fait avec iptables.

ps: pour tester des configs en live sans depenser trop: https://www.scaleway.com ca permet de payer a l'heure des instances mais on n'a pas de geoloc. Y'a meme une image toute prête: https://www.scaleway.com/imagehub/openvpn/
Une fois la config au point on peut ensuite passer sur OVH VPS.
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 16 novembre 2015 à 22:20:16
La question m'intéresse aussi, pour un besoin différent, rapatrier l'adresse publique attribuée par le VPS OVH sur l' interface d'une machine virtuelle avec un tunnel tap.
De plus, j'avais pensé utiliser le NAT 1:1 avec iptables, vers l'IP du (des) client NATé sur Pfsense, ce qui revient au même que sur ta machine virtuelle, qui est le client. C'est pas de la "vraie" IP publique, mais toutes les connexions seraient alors renvoyés sur ta machine virtuelle, à la manière des "DMZ" sur les box d'opérateurs.
Et pour des besoins spécifiques on peut toujours utiliser le VPS directement.

http://www.cahilig.net/2010/10/28/how-enable-11-nat-iptables (http://www.cahilig.net/2010/10/28/how-enable-11-nat-iptables)

Edit : grillé par kgersen, c'est à peu près ce que voyais
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: PhilippeMarques le 16 novembre 2015 à 23:54:30
.
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 21 novembre 2015 à 19:17:25
J'ai fini la configuration du VPS, OpenVPN fonctionne!

Les 2 clients sont en IP statique, 10.8.0.50 et 10.8.0.100. Pour l'instant je n'ai pas besoin d'héberger des choses derrière les IP donc pas de NAT 1:1 mais je prévois ça pour plus tard.

Voici le petit script iptables

iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport port -j ACCEPT

iptables -A INPUT -i tun+ -j ACCEPT
iptables -A OUTPUT -o tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

iptables -t nat -A POSTROUTING -m iprange --src-range 10.8.0.1-10.8.0.75 -j SNAT --to-source IP1
iptables -t nat -A POSTROUTING -m iprange --src-range 10.8.0.76-10.8.0.254 -j SNAT --to-source IP2


Et dans pfsense, j'ai crée 2 gateways et interfaces pour les clients.
Ensuite, une règle firewall dans chaque interface LAN pour rediriger de force la passerelle et ça fonctionne!
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: le 22 novembre 2015 à 20:22:38
Dès que tu invoques conntrack, la sémantique dépend de tous les modules conntrack* que tu as chargé, et de leurs paramètres, notamment pour déterminer ce qui compte comme RELATED.

Si tu crois avoir compris ce que fait SNAT, c'est qu'on t'a mal expliqué!
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 23 novembre 2015 à 22:15:05
J'utilise conntrack pour laisser passer les connexions établies uniquement pour la chaîne "FORWARD". Pour l'instant ça fonctionne (c'est le script un peu modifié que j'utilise en prod depuis 1 an) mais si tu as une idée pour l'améliorer, je suis ouvert à toute suggestion ;)

J'ai saisi le fonctionnement de SNAT, ici il me permet de gérer le NAT en sortie vers des IP, qui sont alias de eth0, respectivement eth0:0 et eth0:1. J'ai remarqué que iptables fonctionne par interface, donc si je fais une règle avec eth0, ça inclura toutes les IP de eth0. J'ai vu ça pour les règle d'ouverture de port, si j'autorise par exemple le port 80 sur eht0, je peut voir le site sur toutes mes IP.

Donc pour l'instant je suis obligé de spécifier l'ip de sortie. Pas très propre mais ça fonctionne !
Quand on y pense, l'ipv6 nous débarrassera de toutes ces cochonneries de NAT
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: le 23 novembre 2015 à 22:37:00
Si tu comprends le SNAT c'est que tu comprends conntrack.

Donc que tu comprends ce que signifient les états (NEW, etc.). Si c'est le cas, félicitations.
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 23 novembre 2015 à 22:55:45
Vu que dans cette configuration les premiers paquets passant par le VPN sont forcèment NEW depuis l'intérieur, j'ai pas pris la peine de l'indiquer. Mais c'est en entrée, depuis le côté public qu'il faut laisser passer que les paquets marqués ESTABLISHED, le minimum syndical de sécurité l'oblige. Dans le pire des cas j'ai toujours le routeur qui fait office de client VPN, il rajoute une couche de sécurité.

Si je me trompe pas, dans le cas du 1:1 , comme tout passera, je ne pense plus avoir besoin de gérer l'aspect stateful sur iptables, ça devient un pseudo-bridge en quelque sorte et c'est mon routeur à la maison qui fera le tri.
Titre: SNAT vs NAT 1:1
Posté par: le 23 novembre 2015 à 23:00:42
Oui, l'avantage du 1:1 est de ne pas avoir à s'enquiquiner avec conntrack, donc la sémantique est beaucoup plus simple!

Tu n'as plus rien à paramétrer. Tu n'as plus de limitation du nombre de "connexions" simultanées. Tu n'as plus le risque d'avoir un time-out sur la NAT-box.

Conceptuellement le SNAT de iptables et NAT 1:1 n'ont rien à voir.
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: Darklight le 23 novembre 2015 à 23:15:46
Mais pour du 1:1, on est bien sur une combinaison de SNAT et DNAT ?

J'avais une question à ce propos, si on "redirige" tous les ports d'une IP publique en 1:1, que se passe t-il quant aux règles iptables qui s'appliquent sur la même interface parent ? Il y a une priorité selon l'emplacement de la règle?
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: corrector le 24 novembre 2015 à 02:21:34
Mais pour du 1:1, on est bien sur une combinaison de SNAT et DNAT ?
Non pas du tout!

Le SNAT et le DNAT sont des opérations de niveau UDP, TCP, ICMP... de type conntrack. Tout est basé sur les "connexions" c'est à dire les sessions UDP (quadruplet = 2 IP + 2 ports), TCP (quadruplet = 2 IP + 2 ports), ICMP (triplet = 2 IP + identifiant)...
Titre: "minimum syndical de sécurité"
Posté par: le 24 novembre 2015 à 07:30:46
depuis le côté public qu'il faut laisser passer que les paquets marqués ESTABLISHED, le minimum syndical de sécurité l'oblige.
Pour moi la sécurité vient du fait de ne pas avoir de serveurs non désirés sur un PC (on contrôle ce qui est installé et qui fonctionne sur le serveur), et que les serveurs qui n'ont pas vocation à être accessible depuis l'extérieur ne doivent pas avoir d'adresses Internet.

Un contrôle d'accès par filtrage sur l'adresse IP source fait avant toute autre opération est simple et robuste.
Titre: Plusieurs gateways et WAN, sur OpenVPN
Posté par: le 24 novembre 2015 à 07:33:51
J'avais une question à ce propos, si on "redirige" tous les ports d'une IP publique en 1:1, que se passe t-il quant aux règles iptables qui s'appliquent sur la même interface parent ? Il y a une priorité selon l'emplacement de la règle?
J'ai rien compris.

Quelles sont tes règles?