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 16/06/2014, à 21:36

adv

[Résolu] OpenVPN serveur comme passerelle Internet

Bonjour à tous, lol

je me permet de vous solliciter car j'ai besoin de petit éclaircissement, éventuellement un bon coup de pousse (ou un coup de pied aux fesses peut être) tongue

Je vous explique le contexte. Mon meilleur ami va bouger d'Australie à la Chine. Là bas pas de Facebook. Je sais que d'autres potes utilisent des services de VPN payants pour rediriger leur trafic... J'aime bien les défis techniques et je voudrais lui mettre à dispo ce service (en soit FaceBook on s'en fou un peu, c'est juste manière qu'il ai un Internet libre)...

Je loue depuis quelques mois un VPS en Hollande chez Tilaa (distro Ubuntu 13.10) (j'ai un aMule et un Transmission qui tournent dessus pour éviter les courrier Hadopi).

Je voudrais qu'il se serve de ce serveur comme passerelle pour Internet via un VPN. En gros que son trafic Internet passe par mon serveur (comme cela plus de limitation).

J'ai donc installé OpenVPN sur le serveur en suivant ce tuto. http://guide.ubuntu-fr.org/server/openvpn.html

Le client sera un poste Windows. Pour le moment je teste de la France avec mon PC.

Voilà ou j'en suis...
- install OK
- config de l’autorité de certif OK
- création certif serveur et client OK
- config serveur simple OK
- config client simple OK

Je parviens donc à me connecter avec mon OpenVPN client sous Windows, j'attrape une adresse IP du serveur (en 10.8.0.x).

Mais c'est là que cela se complique, je ne sais pas trop de quelle manière m'y prendre pour que le trafic passe par la Hollande... la config se fait sur le serveur mais aussi surement aussi un peu sur le client...?

J'ai essayé cette option qui me paraissait pas mal coté serveur mais pas de mieux (je veux dire que quand je vérifie mon adresse IP sur un service en ligne c'est toujours mon IP Française qui est affichée...)

Si activée, cette directive permettra de configurer tous les clients pour que leur passerelle par défaut emprunte le VPN, entraînant tout le trafic IP comme la navigation web ou la résolution DNS à passer par le VPN (le serveur OpenVPN ou votre pare-feu central peut avoir besoin d'ajouter une règle NAT pour l'interface TUN/TAP afin que cela fonctionne correctement).

push "redirect-gateway def1 bypass-dhcp"

Quelqu'un a t'il déjà réalisé cette config ? Je pense en effet qu'il me manque quelque chose relatif au routage sur le serveur mais je ne sais pas trop vers où aller, si vous aviez des pistes...

J'aimerai comprendre ce que je fais c'est pour ça qu'avant de tenter tout et n'importe quoi je préfère demander... peut être qu'un tuto existe et peut être même que la réponse à ma question se trouve dans le tuto. Et je ne sais pas trop que lancer comme requête sur Google (ps: l'Anglais ne me fais pas peur).

MERCI A VOUS ! big_smile

La config coté serveur est celle par défaut et lisible dans le tuto à la partie: Configuration d'un serveur simple
La config coté client est :

client
remote [b]monserveur.com[/b]
port 1194
proto udp
dev tun
dev-type tun
ns-cert-type server
reneg-sec 86400
;auth-user-pass
;auth-retry interact
comp-lzo yes
verb 3
ca ca.crt
cert "C:\\Users\\adv\\VPN\\adv.crt"
key "C:\\Users\\adv\\VPN\\adv.key"
;management 127.0.0.1 1194
;management-hold
;management-query-passwords
auth-retry interact
; Set the name of the Windows TAP network interface device here
dev-node VPN [b]c'est bien le bon nom de carte réseau, je l'ai renommé[/b]

Dernière modification par adv (Le 17/06/2014, à 22:49)

Hors ligne

#2 Le 16/06/2014, à 23:24

Zakhar

Re : [Résolu] OpenVPN serveur comme passerelle Internet

Du moment que tu as testé ton VPN client et qu'il fonctionne, je peux tu dire comment on fait... sur un client Linux. Mais pour un W$ tu vas devoir aller demander ailleurs : j'ai 0 compétences et ça ne m'intéresse nullement d'en acquérir sur W$ (sauf si tu es prêt à payer pour cela... auquel cas je trouverai des copains prêts à prendre l'argent et t'aider... c'est comme ça la philosophie W$ !)

Le principe sur le client est simple, c'est du routage.

-1) tu tues Network-manager (sinon il va t'embêter et casser ce que tu fais !)
-2) tu remontes ton eth0 (ou wlan0, etc...)
-3) un coup de DHCP sur cette interface pour obtenir une IP locale de ta box (en supposant que tu es derrière un routeur, moi je fais ça dans un VirtualBox, c'est tout pareil, la VB te donne une IP de ta machine "guest", ainsi j'ai 2 IP publiques sur mon PC : celle de chez moi côté host, et celle de ma mère sur le guest).
-4) tu lances ta config client OpenVPN.

Voici ce que ça donne en live sur mon script pour me connecter en VPN sur la Freebox de ma mère (à l'autre bout de la France).

service network-manager stop
ifconfig eth0 up
dhclient3 eth0
cd /etc/openvpn/
openvpn freebox.ovpn

Là tu as un petit miracle qui est opéré par l'option

redirect-gateway présente dans la configuration cliente donnée par la Freebox.

En effet, sans cela, ton DHCP a routé ton eth0 pour 0.0.0.0 (default) vers la passerelle par défaut de ta box. Or si tu dois le faire "à la main", il faut défaire cela sinon tu ne passeras pas par le VPN. Mais tu ne peux pas remplacer directement la route par défaut par celle du VPN... sinon tu ne peux plus atteindre le VPN !

Il faut donc 1) router l'IP de ton serveur VPN via la passerelle par défaut de ta box, 2) changer le défault (0.0.0.0) pour qu'il passe par ton VPN.

Ce n'est pas bien sorcier à faire non plus, je fais ça à l'inverse depuis ma mère pour passer par ma Synology (qui est serveur VPN). C'est juste 3 commandes : un route del, et deux route add. Là je n'ai pas redirect-gateway, parce que le fonctionnement standard du PC de ma mère n'est pas de passer par mon IP... c'est juste quelle que chose que je peux forcer localement au besoin.
Donc attention, la redirect-gateway le fera passer systématiquement par le VPN du moment que la config. est lancée, et si ce n'est pas ce qui est voulu, il faut faire l'option "manuelle" !

Je te laisse regarder là pour redirect-gateway : https://openvpn.net/index.php/open-sour … howto.html.

Il y a des défauts, notamment s'il faut renouveler le DHCP, et ça semble poser des problèmes DNS sur W$...

Ce sera la bonne occasion pour que ton ami utilise Linux, un vrai O.S. tongue

Dernière modification par Zakhar (Le 16/06/2014, à 23:36)


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

Hors ligne

#3 Le 17/06/2014, à 08:56

tiramiseb

Re : [Résolu] OpenVPN serveur comme passerelle Internet

Salut,

Je pense en effet qu'il me manque quelque chose relatif au routage sur le serveur mais je ne sais pas trop vers où aller, si vous aviez des pistes..

As-tu mis en place du SNAT ou du MASQUERADING sur ton serveur ?
As-tu activé la fonctionnalité ip_forward du noyau sur ton serveur ?

Si as répondu "non" ou "je ne sais pas" à l'une de ces deux questions, ça ne pourra pas fonctionner.
Par ailleurs, selon la technologie utilisée par ton hébergeur pour les VPS, il est possible que tu ne puisses pas avoir accès aux paramètres du noyau...


Zakhar : pourquoi arrêter NetworkManager pour te connecter à un serveur OpenVPN !? Sachant que NetworkManager supporte OpenVPN...

Hors ligne

#4 Le 17/06/2014, à 09:45

tiramiseb

Re : [Résolu] OpenVPN serveur comme passerelle Internet

comme le soulige Zakhar, network-manager est source de complication en tant que client openvpn

Je n'ai jamais eu aucun problème en utilisant OpenVPN au travers de Network Manager. C'est pourquoi je demande des précisions...

Hors ligne

#5 Le 17/06/2014, à 22:23

Zakhar

Re : [Résolu] OpenVPN serveur comme passerelle Internet

tiramiseb a écrit :

comme le soulige Zakhar, network-manager est source de complication en tant que client openvpn

Je n'ai jamais eu aucun problème en utilisant OpenVPN au travers de Network Manager. C'est pourquoi je demande des précisions...

Sur du eth0, je n'ai jamais rien constaté de grave.

Mais sur wlan0, si tu fais un down de l'interface, Network-Manager va se dire : "tiens, la carte wifi est tombée, je vais me la remonter !"... chose dont tu n'as pas forcément envie vu que tu viens expressément de faire un down ! tongue

Ca c'était en 12.04. Je n'ai pas encore fait le test en 14.04. (*)

Autre chose fâcheuse avec Network-Manager, par exemple, lorsque je dois faire de la Free Wifi, et j'ai hélas pu le vérifier il y a peu car ma connexion ADSL a des "ratées" en ce moment je coupe systématiquement NM et je fais les commandes "à la main" (ifup, dhclient, etc...).

Pourquoi... la raison est simple, NM fait des scans Wifi à espace de temps régulier. Cela permet d'entretenir la liste des AP Wifi que tu vois en cliquant sur l'applet, et très théoriquement de changer d'AP si plusieurs AP du même nom existent et que celle sur laquelle tu es connectée s'éteint (chose qui peut effectivement être utile avec FreeWifi).

Mais le gros problème avec le "scan", c'est que ton antenne Wifi doit changer de fréquence pour aller scanner tous les canaux. Il est possible que cela fonctionne bien sur les antennes que tu utilises, mais sur mon Alfa AWUS036H (assez connue pour son mode monitor et sa puissance !), le scan provoque un effet de bord désagréable : c'est que ton débit s’effondre momentanément à pas loin de 0 !.. A tel point que parfois, si tu fais un téléchargement, ça se coupe. Alors déjà que la Free Wifi tu n'as pas un débit fameux, autant te dire qu'avec les scans c'est pas le pied.

Comme je n'ai jamais trouvé le moyen (je ne sais pas s'il existe), de dire à NM de ne plus scanner lorsque j'ai choisi la connexion, le moyen le plus efficace que j'aie trouvé à ce jour en Wifi c'est de tuer NM.

Aussi, pour toute autre "manipulation" réseau avec des bricolages sur les routes ou autres, je préfère toujours prendre la précaution de tuer NM. Déjà que ce n'est pas toujours facile de maîtriser ce qu'on fait en réseau, avec un NM qui te fait des trucs dans ton dos (du genre iwlist wlan0 scan)... j'aime mieux éliminer cette cause de "pannes" !..

Par contre, si tu as un moyen de commander à NM de ne plus scanner les Wifi, je suis preneur ! big_smile


(*) EDIT : ça ne semble plus le faire en 14.04... par contre le scan est toujours là. hmm

(*) EDIT 2 : par contre deux trucs qui me chagrinent toujours avec NM, et c'est toujours le cas en 14.04 :
1)
- tu down ta wlan0
- tu changes d'AP sur l'applet, il re-up l'interface... ça à la limite on peut "fonctionnellement" comprendre.

2)
- sudo ifconfig wlan0 down hw ether cc:cc:cc:cc:cc:cc
- tu changes d'AP, il re-up l'interface avec l'adresse MAC d'origine...
Non mais... la raison pour laquelle je change d'adresse MAC me regarde, de quel droit il remet celle d'origine et la révèle au monde entier !.. tongue
En réalité je présume qu'il utilise celle que tu programme dans l'applet graphique, qui par défaut est celle de ta carte.

Conclusion : lignes de commande et NM ne font pas bon ménage !..

Dernière modification par Zakhar (Le 17/06/2014, à 22:41)


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

Hors ligne

#6 Le 17/06/2014, à 22:36

tiramiseb

Re : [Résolu] OpenVPN serveur comme passerelle Internet

Mais sur wlan0, si tu fais un down de l'interface, Network-Manager va se dire : "tiens, la carte wifi est tombée, je vais me la remonter !"... chose dont tu n'as pas forcément envie vu que tu viens expressément de faire un down !

Ben fais le down avec Network Manager ! Si tu coupes une interface gérée par Network Manager sans le lui dire, forcément il va essayer de la relancer...

le scan provoque un effet de bord désagréable : c'est que ton débit s’effondre momentanément à pas loin de 0

En effet, chez moi je n'ai pas ce genre de problème.

Ça reste un cas particulier... smile

sur mon Alfa AWUS036H

Moi mon Alfa (Romeo 147 Selespeed) fonctionne bien... lol

Hors ligne

#7 Le 17/06/2014, à 22:44

Zakhar

Re : [Résolu] OpenVPN serveur comme passerelle Internet

Essaye les commandes de l'Edit 2, tu verras !

Et effectivement, le driver de l'Alfa AWUS036H n'est pas top, je confirme. hmm
Jusqu'à la 10.04 j'ai même dû le compiler depuis le source pour que ça daigne marcher... mais au moins en faisant ça j'avais les commandes "spéciales" pour booster la puissance à des niveaux pas vraiment autorisés chez nous. wink Depuis la 12.04 ça fonctionne out-of-the-box, mais sans les commandes spéciales, pas grave, je m'en passe !

C'est encore à cause des ces pourris de constructeurs qui font du "closed source". Elle est même sensée fait de l'AP sur W$... mais le driver Linux ne supporte pas ce mode. hmm

Dernière modification par Zakhar (Le 17/06/2014, à 22:47)


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

Hors ligne

#8 Le 17/06/2014, à 22:49

adv

Re : [Résolu] OpenVPN serveur comme passerelle Internet

Bonsoir à tous et merci pour l’intérêt que vous portez à mon problème ! J'ai le grand plaisir de vous annoncer que grâce à votre aide j'ai pû arriver à mes fins.

Reprenons du début...

J'ai déjà résolu un problème de base, je ne parvenais à pinger mon serveur (10.8.0.1), la raison est la suivante.
Pour que l'instruction "redirect-gateway def1" soit interprété (ajout de la route sur le client) il faut que le client soit lancé sous Win7 "en tant qu'administrateur" j'ai trouvé l'info sur un autre forum http://www.system-linux.eu/index.php?po … pn-Windows

Ensuite je me suis penché sur vos commentaires...

Merci Zakahr, même si l'on ne partage pas le même avis ce que tu dis a du sens... et c'est clair pour le coup. Même si c'est un débat qui se rapproche de la politique BEIN JE TROUVE CA VACHEMENT PLUS INTÉRESSANT lol

Ensuite viens le comm de tiramiseb, TADEIINNNNNN, pour te répondre:
As-tu mis en place du SNAT ou du MASQUERADING sur ton serveur ? je pense que c'est masquerading en toute logique car j'ai passé la commande : iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

As-tu activé la fonctionnalité ip_forward du noyau sur ton serveur ? et là c'est le drame cool une commande cat /proc/sys/net/ipv4/ip_forward me renvoi 0

J'active et HOP yikes ni une ni deux, je me reconnecte teste mon IP sur http://www.whatismyip.com/ je suis maintenant citoyen d'Amsterdam !!!

Un très grand merci à vous wholes, tiramiseb et Zakhar, grâce à vous j'ai appris des choses, j'aimerai vous retourner l'appareil hélas mon domaine c'est plus les autos et l’électronique...

Il me reste donc à figer tout cela : la route et le ip_forward pour qu'ils persistent au reboot éventuel du serveur.

Merci les gars !!! wink

Dernière modification par adv (Le 17/06/2014, à 22:52)

Hors ligne

#9 Le 17/06/2014, à 23:05

tiramiseb

Re : [Résolu] OpenVPN serveur comme passerelle Internet

Zakhar a écrit :

Conclusion : lignes de commande et NM ne font pas bon ménage !..

Ça, c'est clair et net.

je pense que c'est masquerading en toute logique car j'ai passé la commande [...]

En fait, le masquerading c'est juste du SNAT qui devine tout seul l'adresse IP à utiliser. Si ton serveur a une adresse IP fixe, alors le SNAT est suffisant. Menfin au final, ça donne le même résultat.

Il me reste donc à figer tout cela : la route et le ip_forward pour qu'ils persistent au reboot éventuel du serveur.

Pour le masquerading, plusieurs possibilités :
- tu ajoutes la commande dans /etc/rc.local
- tu crées un script que tu mets au démarrage de la machine, dans /etc/init.d et tout le bazar
- tu mets un cronjob @reboot
- tu installes un logiciel de pare-feu qui gère ça, par exemple Shorewall (mais si c'est juste pour cette règle-là, ça fait usine à gaz)

Pour ip_forward, utilise /etc/sysctl.conf (il y a juste une ligne à décommenter).

Hors ligne

#10 Le 18/06/2014, à 00:09

Zakhar

Re : [Résolu] OpenVPN serveur comme passerelle Internet

C'est sûr, la Freebox et la Syno elles sont paramétrées d'office avec SNAT, ipforward et tout le saint frusquin... ce qui m'a évité de le faire dans mes cas d'usage. tongue

En plus pour la Freebox, s'ils ne l'avaient pas fait, eh bien ça aurait été ballot car on n'a pas vraiment accès à ce niveau là de l'OS. Mais précisément, ils ont mis le VPN serveur sur la Freebox pour le cas d'usage que tu cites adv, c'est à dire pouvoir utiliser sa propre IP quand on est dans un pays "filtré", du coup tout est bien paramétré direct ! tongue

Et en tout cas, bravo pour avoir réussi à configurer tout ça !
Plus d'un jette l'éponge. Déjà les connaissances en informatique générale sont assez faibles, alors dès qu'on touche aux réseaux... il n'y a carrément plus personne. tongue

Dernière modification par Zakhar (Le 18/06/2014, à 00:11)


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

Hors ligne

#11 Le 18/06/2014, à 11:33

adv

Re : [Résolu] OpenVPN serveur comme passerelle Internet

Merci tiramiseb,

j'ai utilisé la première méthode pour recréer la route, et pour ip_forward j'ai suivi ta recommandation. J'ai rebooté le serveur et cela fonctionne (oui je sais on reboot jamais un Linux, vu que ça peut marcher pendant des années sans reboot... big_smile).

Voilà maintenant reste à voir si la république de Chine va autoriser le trafic de mon pote sur le port 1194 à destination de la Hollande... (je rappelle que le but de l'intervention était d'offrir un trafic non bloqué à tous les sites Internet pour un ami qui part en chine pour un moment).

Maintenant c'est parti pour la config du client, mais sur son smartphone.

Bien à vous,

Antoine lol

Dernière modification par adv (Le 18/06/2014, à 11:36)

Hors ligne

#12 Le 18/06/2014, à 11:41

tiramiseb

Re : [Résolu] OpenVPN serveur comme passerelle Internet

oui je sais on reboot jamais un Linux

Meuh si : pour valider qu'il est toujours capable de rebooter (c'est très emmerdant de devoir rebooter après plusieurs années en ne sachant pas si ça repartira correctement) et puis les mises à jour de noyau nécessitent un reboot big_smile

reste à voir si la république de Chine va autoriser le trafic de mon pote sur le port 1194 à destination de la Hollande

Tu peux changer de port, aussi ... smile

Hors ligne

#13 Le 18/06/2014, à 18:58

Zakhar

Re : [Résolu] OpenVPN serveur comme passerelle Internet

tiramiseb a écrit :

Tu peux changer de port, aussi ... smile

C'est même d'ailleurs recommandé puisque celui-ci est réservé par l'IANA pour OpenVPN...
(source : https://www.iana.org/assignments/servic … umbers.txt )

Les chinois ne sont pas crétins, ce port a toutes les chances d'être bloqué. tongue

Dernière modification par Zakhar (Le 18/06/2014, à 18:59)


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

Hors ligne

#14 Le 19/06/2014, à 13:42

adv

Re : [Résolu] OpenVPN serveur comme passerelle Internet

Fin mot de l'histoire...

Tout est OK ! Par sécurité j'ai passé le port en 8080 avant de lui envoyer son fichier de config du client .ovpn

Du coté serveur dans le fichier de config j'avais mis le DNS 10.8.0.1 en DHCP-OPTION mais de son coté il n'avait pas de résolution alors que chez moi cela fonctionnait...

Bon j'ai pas trop cherché à comprendre du coup j'ai mis deux DNS de OpenDNS à la place et ça fonctionne impec.

Encore une fois merci les gars ! lol

Dernière modification par adv (Le 19/06/2014, à 13:43)

Hors ligne