Vous êtes sur la page 1sur 5

TP Linux sécurité : VPN

Présentation du TP

On souhaite rendre accessible l'intranet (réseau en 10.1.0.0) aux machines située à l'extérieure via un VPN. On se propose d'utiliser d'une machine VMWARE sous DEVIL-LINUX comme serveur VPN. Cette machine sera accessible via une adresse NAT associée à la passerelle (adresse de l'interface eth0:0). La passerelle qui s'occupera d'attribuer une adresse Ip publique aux machines du réseau privé sera le poste de travail natif linux.

Interface serveur VPN :

Interface client VPN :

tun0 : 10.8.0.2

tun0 : 10.8.0.1

VPN : Interface client VPN : tun0 : 10.8.0.2 tun0 : 10.8.0.1 : eth0 192.168.1.110: eth0
VPN : Interface client VPN : tun0 : 10.8.0.2 tun0 : 10.8.0.1 : eth0 192.168.1.110: eth0
VPN : Interface client VPN : tun0 : 10.8.0.2 tun0 : 10.8.0.1 : eth0 192.168.1.110: eth0

: eth0

client VPN : tun0 : 10.8.0.2 tun0 : 10.8.0.1 : eth0 192.168.1.110: eth0 PC Binôme client

192.168.1.110: eth0 PC Binôme client openvpn

eth0 : 10.1.0.128 Vmware devil-Linux serveur openvpn

192.168.1.10 vmnet1 : 10.1.0.1

192.168.1.11 : eth0:0

PC Linux natif : passerelle réseau

Avec :

adresses IP du réseau interne: 10.1.0.0/24 adresses IP du réseau local: 192.168.1.0/24 adresse IP de la passerelle au réseau local 192.168.1.10 et 192.168.1.11 et au réseau privé 10.1.0.1 adresse du réseau VPN : 10.8.0.0/24

Quelques indications:

Le serveur et le client VPN seront l'application openvpn Le seul fichier de configuration est : openvpn.conf situé dans le répertoire /etc/openvpn/ aussi bien pour le serveur que le client.

Le lancement du VPN : /etc/init.d/openvpn start/stop/restart

I - Mise en place d'un VPN point à point avec clé partagée

Le mode OpenVPN avec une clé partagée est plus facile à implémenter que le mode SSL mais a le désavantage de:

- Nécessiter le transfert de la clé sur les deux équipements.

- Ne pas bénéficier du renouvellement de la clé partagée.

- Ne pas assurer d'authentification entre les machines.

Configuration du serveur OpenVPN

1) - Configurer la machine virtuelle pour installer le service openvpn.

Utiliser la commande setup Sauvegarder puis redémarrer la machine virtuelle.

2) - Création de la clé:

Afin d'avoir un minimum de sécurité sur le VPN, on se propose de commencer par créer la clé qui servira à autoriser la machine cliente à se connecter au serveur. Cette clé peut être créer sur n'importe quelle plate-forme.

openvpn --genkey --secret secret.key

Une fois que vous avez créé la clé partagée, vous devrez la copier sur l'autre machine OpenVPN. Vous devriez la transmettre seulement par l'intermédiaire d'un protocole sécurisé comme SSH.

3) - Mise en place d'un tunnel point à point

Fichier de configuration du serveur Openvpn:

dev tun ifconfig 10.8.0.1 10.8.0.2 secret secret.key

Fichier de configuration du client Opnevpn:

Remote 10.1.0.128 dev tun ifconfig 10.8.0.2 10.8.0.1 secret static.key

Tester le tunnel VPN.

4) - Optimisations

Ajouter les options suivantes:

Active la compression LZO des informations dans le tunnel:

comp-lzo

Utilisez cette option si le daemon est en mode écoute:

Ping-timer-rem

Options facilitant la connexion après un redémarrage:

persist-key

persist-tun

II - Mise en place d'un VPN en mode routage avec SSL

Interface client VPN :

Interface serveur VPN :

tap0 : 10.8.0.10

client VPN : Interface serveur VPN : tap0 : 10.8.0.10 tap0 : 10.8.0.1 Intranet 10.1.0.0/24 172.20.1.128:

tap0 : 10.8.0.1

: Interface serveur VPN : tap0 : 10.8.0.10 tap0 : 10.8.0.1 Intranet 10.1.0.0/24 172.20.1.128: eth0 Vmware
Intranet 10.1.0.0/24
Intranet
10.1.0.0/24

172.20.1.128: eth0 Vmware devil-Linux client openvpn

eth0 : 10.1.0.128 Vmware devil-Linux serveur openvpn

eth0 : 10.1.0.128 Vmware devil-Linux serveur openvpn 172.20.1.1: vmnet1 192.168.1.110: eth0 PC Binôme
eth0 : 10.1.0.128 Vmware devil-Linux serveur openvpn 172.20.1.1: vmnet1 192.168.1.110: eth0 PC Binôme

172.20.1.1: vmnet1 192.168.1.110: eth0 PC Binôme passerelle

: eth0

192.168.1.10 vmnet1 : 10.1.0.1

192.168.1.11 : eth0:0

PC Linux natif : passerelle vers

VPN

On se propose d'utiliser une nouvelle machine virtuelle configuré en NAT sur un nouveau réseau privé comme client VPN.

On utilise toujours le mode tap. On se propose aussi:

- Distribuer des adresses Ip à partir d'un pool d'adresses au clients VPN - Envoyer une route au client sur le réseau Intranet

OpenVPN fournit des outils basés sur OpenSSL pour créer l'installation d'une Autorité de Certification (AC) locale On se propose d'utiliser des certificats (entre le serveur et les clients) signés par l'AC.

1) - Création des certificats et clés pour l'utilisation de SSL

Copier tout le répertoire /usr/share/doc/openvpn/easy-rsa dans /home/demoCA

Initialisation et création de l'AC :

./vars

.

./clean-all

./build-ca

Le certificat et clef pour le serveur :

./build-key-server server

(!! bien remplir tous les champs sauf challange password et optional company name laissés à vide. Le common name doit être le nom de la machine)

Le certificat et clef pour le client:

./build-key localhost

Création des paramètres Diffie Hellman pour le cryptage du tunnel:

./buil-dh

Récupération des certificats: dans le répertoires keys récupérer le certificats de l'AC, celui du serveur (avec sa clé associée) et enfin celui du client (avec sa clé) et le paramètre de cryptographie Diffie-Hellman. Repérer les certificats et afficher les à l'aide d la commande openssl.

openssl x509 -in NOM_DU_CERTIFICAT.crt -text -noout

Que représentent les fichiers server.key et localhost.key ? Où sont les clés associées ?

Créer un répertoire sur le serveur et installez les bons certificats et bonnes clés dedans. Faites de même avec le client VPN.

2) Configuration de la connexion VPN

Configuration du serveur VPN:

port 1194

proto udp

dev tap

# Network

mode server ifconfig 10.8.0.1 255.255.255.0

ifconfig-pool 10.8.0.5 10.8.0.10 client-to-client

# SSL

tls-server "certificat de l'AC avec son path"

cert "certificat du serveur avec son path" key "clé du serveur avec son path"

dh

ca

"paramètres de chiffrement avec son path"

Configuration du client VPN:

client dev tap remote adresse du serveur tls-client "certificat de l'AC avec son path"

ca

cert "certificat du client avec son path" key "clé du client avec son path"

Vérifier le bon fonctionnement du VPN. Ajouter ensuite les paramètres d'optimisation du VPN précédent.

3) Amélioration de la configuration Essayer de pinguer depuis le client OpenVPN l'adresse IP dans le réseau privé du PC natif du serveur OpenVPN.

Ajouter l'option : push "route

"

Redémarrer les serveurs et clients VPN. Essayer de nouveau de pinguer depuis le client OpenVPN l'adresse IP dans le réseau privé du PC natif du serveur OpenVPN. Analyser les trames qui arrivent sur le PC natif du serveur VPN. Ajouter ce qui manque de manière à ce que le ping fonctionne correctement.