web-dev-qa-db-fra.com

Comment ajouter une route après la connexion au serveur openvpn?

J'essaie depuis plusieurs jours de résoudre mon problème. J'utilise OpenVPN pour Windows depuis un certain temps et après avoir remplacé Windows par Ubuntu 13.10, j'étais heureux de constater que OpenVPN est également disponible pour Ubuntu.

J'ai copié mes paramètres depuis Windows et dans/var/log/syslog, je constate que ma connexion a bien été créée. Cependant, peu importe ce que je fais, je suis incapable de définir des itinéraires. Dans Windows, ceci était simplement effectué par un script qui fonctionnait comme suit (les adresses IP diffèrent légèrement car je dois les garder privées):

c:\windows\system32\route.exe delete 55.78.16.20
c:\windows\system32\route.exe delete 55.78.16.0
del tmp.cmd
c:\windows\system32\route.exe print | grep.exe -m1 "^ *0.0.0.0" | sed.exe s/\x20\x20*/\t/g | cut.exe -f4 | sed "s/.*/c:\\windows\\system32\\route.exe add 55.78.16.20 mask 255.255.255.255 &/" > tmp.cmd
c:\windows\system32\route.exe print | grep "^ *172.16.0.1" | sed s/\x20\x20*/\t/g | cut -f4 | sed "s/.*/c:\\windows\\system32\\route.exe add 55.78.16.0 mask 255.255.255.0 &/" >> tmp.cmd
tmp.cmd

Une fois la connexion établie et le script ci-dessus exécuté, les connexions à mes serveurs passaient par un réseau privé virtuel (VPN), tandis que tous les autres passaient normalement.

Puisque ce script utilise grep, sed et cut, je me suis dit que je pouvais facilement le "traduire" en linux. Et je l'ai fait, sauf que je ne suis pas sûr de savoir comment utiliser la commande route pour définir ma connexion correctement.

P.S. J'ai également essayé de configurer un réseau privé virtuel à l'aide du gestionnaire de réseau, mais la même question se pose: comment ajouter des itinéraires?

Merci d'avance

2
playcat

Tout d'abord:

Vous utilisez des outils GNUsous Windows? Comme WTHname__ homme.

Seconde:

Fondamentalement, vous avez deux façons de réaliser la même chose.

La première consiste à utiliser la commande ipname__. Vous feriez quelque chose comme ip route add .... même si je suis un peu oldschool et que je n'aime pas ipname__, donc je ne suis pas trop sûr de la façon dont vous feriez cela, mais man ip vous aidera certainement.

La seconde consiste à utiliser l'ancienne commande routename__. Avec cela, vous pouvez modifier la table de routage du noyau. L’émission de man route vous dira à peu près ce que vous devez faire, mais par souci d’exhaustivité, cela devrait ressembler à quelque chose comme route add <target IP you want to reach> <interface that you want the target to be reached>. Vous pouvez définir l'adresse IP cible sur des sous-réseaux entiers, mais vous devrez également ajouter une passerelle à cet effet également. (Et établissez un itinéraire vers cette passerelle.)
Oh, vous pouvez vérifier vos interfaces avec ipet ifconfigname__.

Permettez-moi de savoir comment cela fonctionne pour vous.

0
Wolfer

Sur OpenVPN, vous pouvez accomplir cela de trois manières:

  1. Le serveur pousse la route vers TOUS les clients. Vous faites cela en plaçant la commande route dans le fichier server.conf, sur le serveur
  2. Le serveur pousse la route vers un seul client. Pour ce faire, vous placez la commande route dans un fichier spécifique au client dans le dossier client-config du serveur.
  3. Le client établit l'itinéraire. Vous faites cela en plaçant la route dans votre fichier de configuration client (ovpn on windows)

Dans les trois cas, cela ressemble à ceci:

route [routeaddress] [netmask]

c'est à dire.

route 172.92.3.0 255.255.0.0

Consultez cette page pour plus de détails.

http://openvpn.net/index.php/open-source/documentation/howto.html

14
Xavier J