Configuration des accès à distance VPN 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 ?

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 :

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 : 

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 : 

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/ :

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 !

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 : 

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

Mise en place du serveur OPENVPN avec Vyatta :

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!