# [HOWTO] Client VPN

## kernelsensei

Bon voila, aujourd'hui j'ai ramé pour me connecter en VPN sur le reseau de ma fac, dans un premier temps j'ai essayé vpnclient de Cisco mais j'ai rencontré un problème avec ce dernier, TOUTES mes connection internet passaient par le VPN ce que je voulais pas !

Je me suis alors tourné vers vpnc, qui aprés de longues batailles me donne le résultat que j'attendais : me connecter sur le reseau de la fac tout en utilisant les routes standart pour acceder au web public (linuxfr, gentoo, ...).

La procédure ressemble plus à un bidouillage, selon moi, barbare qu'à un HOWTO digne de ce nom, mais si cela peut aider quelqu'un pourquoi pas !

 INSTALLATION DE VPNC

Verifiez que vous avez le module <M>   Universal TUN/TAP device driver support dans la configuration de votre kernel.

```
emerge vpnc
```

 CONFIGURATION DE VPNC

On edite /etc/vpnc.conf pour y mettre :

```

Interface name vpnuni

IKE DH Group dh2

Perfect Forward Secrecy nopfs

IPSec gateway <Gateway VPN>

IPSec ID <Votre Groupe>

IPSec secret <Pass du Groupe>

Xauth username <Login>

```

vpnuni est le nom que vous voulez donner a l'interface qui apparaîtra dans ifconfig vous pouvez l'appeler tux si ça vous chante  :Smile: 

C'est tout pour la config !

 CONNECTION ET MODIFICATION DE LA TABLE DE ROUTAGE

Pour ce connecter c'est simple :

```
#modprobe tun

#vpnc-connect
```

Tappez votre pass !

Normalement vpnc vous indique qu'il est maintenant lancé !

Pour déconnecter :

```
# vpnc-disconnect
```

Si vous souhaitez que TOUTES vos connections passent par le VPN, ce HOWTO s'arrête ici pour vous !

Perso, le fait que tout passe par le VPN ne me convient pas, si cela vous  dérange vous aussi, l'aventure continue ...  :Smile: 

voici de quoi avait l'air ma table de routage :

```

Table de routage IP du noyau

Destination     Passerelle      Genmask         Indic   MSS Fenêtre irtt Iface

134.96.12.2     192.168.0.1     255.255.255.255 UGH    1500 0          0 eth1

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1

127.0.0.0       127.0.0.1       255.0.0.0       UG        0 0          0 lo

0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 vpnuni

```

explications :

134.96.12.2 est la GW de mon VPN

192.168.0.1 est mon routeur DLINK

A partir de là, et comme je ne maîtrise pas route je me suis mis à bricoler ...

```

# route add -net 134.96.0.0 netmask 255.255.0.0 vpnuni

# route del default

# route add default gw dlink eth1

```

ce qui nous donne :

```

Table de routage IP du noyau

Destination     Passerelle      Genmask         Indic   MSS Fenêtre irtt Iface

134.96.12.2     192.168.0.1     255.255.255.255 UGH    1500 0          0 eth1

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1

134.96.0.0      0.0.0.0         255.255.0.0     U         0 0          0 vpnuni

127.0.0.0       127.0.0.1       255.0.0.0       UG        0 0          0 lo

0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth1

```

Et BINGO, ça marche  :Very Happy: 

Donc en gros, si vous êtes dans le même cas que moi, voici la demarche :

```

# route add -net <network_du_reseau_vpn> netmask <netmask_vpn> <INTERFACE_TUNNEL>

# route del default

# route add default gw <passerelle_Habituelle> Interface_Passerelle

```

Voila !

Je le répete, c'est selon moi, un bricolage un peu barbare, alors si des experts VPN / route passent par là, qu'ils me corrigent !

 RÉSOLUTION DE PROBLÈMES !

 Après un vpnc-connect le ping ne passe plus !

Vérifier que votre /etc/resolv.conf contient les nameservers de votre VPN ! (Merci LostControl)

svp, pataper .. c'est mon premier HOWTO !  :Very Happy: 

Question aux experts :

maintenant quand je fais un ping sur le reseau de ma fac, j'ai un ping de ce type :

```

ping lfoer20.jura.uni-sb.de

PING lfoer20.jura.uni-sb.de (134.96.180.116) 56(84) bytes of data.

From vpnserver.rz.uni-saarland.de (134.96.12.2): icmp_seq=1 Redirect Host(New nexthop: vlan-vpnclient.rz.uni-saarland.de (134.96.12.1))

64 bytes from lfoer20.jura.uni-sb.de (134.96.180.116): icmp_seq=1 ttl=253 time=76.6 ms

From vpnserver.rz.uni-saarland.de (134.96.12.2): icmp_seq=2 Redirect Host(New nexthop: vlan-vpnclient.rz.uni-saarland.de (134.96.12.1))

```

A priori il indique qu'il redirige les paquets non ? C'est normal je pense ... ?

[EDIT] Petite modification concernant resolv.conf (Merci LostControl) et ajout de la rubrique résolution de problèmes[/EDIT]

Ce document est sous GNU FDL !

----------

## scout

Merci beaucoup pour ce howto  :Very Happy: 

(finalement je me sent heureux d'avoir été dans une école d'ingé ou l'accès depuis l'extérieur se faisait par ssh, et encore plus heureux d'être maintenant dans une école d'ingé ou l'ordi de ma chambre est directement accessible depuis l'extérieur)

----------

## kernelsensei

 *scout wrote:*   

> Merci beaucoup pour ce howto 
> 
> (finalement je me sent heureux d'avoir été dans une école d'ingé ou l'accès depuis l'extérieur se faisait par ssh, et encore plus heureux d'être maintenant dans une école d'ingé ou l'ordi de ma chambre est directement accessible depuis l'extérieur)

 

disons que chez nous c'est 2 précautions valent mieux qu'une ... vu certains départements sensibles (centres nationaux de recherche ...)

----------

## yuk159

Merci pour le howto, je n'utilise pas vpn, mais c'est toujours bon a savoir  :Very Happy: 

----------

## Gentoo_Lover

Ouai c'est simpas , merci pour les autres   :Wink: 

----------

## moon69

merci pour les infos, c'est tres interressant!

----------

## LostControl

Salut,

J'utilise également vpnc pour me connecter au réseau de mon école. La version 0.2 qui est dispo dans Portage fonctionne à merveille ! Que du bonheur  :Very Happy:  Enfin, un petit problème de MTU sur certains sites mal administrés mais un "ifconfig tun0 mtu 1200" corrige le tir.

Les routes sont directement mises à jour par vpnc-connect (pas besoin de faire "vpnc-connect /etc/vpnc.conf", "vpnc-connect" suffit). J'ai juste modifié les scripts "vpnc-connect" et "vpnc-disconnect" pour qu'ils mettent à jour le fichier "/etc/resolv.conf".

```
# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

128.178.15.71   192.168.0.1     255.255.255.255 UGH   0      0        0 wlan0

192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 tun0
```

Le ping est normal :

```
# ping www.gentoo.org

PING www.gentoo.org (203.112.31.164) 56(84) bytes of data.

64 bytes from 203.112.31.164: icmp_seq=1 ttl=44 time=303 ms

64 bytes from 203.112.31.164: icmp_seq=2 ttl=44 time=303 ms

64 bytes from 203.112.31.164: icmp_seq=3 ttl=44 time=301 ms

64 bytes from 203.112.31.164: icmp_seq=4 ttl=44 time=303 ms

...
```

A+

----------

## kernelsensei

OK, je modifie ca pour vpnc-connect ..

Autrement avec ta config t'as tout qui passe par le VPN non ?

pour verifier, va là et regarde le HOST :

http://mire.ipadsl.net/speedtest/speedtest4.php

----------

## kernelsensei

Effectivement, en changeant mes DNS, ca fonctionne, mais toutes mes connections passent a nouveau par le VPN, ce que je ne souhaite pas ! Apres tout c'est peut etre le but de VPN ... Dans ce cas considerons ce HOWTO comme un Hack pour contourner cette obligation !

----------

## Beber

y a un moyen d'éviter de se faire chié avec les routes et tout le bordel : utilisé OpenVPN, c'est un client VPN très bien foutu et il gère les routes toutes seul comme un grand

----------

## anigel

Merci à vous deux pour ces précisions, ça peut servir en effet (les universités françaises s'orientant de plus en plus vers ces solutions pour les accès sécurisés au wi-fi : on se prend une connexion wi-fi n'importe où, comme un vulgaire inconnu qui passe dans la rue à côté, et avec le vpn, on se fait reconnaître comme l'usager autorisé que l'on est).

Bref  :Arrow:  utile disais-je  :Smile:  !

En revanche (et là je pousse un peu le bouchon  :Laughing:  ), si qqun dans la salle a une expérience concrète sur le côté "serveur" du vpn, je serais très intéressé. J'y ai gratté il y a quelques mois, puis mis de côté par manque de temps. Mais j'avais trouvé très peu de doc sur ce sujet.

Donc, si vous avez déjà pratiqué (avec succès de préférence  :Laughing: ), ou si vous avez de bonnes infos là-dessus, je suis preneur, quitte à en faire un nouveau HOWTO dès que j'aurais à peu près pigé comment ksamarch !

Merci encore de vos contributions  :Smile:  !

----------

## kernelsensei

 *Beber wrote:*   

> y a un moyen d'éviter de se faire chié avec les routes et tout le bordel : utilisé OpenVPN, c'est un client VPN très bien foutu et il gère les routes toutes seul comme un grand

 

Si tu pouvais m'expliquer pour qu'openvpn fonctionne de la meme maniere que vpnc, c a d avec login/pass .. (car dans la doc, ils parlent de clef, de plus il ne demande pas de serveur VPN, juste l'ip du net distant et local ...)

a vrai dire, OpenVPN je pige pas trop !

----------

## LostControl

Salut,

C'est clair que dans mon cas, tout le traffic passe par le VPN. Ce qui est le but en soit du VPN. Au final, j'utilise le VPN surtout pour accéder au réseau wireless de mon uni et simplement pour lire les news depuis la maison. Pour le reste, je passe par SSH.

Sinon, un howto sur le côté serveur serait en effet bien cool  :Very Happy: 

----------

## kernelsensei

 *LostControl wrote:*   

> 
> 
> Sinon, un howto sur le côté serveur serait en effet bien cool 

 

Euh .. ouais, on va y aller molo quand même .. déja que pour le client je me suis bagarré ...

Mais bon, comme je suis sysadmin dans un des departements de la fac et que je prends racine ... (les 3/4 du temps je vais sur ce forum et je fais "réactualiser" toutes les minutes  :Very Happy: ) je peux faire des recherches et m'y coller  :Smile: 

----------

## LostControl

Je pense que y'a tout là --> http://openvpn.sourceforge.net/howto.html

A tester...

----------

## zoltix

Jessaye de connecter sur un serveur windows 2000 avec le vpnc mais je n'y arrive pas trop.

Il y'a un truc de particulier sous windows 2000 ?

PS:   je ne comprends pas trop ce que signifie IPSec ID <Votre Groupe>

IPSec secret <Pass du Groupe> 

Merci

----------

## eltino

Les serveurs VPN de Microsoft, c'est plutot avec PPTP. J'en sais pas plus.

Bonne recherche.

----------

## nichocouk

 *kernel_sensei wrote:*   

> Si tu pouvais m'expliquer pour qu'openvpn fonctionne de la meme maniere que vpnc, c a d avec login/pass .. (car dans la doc, ils parlent de clef, de plus il ne demande pas de serveur VPN, juste l'ip du net distant et local ...)
> 
> a vrai dire, OpenVPN je pige pas trop !

 

Salut,

moi non plus j'y connais rien mais je suis tombe sur un document qui dit que OpenVPN ne permet que des connections entre clients et serveurs tournant sur OpenVPN. Ie c'est pas possible de se connecter avec OpenVPN sur un serveur qui n'est pas en OpenVPN. Ai-je bien compris?

Pour ceux qui sont interesses, le document en question explique comment monter un serveur OpenVPN (PDF) et c'est sur le site de l'UREC (Unite reseaux du CNRS)

Pour zoltix et eltino, il faut aller voir (si c'est pas deja fait vu la date des posts) [en anglais]

HOWTO_Set_up_a_vpn_client_with_mppe_encryption

PPTP client

et le HOWTO sur le forum

----------

## lbr

 *anigel wrote:*   

> 
> 
> En revanche (et là je pousse un peu le bouchon  ), si qqun dans la salle a une expérience concrète sur le côté "serveur" du vpn, je serais très intéressé. J'y ai gratté il y a quelques mois, puis mis de côté par manque de temps. Mais j'avais trouvé très peu de doc sur ce sujet.
> 
> Donc, si vous avez déjà pratiqué (avec succès de préférence ), ou si vous avez de bonnes infos là-dessus, je suis preneur, quitte à en faire un nouveau HOWTO dès que j'aurais à peu près pigé comment ksamarch !
> ...

 

Je dois, dans les semaines qui suivent, installer un serveur VPN... il me semble qu'on va souvent se croiser sur les forum  :Smile: 

On m'a conseillé openswan, qui fonctionne avec du CISCO et du ZyWALL.

Je l'ai émergé sans pb ... mais je n'ai pas encore attaqué la config ...

Suite au prochain épisode 

(je sais, c'est un peu pauvre comme aide, mais bon ... ya du boulot  :Smile:  )

----------

## _droop_

Bonjour,

Openvpn ne fonctionne qu'avec des clients openvpn (ces clients existe sous linux, bsd et windows (2000, xp) et surement mac os). Openswan peut marcher avec d'autres équipements (notemment le client vpn de windows (dont la configuration est une belle horreur avec plein de sous fenêtres)). Par contre (d'expérience), openvpn est beaucoup plus simple à faire fonctionner.

Bonne journée.

----------

## killerwhile

J'ai posté sur gentoo-wiki une version du routage ave iproute2, ca donnc ca :

 <pre>ip route add ''network_du_reseau_vpn''''netmask_vpn'' dev ''INTERFACE_TUNNEL''

 ip route del default

 ip route add default dev ''Interface_Passerelle''</pre>

----------

## truc

salut! Premièrement j'adore les bidouillages, y'a que ça de vrai  :Razz: 

Nan franchement, ce qui m'interessait surtout c'était la partie routage,  un truc m'échappe, et j'ai 2-3 questions:

tu dis route add -net 134.96.0.0 netmask 255.255.0.0 vpnuni  ou vpuni est ton "<INTERFACE_TUNNEL>", hein de quoi, quand on fait une connexion VPN, ça créé une interface? Comment (dans ton cas) en utilisant cette interface le "système" sait qu'il doit passer par eth1 (et pas eth0)?

voili-voilou, merci d'avance;)

----------

## killerwhile

oui avec vpnc tu as du ajouter l'option TUN/TAP dans le kernel, puis dans ton fichier de conf il y a une ligne 

```
Interface name ifvpn
```

qui définit le nom de l'interface (ifvpn)

Tu devras donc utiliser ce nom par la suite.

----------

## killerwhile

et pour répondre à la deuxième partie

Je ne connais pas les détails techniques mais en gros l'interface est virtuelle, et elle va encrypter les paquets et les (re)router par eth1.

----------

## truc

ok, merci, c'est vrai j'avais oublié l'histoire du noyau, qu'il fallait le modifier etc.. merci:)

----------

