Labo Linux - Guide OpenVPN. OpenVPN. Labo Linux Julien Recurt (thelan@supinfo.com) Page 1



Documents pareils
CONFIGURATION DE OPENVPN AVEC CLIENT FEDORA ET CLIENT WINDOWS. Distribution : Fedora 14 Noyau GNU/Linux : Version document : 1

Méthode 1 : Mise en place IPSEC

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

M2-RADIS Rezo TP13 : VPN

II- Préparation du serveur et installation d OpenVpn :

Les certfcats. Installation de openssl

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Gui!aume THIRION - Bac Pro MRIM

Documentation technique OpenVPN

Réseau - VirtualBox. Sommaire

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

Configuration réseau Basique

Annexes. OpenVPN. Installation

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

TP SECU NAT ARS IRT ( CORRECTION )

VPN. Réseau privé virtuel Usages :

Les techniques de la télémaintenance

Réaliser un inventaire Documentation utilisateur

Monter son VPN perso avec OpenVPN

Livrable #5. (Document de 17 pages) Fabrice DOUCHANT Tarek AJROUD Charles BALLE Jérémy MELINE. Roland AGOPIAN

VPN TLS avec OpenVPN. Matthieu Herrb. 14 Mars 2005

INSTALLATION D'OPENVPN:

1 PfSense 1. Qu est-ce que c est

Connexion à un réseau local: Configuration et dépannage

Les réseaux des EPLEFPA. Guide «Clients OpenVPN»

Les clés d un réseau privé virtuel (VPN) fonctionnel

Configuration d un firewall pour sécuriser un serveur WEB

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

FILTRAGE de PAQUETS NetFilter

Année Universitaire session 1 d automne Parcours : CSB5 Licence 3 STS Informatique

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Les commandes relatives aux réseaux

7.3 : Ce qu IPv6 peut faire pour moi

MISE EN PLACE D UN RESEAU STRUCTURE ET SECURISE

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Vanilla : Virtual Box

Serveur de messagerie sous Debian 5.0

WEB page builder and server for SCADA applications usable from a WEB navigator

Installer un domaine DNS

ASRb/Unix Avancé II. Chapitre 2. Utilitaires réseaux. Arnaud Clérentin, IUT d Amiens, département Informatique

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

Passerelle VPN : OpenVPN Debian GNU/Linux

INSTALLATION ET CONFIGURATION OPENVPN

Instructions Mozilla Thunderbird Page 1

Corrigé du TP 6 Réseaux

Architectures PKI. Sébastien VARRETTE

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Application Form/ Formulaire de demande

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

Accès aux ressources informatiques de l ENSEEIHT à distance

SSH, le shell sécurisé

Guide Installation Serveur Extensive Testing

Firewall ou Routeur avec IP statique

Les réseaux des EPLEFPA. Guide «PfSense»

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

IP & Co. 1. Service DHCP. L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP.

ALOHA LOAD BALANCER BONDING ACTIF-PASSIF

IMS INTERNET /Paramétrage de l offre / Gateway Cisco IMS INTERNET. Paramétrage de l offre Gateway CISCO. Référence Edition Date de Diffusion Page

Mise en place d un firewall d entreprise avec PfSense

Guide Installation Serveur Extensive Testing

DISTANT ACESS. Emna TRABELSI (RT3) Chourouk CHAOUCH (RT3) Rabab AMMAR (RT3) Rania BEN MANSOUR (RT3) Mouafek BOUZIDI (RT3)

Internet Protocol. «La couche IP du réseau Internet»

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

How to Login to Career Page

Linux Firewalling - IPTABLES

Configuration d'un Réseau Privé Virtuel (RPV ) communément appelé VPN

Procédure d'installation

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

Présentation de netkit

VTP. LAN Switching and Wireless Chapitre 4

1. Warm up Activity: Single Node

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

UNIVERSITE DE YAOUNDE II

Mise en place d'un Réseau Privé Virtuel

Guide Installation de Fully Automated NAGIOS 2.3 sur Hyper-V

Pour configurer le Hitachi Tecom AH4021 afin d'ouvrir les ports pour "chatserv.exe", vous devez suivre la proc

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Les différentes méthodes pour se connecter

Contents Windows

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

2013 Installation de GLPI-OCS. Florian MICHEL BTS SIO LYCEE SAINTE URSULE

Les réseaux : les principes Comment ça marche?

Formation Iptables : Correction TP

Sécurité des réseaux Firewalls

Installation de Snort sous Fedora

Interconnexion de serveurs Asterisk avec IAX

Differential Synchronization

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

PHOTO ROYAUME DE BELGIQUE /KINDOM OF BELGIUM /KONINKRIJK BELGIE. Données personnelles / personal data

If the corporation is or intends to become a registered charity as defined in the Income Tax Act, a copy of these documents must be sent to:

Wireless IP Camera 75790, 75790WH, Quick Start Guide Guide de départ rapide

Transcription:

OpenVPN Labo Linux Julien Recurt (thelan@supinfo.com) Page 1

Introduction Bonjour, Nous allons voir dans ce module comment configurer et mettre en place un serveur VPN via OpenVPN. Ce tutorial vous guidera pour créer un serveur OpenVPN sous Gentoo (bien qu il sera facilement transposable à une autre distribution) Rappels Tout au long de ce guide nous utiliseront vim comme éditeur (vous pouvez utiliser un autre éditeur comme par exemple : emacs, nano ou d autres) Fonctionnement d un VPN Un VPN permet de se connecter à distance a un réseau privé virtuel afin d accéder à des ressources interne car il existe un firewall, un routeur qui bloque son accès directement depuis internet Il est aussi possible de router le trafic du client via le VPN et ainsi d en faire un proxy Création du serveur : Sur les VM Gentoo lorsque l on installe OpenVPN on peut trouver les scripts de génération de certificats dans le dossier suivant : /usr/share/openvpn/easy-rsa/ Changement de dossier # cd /usr/share/openvpn/easy-rsa/ Pour commencer nous allons éditer le fichier vars afin d y définir les variables par défaut : Editer le fichier vars # vim vars Page 2

Nous allons l éditer de la façon suivante : Exemple de configuration du fichier vars [ ] # début du fichier coupé! # Increase this to 2048 if you # are paranoid. This will slow # down TLS negotiation performance # as well as the one-time DH parms # generation process. export KEY_SIZE=1024 # taille de des clés # In how many days should the root CA key expire? export CA_EXPIRE=3650 # In how many days should certificates expire? export KEY_EXPIRE=3650 # These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="FR" export KEY_PROVINCE="fr" export KEY_CITY="Paris" export KEY_ORG="LaboLinux" export KEY_EMAIL="thelan@supinfo.com" Une fois la configuration par défaut modifiée (si vous le souhaitez) il va falloir générer des certificats. On va importer les définitions de variables dans notre Shell puis effacer les anciens certificats, et générer les nouveaux. Note : Si vous souhaitez créer de nouveaux certificats pour ajouter de nouveaux clients sur le serveur exécutez la commande «source vars» puis passez directement à la création de la clé souhaitée. Préparation a la génération des certificats # source vars NOTE: If you run./clean-all, I will be doing a rm -rf on /usr/share/openvpn/easyrsa/keys #./clean-all Attention l exécution de./clean-all détruira tous les certificats créé ( donc il faudra le faire seulement si l on veut changer tous les certificats) Page 3

Nous allons maintenant générer la clé de l autorité de certification. Attention celle-ci devra rester sur la machine qui servira à générer les certificats et dois rester ABSOLUMENT privée! Génération de la clé de l autorité de certification #./build-ca Generating a 1024 bit RSA private key...++++++...++++++ writing new private key to 'ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [FR]: State or Province Name (full name) [fr]: Locality Name (eg, city) [Paris]: Organization Name (eg, company) [LaboLinux]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) [LaboLinux CA]: Name []: Email Address [thelan@supinfo.com]: Ici nous laisserons la configuration par défaut en appuyant simplement sur la touche entré à chaque question. Maintenant nous allons créer le fichier d échange de clés Diffie-Hellman Creation du fichier d échange de clés Diffie-Hellman #./build-dh Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time...+...+...+......+......+...+...+......++*++*++* Cette étape permettra de créer le fichier dh1024.pem Note : Si vous avais changé la valeur de la variable KEY_SIZE dans le fichier vars la commande précédente prendra plus de temps, de plus celui-ci créera un fichier dh<key_size>.pem dans le dossier keys. Page 4

Attaquons nous à la création d une clé pour notre serveur : Creation de la clé du serveur #./build-key-server myserver Generating a 1024 bit RSA private key...++++++...++++++ writing new private key to 'myserver.key' ----- Country Name (2 letter code) [FR]: State or Province Name (full name) [fr]: Locality Name (eg, city) [Paris]: Organization Name (eg, company) [LaboLinux]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) [myserver]: Name []: Email Address [thelan@supinfo.com]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /usr/share/openvpn/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryname :PRINTABLE:'FR' stateorprovincename :PRINTABLE:'fr' localityname :PRINTABLE:'Paris' organizationname :PRINTABLE:'LaboLinux' commonname :PRINTABLE:'myServer' emailaddress :IA5STRING:'thelan@supinfo.com' Certificate is to be certified until Apr 15 13:55:14 2020 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated Note : attention vous devez au minimum entrez 2 fois y (en bleu) afin qu openssl signe le certificat sinon celui-ci ne sera pas généré! Ici nous avons créé un certificat pour un serveur myserver.key et myserver.crt Maintenant nous avons fini le minimum pour pouvoir démarrer notre serveur (mis à part sa configuration en elle-même). Nous allons commencer par copier les clés dans le dossier /etc/openvpn ce qui est plus logique vis-àvis du FHS. Copie des fichiers de clés # cp keys/ca.crt keys/dh*.pem keys/myserver.crt keys/myserver.key /etc/openvpn Page 5

Déplaçons nous dans le dossier /etc/openvpn pour continuer avec la configuration du programme OpenVPN. Contenu du dossier /etc/openvpn # cd /etc/openvpn # ls -l total 24K -rw-r--r-- 1 root root 1.2K Apr 18 16:05 ca.crt -rw-r--r-- 1 root root 245 Apr 18 16:05 dh1024.pem -rwxr-xr-x 1 root root 943 Apr 18 15:31 down.sh* -rw-r--r-- 1 root root 3.8K Apr 18 16:05 myserver.crt -rw------- 1 root root 887 Apr 18 16:05 myserver.key -rwxr-xr-x 1 root root 2.6K Apr 18 15:31 up.sh* Nous allons maintenant créer le fichier openvpn.conf dans lequel nous spécifieront les paramètres de notre serveur. Pour cet exemple nous créerons un nouveau LAN pour y mettre les clients et nous routerons les paquets depuis le VPN vers internet. Edition du fichier de configuration du serveur # vim openvpn.conf Voici un exemple de configuration libre a vous de le modifier / améliorer Fichier de configuration serveur tls-server # Mode serveur port 1194 # Port d écoute sur le réseau proto udp # Protocole de communiquation entre le client et le serveur dev tun # Pilote de carte réseau (si tun ne fonctionne pas utiliser tap) ca /etc/openvpn/ca.crt # Chemain vers les clés crées cert /etc/openvpn/myserver.crt key /etc/openvpn/myserver.key # This file should be kept secret dh /etc/openvpn/dh1024.pem server 192.168.20.0 255.255.255.0 # Plage d ip a utiliser 192.168.20.1/24 ifconfig-pool-persist /var/log/openvpn/ipp.txt push "redirect-gateway" # Faire passer la route par défaut via le VPN push "dhcp-option DNS 8.8.8.8" # Serveur dns a utiliser client-to-client ;duplicate-cn # décommentez cette ligne si vous voullez utiliser le meme # certificats pour plusieurs clients keepalive 10 120 # Temps avant timeout de la connexion # ping tt les 10 sec timeout après 120 sec comp-lzo # Compressions des communiquations max-clients 100 # Nombre maxi de clients connectés simultanément persist-key persist-tun # Fichiers de logs status /var/log/openvpn-status.log log /var/log/openvpn-server.log verb 3 mute 20 Si vous souhaitez plus de détails concernant les options veuillez-vous référer à la documentation sur le site d OpenVPN. Page 6

Il ne vous reste plus qu à lancer OpenVPN et vérifier que l interface virtuelle a bien été créée : Démarage du daemon OpenVPN # /etc/init.d/openvpn start * Starting openvpn... [ ok ] # ifconfig tun0 tun0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:192.168.20.1 P-t-P:192.168.20.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:64 (64.0 B) NOTE : L interface tun0 peut mettre jusqu à une minute a apparaitre (si celle-ci n apparait pas verrifiez les logs d openvpn dans le fichier suivant /var/log/openvpn-server.log Vous n avez plus qu à générer des certificats pour les clients. Page 7

Création d un certificat client Tout d abords retournons dans le dossier easy-rsa qui nous a permis de générer les certificats pour ce serveur et on recharge le fichier de configuration dans le shell Preparation # cd /usr/share/openvpn/easy-rsa/ # source vars Maintenant nous allons créer un certificat du nom de client1 : Creation d un certificat client #./build-key client1 Generating a 1024 bit RSA private key...++++++...++++++ writing new private key to 'client1.key' ----- Country Name (2 letter code) [FR]: State or Province Name (full name) [fr]: Locality Name (eg, city) [Paris]: Organization Name (eg, company) [LaboLinux]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) [client1]: Name []: Email Address [thelan@supinfo.com]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /usr/share/openvpn/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryname :PRINTABLE:'FR' stateorprovincename :PRINTABLE:'fr' localityname :PRINTABLE:'Paris' organizationname :PRINTABLE:'LaboLinux' commonname :PRINTABLE:'client1' emailaddress :IA5STRING:'thelan@supinfo.com' Certificate is to be certified until Apr 15 14:35:40 2020 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated Note : attention vous devez au minimum entrez 2 fois y (en bleu) afin qu OpenSSL signe le certificat sinon celui-ci ne sera pas créé! Ici nous avons créé un certificat pour un serveur client1.key et client1.crt Vous pourrez maintenant créer une archive avec les fichiers nécessaire au client pour qu il puisse se connecter à votre serveur VPN. Creation d une archive contenant les fichiers # tar cjf /root/client1-keys.tar.bz2 keys/ca.crt keys/client1.crt keys/client1.key Vous n aurez plus qu à récupérer l archive client1-keys.tar.bz2 et de la fournir au client avec le fichier de configuration client que nous allons créer par la suite Page 8

Exemple de fichier de configuration client client # mode client ;-) dev tun # Pilote de carte réseau (si tun ne fonctionne pas utiliser tap) proto udp # Protocole de communiquation entre le client et le serveur remote 91.121.xxx.xxx 1194 # adresse et port du serveur resolv-retry infinite # on essayera de se (re)connecter en boucle ca cert key ca.crt # fichier de l archive client1.crt client1.key comp-lzo # si le serveur utilise de la compression nobind # ne pas ouvrir de port en local pull # attendre les options push du serveur persist-key persist-tun # Fichiers de log log /var/log/openvpn.log verb 3 Pour plus d info sur la configuration client vous pouvez vous référer à la documentation d OpenVPN. Page 9

Maintenant depuis une autre machine vous devrez pouvoir vous connecter sur votre serveur VPN en lançant la commande Démarrage du client OpenVPN # openvpn client.conf # ifconfig tun0 tun0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:192.168.20.5 P-t-P:192.168.20.6 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:64 (64.0 B) Maintenant vous devriez pouvoir pinger votre serveur VPN : Ping serveur PVN # ping 192.168.20.1 PING 192.168.20.1 (192.168.20.1) 56(84) bytes of data. 64 bytes from 192.168.20.1: icmp_seq=1 ttl=64 time=77 ms 64 bytes from 192.168.20.1: icmp_seq=2 ttl=64 time=31 ms 64 bytes from 192.168.20.1: icmp_seq=3 ttl=64 time=31 ms ^C --- 192.168.20.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 139ms rtt min/avg/max/mdev = 31/46/77/22 ms Il ne reste plus qu a mettre en place le routage du réseau VPN sur internet : Routage du VPN # iptables t nat -A POSTROUTING -s 192.168.20.0/24 -o eth0 -j MASQUERADE Et voilà si vous avez bien suivi ce tutorial vous devriez pouvoir vous connecter à votre serveur VPN et celui-ci redirigera vos requêtes sur internet! Si vous avez encore des questions n hésitez pas à me contacter (thelan@supinfo.com) Merci d avoir pris le temps de lire ce document. Page 10

Annexe Récapitulatif sur les certificats OpenVPN : Page 11