Configuration des accès à distance VPN avec Vyatta

Configuration des accès à distance VPN avec Vyatta
Jérémie Kassianoff
3 octobre 2013
4 min de lecture

Vyatta permet de configurer des accès distants : PPTP, L2TP/IPSEC, OPENVPN Cet article se concentre sur le remote-access de Vyatta Pré-requis : Conna¨tre les.

Cas d'usage concret

Vos équipes doivent se connecter à distance en toute sécurité : voici comment configurer des accès VPN PPTP, L2TP/IPSEC et OpenVPN avec Vyatta.

Vyatta : Remote access (VPN)

Le VPN repose sur un protocole de tunnelisation, il encapsule les données à transmettre.
Vyatta nous permet de déployer des solutions VPN : remote access et site to site.
Dans cet article nous allons déployer uniquement des solutions VPN remote access.
Il permet aux données de passer d’une extrémité du VPN à l’autre de façon sécurisée (cryptage).

Un tunnel VPN respecte les principes suivants :

Confidentialité: Les données ne peuvent être vues dans un format lisible.
Intégrité: Les données ne peuvent être modifiées.
Authentification: les passerelles VPN sont sur de l’identité de l’autre.

Le remote access c’est quoi ?

  • Le remote access permet à un client (remote user) de se connecter à un réseau distant (VPN server).

PPTP

Le principe du protocole PPPT (protocole de  tunnélisation point à point) est de créer des trames sous le protocole PPP et de les encapsuler dans un datagramme IP.

Mise en place de PPTP avec Vyatta :

bash
set vpn pptp remote-access authentication mode local
set vpn pptp remote-access dns-servers server-1 8.8.8.8
set vpn pptp remote-access client-ip-pool start 172.168.0.10
set vpn pptp remote-access client-ip-pool stop 172.168.0.15
set vpn pptp remote-access authentication local-users username jeremie password p4ssw0rd

Je ne vous conseille pas l’utilisation de ce protocole dans un environnement professionnel.
Pour plus d’informations visitez ce site web et celui ci.

L2TP/IPSEC

L2TP se rapproche de PPTP car il encapsule des trames PPP ainsi que d’autres trames.
Il se sert d’une série de messages L2TP pour assurer la maintenance du tunnel.
L2TP est la réunion de L2F et PPTP,  L2F a été progressivement remplacé par L2TP.
UDP envoie les trames PPP dans du L2TP.

Mise en place de L2TP avec Vyatta :

bash
set vpn l2tp remote-access description "mon l2tp"
set vpn l2tp remote-access authentification mode local
set vpn l2tp remote-access outside-address X.X.X.X/X (votre IP public)
set vpn l2tp remote-access dns-servers server-1 (votre serveur DNS)
set vpn l2tp remote-access client-ip-pool start 172.168.1.10
set vpn l2tp remote-access client-ip-pool stop 172.168.1.15
set vpn l2tp remote-access authentication local-users username jeremie password p4ssw0rd

Mise en place de L2TP/IPSEC avec Vyatta :

bash
set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-traversal enable
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret 
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret g00d-p4ssw0rd

IPSEC est souvent couplé avec L2PT, qui tout seul n’est pas sécurisé.
IPSEC permet de sécuriser le protocole IP afin de garantir la confidentialité, l’intégrité et l’authentification des échanges.

OPENVPN

Openvpn est une solution de tunnelisation OpenSource, il utilise la bibliothèque d’OpenSSL.
C’est entre autres une excellente solution pour contourner les restrictions de certains réseaux.
Openvpn génère des certificats de sécurité.

Copier les exemples openvpn vers /etc/openvpn/easy-rsa/ :

bash
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/

Se déplacer dans le dossier easy-rsa puis générer les certificats serveur !

bash
cd /etc/openvpn/
source vars
./clean-all
./build-ca
./build-key-server myservername
./build-dh
cd keys
cp myservername.crt myservername.key ca.crt dh1024.pem /config/auth

Générer le certificat de notre client :

bash
cd /etc/openvpn/
./build-key jeremie
==> Entrer
==> y
==> y

Mise en place du serveur OPENVPN avec Vyatta :

bash
set interfaces openvpn vtun0
set interfaces openvpn vtun0 encryption aes256
set interfaces openvpn vtun0 hash sha1
set interfaces openvpn vtun0 mode server
set interfaces openvpn vtun0 local-port 1194
set interfaces openvpn vtun0 protocol udp
set interfaces openvpn vtun0 server push-route 192.168.0.0/24
set interfaces openvpn vtun0 server subnet 172.168.0.0./16
set interfaces openvnp vtun0 tls ca-cert-file /config/auth/ca.crt
set interfaces openvpn vtun0 tls cert-file /config/auth/myservename.crt
set interfaces openvpn vtun0 tls dh-file /config/auth/dh1024.pem
set interfaces openvpn vtun0 tls key-file /config/auth/myservername.key

L’utilisation du remote access est simple, pratique et économique!

Conclusion

J'ai présenté ici trois solutions de VPN remote access sous Vyatta : PPTP, L2TP/IPSEC et OpenVPN. Si PPTP reste simple à mettre en œuvre, il n'est pas recommandé en environnement professionnel du fait de ses faiblesses de sécurité, contrairement à L2TP/IPSEC ou OpenVPN qui offrent un chiffrement robuste. OpenVPN, avec sa génération de certificats, reste la solution la plus simple, pratique et économique à déployer.