Ajout d'une route sur le client à l'aide d'OpenVPN

13

Voici donc ma configuration. Ordinateur portable exécutant Ubuntu OpenVPN version 2.3.2

Je me connecte à un serveur OpenVPN qui se connecte à un réseau hors site.

Je fais fonctionner le client OpenVPN et je peux envoyer une requête ping au serveur VPN. Le serveur ne pousse aucune route, j'ai donc besoin de router sur le client.

Ajout des réseaux hors site à acheminer vers le serveur VPN afin que je puisse accéder au réseau hors site.

Donc, le problème que j'ai est que mes demandes ne sautent pas du réseau 192.168.0.1 vers le site 172 .. . * un ... Puis-je faire quelque chose à ce sujet sur mon client? Je n'ai aucune propriété du serveur et les routs ne sont pas poussés depuis le serveur maintenant, à l'avenir je ne sais pas

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:10.242.2.6  P-t-P:10.242.2.5  Mask:255.255.255.255
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:100 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100 
      RX bytes:0 (0.0 B)  TX bytes:12129 (12.1 KB)

wlan1     Link encap:Ethernet  HWaddr 5c:93:a2:a0:6e:1b  
      inet addr:10.101.7.41  Bcast:10.101.31.255  Mask:255.255.224.0
      inet6 addr: fe80::5e93:a2ff:fea0:6e1b/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:355109 errors:0 dropped:0 overruns:0 frame:0
      TX packets:206832 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:454685028 (454.6 MB)  TX bytes:23942624 (23.9 MB)



Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.101.0.1      0.0.0.0         UG        0 0          0 wlan1
10.101.0.0      0.0.0.0         255.255.224.0   U         0 0          0 wlan1
10.242.2.1      10.242.2.5      255.255.255.255 UGH       0 0          0 tun0
10.242.2.5      0.0.0.0         255.255.255.255 UH        0 0          0 tun0
192.168.0.0     10.242.2.5      255.255.255.0   UG        0 0          0 tun0
192.168.82.0    10.242.2.5      255.255.255.0   UG        0 0          0 tun0
Jocke
la source
Les routes peuvent être ajoutées par pusing / pulling ou configuration manuelle dans la configuration client. Votre question est-elle de savoir comment faire cela sans pousser les routes sur le serveur ou votre question de savoir comment les pousser du serveur vers les clients (ou individuels)? Veuillez inclure dans votre question ( modifiez-la s'il vous plaît): 1) Si vous contrôlez la configuration du serveur. 2) Inclure la configuration OpenVPN du client (également serveur si 1 était oui). De cette façon, nous pouvons mieux vous aider.
gertvdijk

Réponses:

25

En regardant votre table de routage. Il n'y a pas d'itinéraire explicite indiquant le trafic au 172 ... * comme vous l'appelez. À envoyer à l'interface VPN tun.

Vous avez plusieurs options:

  1. Si vous avez accès au serveur openVPN, ajoutez cette directive à la configuration openvpn:

    push "redirect-gateway def1 bypass-dhcp"
    

    Ce paramètre acheminera / forcera tout le trafic à passer par le VPN. L'autre alternative que vous avez. Est d'ajouter vous-même un itinéraire statique côté client

  2. Ajouter la route manuellement du côté client dans un terminal

    sudo route add -net 172.16.0.0/24 dev tun0
    
  3. openvpn a une directive pour ajouter et supprimer des routes côté client dans votre fichier de configuration openvpn avec l' routeoption.

    Ajouter:

    route 172.16.0.0 255.255.255.0
    

    à votre fichier de configuration openvpn sur le client vpn. ajoutera l'itinéraire automatiquement lorsque vous vous connecterez

  4. Bonus: openvpn a également une directive up/ downqui vous permet de lancer un script lors de la connexion au VPN. Cela peut vous permettre de faire n'importe quelle action personnalisée comme définir le DNS, les routes, etc. Mais cela vous oblige à stocker les commandes à exécuter dans un autre fichier.

    Donc, si vous aviez ce qui suit dans votre fichier de configuration client openvpn

    script-security 2 system
    up run-stuff-after-vpn-connect.sh
    

    Créez un fichier nommé run-stuff-after-vpn-connect.sh(assurez-vous qu'il dispose des autorisations d'exécution. Et ajoutez:

    #!/bin/sh
    route add -net 172.16.0.0/24 dev tun0
    

    Cela ajoutera l'itinéraire dès que le tunnel est en place


Puisque vous ne nous avez pas donné la déclaration complète de votre sous-réseau dans votre question en supposant que son 172.16.0.0/24

tomodachi
la source
donc si j'ajoute la route up add -net 172.16.0.0/24 dev tun dans mon fichier client.conf, la déroute devrait être affichée dans netstat -rn?
Jocke
non, le vpn ne monte pas si j'ajoute cette ligne dans client.conf
Jocke
où ajouter la commande up route ... ??
Jocke
2
@tomodachi J'ai dû utiliser la notation par points pour que cela fonctionne sur un client openvpn (2.3.11) route 0.0.0.0 128.0.0.0
Matt
4
Sur mon OpenVPN 2.3.13 (Windows 10), l'option route 172.16.0.0/24n'est pas acceptée, je dois 172.16.0.0 255.255.255.0plutôt utiliser route .
WoJ