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. 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 eth0 : 10.1.0.128 Vmware devil-Linux serveur openvpn 192.168.1.10 : eth0 vmnet1 : 10.1.0.1 192.168.1.11 : eth0:0 PC Linux natif : passerelle réseau 192.168.1.110: eth0 PC Binôme client openvpn Interface client VPN : tun0 : 10.8.0.2 Interface serveur VPN : tun0 : 10.8.0.1

TP Linux sécurité : VPNpetaouchnoc.free.fr/du/DU CDP/DU Ouf/CRYPTO/TP-openvpn.pdf · I - Mise en place d'un VPN point à point avec clé partagée Le mode OpenVPN avec une clé

  • Upload
    lynhu

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

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.

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 openvpnLe 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

eth0 : 10.1.0.128Vmware devil-Linux serveur openvpn192.168.1.10 : eth0 vmnet1 : 10.1.0.1

192.168.1.11 : eth0:0 PC Linux natif : passerelle réseau

192.168.1.110: eth0 PC Binôme client openvpn

Interface client VPN : tun0 : 10.8.0.2

Interface serveur VPN : tun0 : 10.8.0.1

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 setupSauvegarder 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 tunifconfig 10.8.0.1 10.8.0.2secret secret.key

Fichier de configuration du client Opnevpn:

Remote 10.1.0.128dev tunifconfig 10.8.0.2 10.8.0.1secret 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-keypersist-tun

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

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) localeOn 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

192.168.1.10 : eth0 vmnet1 : 10.1.0.1192.168.1.11 : eth0:0 PC Linux natif : passerelle vers VPN

172.20.1.1: vmnet1 192.168.1.110: eth0 PC Binôme passerelle

eth0 : 10.1.0.128Vmware devil-Linux serveur openvpn

172.20.1.128: eth0Vmware devil-Linux client openvpn

Interface serveur VPN : tap0 : 10.8.0.1

Interface client VPN : tap0 : 10.8.0.10

Intranet10.1.0.0/24

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 -nooutQue 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 1194proto udpdev tap# Networkmode serverifconfig 10.8.0.1 255.255.255.0ifconfig-pool 10.8.0.5 10.8.0.10client-to-client# SSLtls-serverca "certificat de l'AC avec son path"cert "certificat du serveur avec son path"key "clé du serveur avec son path"dh "paramètres de chiffrement avec son path"

Configuration du client VPN:clientdev tapremote adresse du serveurtls-clientca "certificat de l'AC avec son path"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 configurationEssayer 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.