Achemine tout le trafic via OpenVPN

30

Ouais, cette question a été posée cent fois, et j'ai cherché partout, en vain.

Le titre dit tout vraiment.

J'ai un serveur OpenVPN (sur Ubuntu), et je peux me connecter via mon client (Windows 8) ...

Le problème commence lorsque j'essaie de router tout le trafic via le VPN.

J'ai ajouté les indicateurs push dans server.conf:

push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"

Lorsque je me connecte à partir du client, les sorties du client:

Wed May 07 21:38:40 2014 SENT CONTROL [StretchVPN-CA]: 'PUSH_REQUEST' (status=1)
Wed May 07 21:38:41 2014 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 8.8.8.8,route-gateway <Remote Router IP>,ping 10,ping-restart 120,ifconfig 192.168.0.201 255.255.255.0'
Wed May 07 21:38:41 2014 OPTIONS IMPORT: timers and/or timeouts modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: --ifconfig/up options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: route options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: route-related options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed May 07 21:38:41 2014 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed May 07 21:38:41 2014 open_tun, tt->ipv6=0
Wed May 07 21:38:41 2014 TAP-WIN32 device [Local Area Connection 4] opened: \.\Global\{1F145805-92FC-454E-8FD9-0A6017DD4AD1}.tap
Wed May 07 21:38:41 2014 TAP-Windows Driver Version 9.9
Wed May 07 21:38:41 2014 Notified TAP-Windows driver to set a DHCP IP/netmask of 192.168.0.201/255.255.255.0 on interface {1F145805-92FC-454E-8FD9-0A6017DD4AD1} [DHCP-serv: 192.168.0.0, lease-time: 31536000]
Wed May 07 21:38:41 2014 Successful ARP Flush on interface [35] {1F145805-92FC-454E-8FD9-0A6017DD4AD1}
Wed May 07 21:38:46 2014 TEST ROUTES: 1/1 succeeded len=0 ret=1 a=0 u/d=up
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD <Remote Router IP> MASK 255.255.255.255 172.20.10.1
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=25 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 192.168.0.3
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 192.168.0.3
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 Initialization Sequence Completed

J'ai essayé d'utiliser les drapeaux du côté client lors de l'ouverture de la connexion:

openvpn --config "C:\Program Files\OpenVPN\config\client.ovpn" --redirect-gateway def1 --route-method exe

Mais quand même, quand je vais sur whatsmyip.org, ça dit toujours mes clients ip.

Quelqu'un at-il eu ce problème et a réussi à le résoudre?

Merci beaucoup

    
posée Just Lucky Really 07.05.2014 - 22:21
la source

5 réponses

26

Je l'ai testé en utilisant un serveur OpenVPN et la configuration de l'option redirect-gateway def1 dans la configuration client et serveur fonctionne correctement. Lorsque j'accède au whatismyip.org , je vois l'adresse IP de mon serveur OpenVPN. Voici la configuration client que j'utilise:

client
dev tun
proto udp
# THE IP OF THE REMOTE OPENVPN SERVER:
remote ip_address port
resolv-retry infinite
nobind
persist-key
persist-tun
# THE CSR FILE:
pkcs12 certificate.p12
ns-cert-type server
cipher AES-256-CBC
comp-lzo
redirect-gateway def1
verb 3

J'ai également testé l'ajout de l'option redirect-gateway def1 à la commande openvpn et obtenu le même résultat. La configuration du serveur est la suivante:

port 1194
proto udp
dev tun

dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ca /etc/openvpn/easy-rsa/keys/ca.crt
# ENSURE THE DOMAIN NAME/FILENAME IS CORRECT:
cert /etc/openvpn/easy-rsa/keys/cert.crt
key /etc/openvpn/easy-rsa/keys/cert.key

server 10.5.3.0  255.255.255.0
# YOUR LOCAL SERVER IP HERE:
client-config-dir ccd
route 10.5.3.0 255.255.255.0
ifconfig-pool-persist ipp.txt
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun

status log/openvpn-status.log 5
status-version 2
log-append log/openvpn.log
verb 3  # verbose mode
management localhost port /etc/openvpn/management-password

# ROUTE THE CLIENT'S INTERNET ACCESS THROUGH THIS SERVER:
push "redirect-gateway def1"
push "remote-gateway vpn_server_ip"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 60
    
réponse donnée cioby23 15.05.2014 - 00:08
la source
11

Vous avez peut-être oublié de modifier votre NAT? Exécutez ces 3 commandes en tant que root

Commandes:

iptables -I FORWARD -i tun0 -o eth0 \
         -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

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

iptables -t nat -I POSTROUTING -o eth0 \
          -s 10.8.0.0/24 -j MASQUERADE

Légende:

  • tun0: votre carte réseau VPN virtuelle
  • eth0: votre carte réseau normale
  • 10.8.0.0: votre bloc ip de réseau VPN
réponse donnée chickahoona 27.01.2015 - 22:42
la source
1

Après une recherche difficile de la réponse, il semble que j'ai résolu ce problème, peut-être partiellement, mais au moins très simplement:

J'utilise le package Xubuntu 14.04 et OpenVPN de la source principale. Dans Paramètres & gt; Système & gt; Réseau , j'ai remplacé l’adresse DNS préinstallée 127.0.1.1 par 8.8.8.8 de Google, et maintenant je peux voir tout le trafic passant par le serveur VPN.

Dans la table de Wireshark, une chaîne telle que DNS est absente: toutes les données vont comme TCP via un canal crypté. Je peux voir le trafic DHCP et DNS lorsque je regarde tun0 (interne à l'ordinateur portable). Lorsque j'explore le trafic wlan0 (externe entre portable et routeur WiFi), je n'obtiens que des packages TCP gris.

Je pense que cela se produit parce que la requête DNS n’est pas nécessaire pour le décodage de caractères en nombres et qu’elle se déroule comme un paquet de données habituel.

Je serai ravi de connaître vos considérations, ce ne sera pas une surprise si je me trompe complètement

    
réponse donnée xrobot 11.07.2014 - 04:01
la source
0

Si votre client OpenVPN est sous Windows 10 (ou similaire), il existe un autre problème à surveiller, l’ordre de liaison des cartes réseau. Les paramètres de serveur DNS existants sur l'adaptateur LAN ou Wifi peuvent avoir la priorité sur les paramètres du serveur DNS pour l'interface du tunnel. Même si tout est configuré correctement d'un point de vue OpenVPN, Windows continue à utiliser le serveur DNS d'origine. p>

Vous pouvez résoudre ce problème comme décrit dans ce post sur le forum Microsoft.

lien

    
réponse donnée JudgedByDredd 04.03.2018 - 19:15
la source
0

Ajoutez la directive suivante au fichier de configuration du serveur:

push "redirect-gateway def1"

Si votre configuration VPN se fait sur un réseau sans fil, où tous les clients et le serveur se trouvent sur le même sous-réseau sans fil, ajoutez l'indicateur local:

push "redirect-gateway local def1"

En poussant l’option redirect-gateway vers les clients, tout le trafic réseau IP provenant des ordinateurs clients passera par le serveur OpenVPN. Le serveur devra être configuré pour gérer ce trafic d'une manière ou d'une autre, par exemple en le faisant NAT sur Internet ou en le routant via le proxy HTTP du site du serveur.

Sous Linux, vous pouvez utiliser une commande comme celle-ci pour NAT sur le trafic client VPN vers Internet:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Cette commande suppose que le sous-réseau VPN est 10.8.0.0/24 (extrait de la directive du serveur dans la configuration du serveur OpenVPN) et que l'interface Ethernet locale est eth0.

Lorsque redirect-gateway est utilisé, les clients OpenVPN achemineront les requêtes DNS via le VPN et le serveur VPN devra les gérer. Cela peut être accompli en plaçant une adresse de serveur DNS sur la connexion des clients qui remplaceront leurs paramètres de serveur DNS normaux pendant que le VPN est actif. Par exemple:

push "dhcp-option DNS 10.8.0.1"

configurera les clients Windows (ou non-Windows avec des scripts supplémentaires côté client) pour utiliser 10.8.0.1 comme serveur DNS. Toute adresse accessible depuis les clients peut être utilisée comme adresse du serveur DNS.

    
réponse donnée Pol Hallen 03.11.2017 - 20:21
la source

Lire d'autres questions sur les étiquettes