[OpenVPN] Connexion internet par VPN ?

Bonjour,

Je suis en train d’installer un serveur sous Debian pour m’autohéberger. Parmi les fonctionnalités de ce serveur, j’aurai souhaité avoir un VPN installé.

J’ai donc installé OpenVPN et l’ait configuré. Je peux me connecter au VPN mais j’ai deux problèmes :

  • La connexion au VPN est très longue, est-ce normal ? (plusieurs dizaines de secondes / minutes) Une fois connecté, j’ai un ping de 200ms en moyenne avec le serveur.
  • Je n’arrive pas à rediriger le trafic internet pour passer par le VPN. J’ai suivi ce guide ( doc.ubuntu-fr.org/openvpn#accede … _votre_vpn - partie 6). Je suis bien connecté mais pas moyen d’avoir Internet. Sur un autre poste, si je lance un navigateur, j’ai le droit à “recherche de l’hôte” avant d’avoir un message d’erreur. J’en conclus donc qu’il y a déjà un problème de DNS ?

Comment faire ?

Merci

non, quel est le nom du serveur vpn ?

c’est fait automatiquement a la base …sinon dis en plus …

wifi ou filaire ?

J’ai installé OpenVPN sur mon serveur, chez moi (connexion SFR, relié à la box en ethernet). Pour le test, j’ai utilisé un autre poste connecté sur le hotspot SFR (SFR wifi public) puis grâce à la connexion 3G de mon téléphone. Dans les deux cas j’arrive à me connecter mais pas de connexion internet et la connexion est très longue.

Pour la configuration du serveur, j’ai suivi le guide précédent.

Merci

ok

donc

debian stable sid testing ?

networkmanager ou wicd ?

Le serveur est sous Debian Stable.

Le client est sous Debian testing + network manager (gnome 3). Mais je soupçonne le problème de venir de la configuration du serveur… Je vais essayer de tester avec un autre poste client.

Merci

Un VPN, c’est juste un lien réseau, pas un accès internet.
Là, c’est comme si tu déclarais ton serveur comme passerelle par défaut sur un poste du réseau local. Pour que cela fonctionne, il faut que le serveur se comporte comme un routeur (éventuellement avec NAT/masquerading).

Concernant le problème de DNS : si le poste client garde les DNS de sa connexion internet principale, ceux-ci peuvent ne pas répondre lorsqu’ils sont interrogés depuis le VPN surtout si le FAI est différent. Il faut donc soit créer une exception dans la table de routage du client pour les DNS, soit modifier les DNS interrogés lorsque le VPN est actif.

Ce n’est pas normal. Pour ma part, j’ai un serveur OpenVPN qui fonctionne sous un NSLU (minuscule configuration matérielle) et l’accès VPN y est très rapide pour le surf et ce même en utilisant mon smartphone comme hotspot.

Bien évidemment, si tu héberge ce service chez toi, il y a de grandes chances (si tu habite en Françe) que ta vitesse d’émission soit limitée à 1M (méga) bites par secondes donc depuis ton poste client connecté au VPN tu ne pourra recevoir les données qu’à 1M bps au maximum (même moins vu l’encapsulation réalisée).

Poste nous ton fichier de configuration ou compare avec celle donnée ici :

http://mathieu-androz.developpez.com/articles/linux/vpn/

Je viens de trouver d’où vient le problème ! C’est un problème lié à iptables. En effet, si je fais

Plus de problème, ça fonctionne. Mais ceci est un peu excessif…

Quelle est la meilleure configuration d’iptables pour OpenVPN + connexion internet à travers OpenVPN ? Pour l’instant, j’ai ceci (insuffisant) :

[code]iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

iptables -t filter -A INPUT -p udp --dport 4911 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 4911 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
[/code]

Merci

Pourquoi excessif ?
La meilleure configuration, c’est celle qui répond à tes besoins. Quels sont tes besoins ?

En ce qui concerne iptables, je voudrais avoir une politique très restrictive en n’autorisant que le nécessaire.

Ainsi, je bloque tout par défaut et j’autorise explicitement les connexions en ssh, le serveur web (Apache) etc.
Je voudrais donc faire de même avec le service VPN.

Une politique “ouverte” (tout accepter en entrée, en sortie et en forward par défaut) conviendrait également. Pourtant, ce ne serait pas très sécurisé… et pour le coup iptables ne servirait à rien…

Merci

EDIT : Problème résolu en rajoutant (je suis obligé d’autoriser tout le forwarding, donc je ne l’autorise que sur l’interface du VPN) :

iptables -I FORWARD -i tun0 -j ACCEPT iptables -I FORWARD -o tun0 -j ACCEPT