Vous êtes sur la page 1sur 21

Situation n8 - E6 Parcours de professionnalisation

BTS SIO option SISR

Apprenti : David Huy Priode : deuxime anne


dalternance (01/17 - 03/17)

Portefeuille de comptences

Contexte professionnel (dcrire lentreprise) :


Dans le cadre dun TP ralis en formation, il est demand de mettre en place un
VPN sous linux afin davoir un accs direct depuis un rseau priv sur un rseau
local.

Situation (mission) N 8 :
Besoin : Configuration dun rseau priv virtuel (VPN) sous linux

Environnement :
Putty
Google chrome
Raspbian / rapsberry

Utilisateurs concerns par la situation


- Administrateur

Tches ralises :
Installation et configuration du serveur raspbian
Configuration du logiciel OpenVPN
Configuration du NAT

Activits Rsultats Vcu,


attendus/productions simul
ou
obser
v
A1.1.2, tude de l'impact de Impact de la solution avoir Vcu
l'intgration d'un service sur le un accs distant
systme informatique
A1.2.2, Rdaction des spcifications Rdactions dune Vcu
techniques de la solution retenue documentation technique
A1.2.5, Dfinition des niveaux Solution OpenVPN Vcu
d'habilitation associs un service
A1.3.4, Dploiement d'un service Mise en place de la solution Vcu
OpenVPN
A3.2.1, Installation et configuration Configuration de la solution et Vcu
d'lments d'infrastructure du FAI (fournisseur accs
internet)
A4.1.9, Rdaction d'une Rdaction de la procdure Vcu
documentation technique dinstallation

A le

Formateur :

Signature

Table des matire

1.0 Description de la solution


2.0 Procdure d'installation
3.0 Configuration de OpenVPN
4.0 Configuration du client
5.0 Configuration de la box
6.0 Tests de la solution
7.0 Connaissances apports

1.0 Description de la solution

Un VPN (rseau priv virtuel) est un systme permettant de crer un lien diret
entre des ordinateurs distants. On utilise notamment cette solution pour du
travail distance ainsi que pour laccs des structures particulires.

La connexion entre les ordinateurs est gre de faon transparente par le logiciel
VPN crant un systme de tunnel entre eux. Les ordinateurs connects au VPN
sont ainsi sur le mme rseau local, ce qui permet de passer outre dventuelles
restrictions sur le rseau comme les pare-feux ou proxy

2.0 Procdure dinstallation

Le logiciel Win32 Disk Imager va nous permettre de mettre lOS raspbian sur
notre carte SD.

On Installe le systme dexploitation.


Une fois linstallation termine nous mettons jour le systme laide des
commandes suivantes :
sudo aptitude update -y && sudo aptitude upgrade -y && sudo reboot

Ensuite, nous paramtrons le wifi et le changement de mot de passe.


Pour cela, nous allons installer plusieurs logiciels :

L'autorit de certification (CA) sera tablie sur le serveur.


Historiquement easy-rsa tait inclus dans le paquet openpvn, ce nest plus le cas
aujourdhui, nous allons devoir dplacer ses fichiers.
Nous allons diter le fichier vars qui contient un certain nombre de
paramtres.

Nous allons complter les lignes suivantes :

export EASY_RSA="/etc/openvpn/easy-rsa" ON INDIQUER LE CHEMIN


DE EASY-RSA

export KEY_COUNTRY="FR" pays en 2 lettres


export KEY_PROVINCE="France" pays
export KEY_CITY="Paris " ville
export KEY_ORG="Home" nom de lorganisation
export KEY_EMAIL="k.bento@hotmail.fr " email
export KEY_OU="IT" service
export KEY_ALTNAMES="RPi" nom

export KEY_NAME="RPi" nom

export KEY_CN="RPi-VPN" nom unique si on envisage davoir


plusieurs serveurs

Maintenant, nous allons devenir une autorit de certification .

Nous allons passer en root pour les prochaines tapes.

Nous allons charger le fichier vars que nous venons dditer.

Afin dviter tout problme, pour nettoyer le dossier /etc/openvpn/easy-rsa/keys


on entre la commande suivante:
Ensuite, il faut Lancer la gnration du certificat racine en mode root

Nous obtenons un fichier : ca.key

Nous allons gnrer une cl :

Nous obtenons un fichier RPi.key

prsent, nous allons gnrer une cl pour notre priphrique client.


./build-key-pass User

Nous obtenons un fichier User.key.

Il faut se rendre dans le dossier Keys .

Nous allons chiffrer via lalgorithme 3DES notre cl cliente (Pour nous : User.key)
openssl rsa in User.key -des3 out User.3des.key

Nous avons un certificat serveur et au moins un client.

Il faut revenir dans le dossier easy-rsa .


Nous allons scuriser lchange des cls. Il faut savoir que le client et le serveur
doivent changer des informations pour identifier qui est qui et tablir la
connexion.
Il faut viter quun tiers puisse intercepter cet change et se faire passer pour un
de nos clients. Ce type dattaque se nomme : MITH (man-in-the-middle).

Lors de la configuration, nous avons choisi une cl de 2048 bits.


Pour finir avec la partie scurit, nous allons implmenter une protection contre
les attaques par dni de service connu sous le nom de DoS.
Nous allons utiliser le HMAC (Hash-based message authentication code)
permettant de scuriser davantage les changes entre client(s) et serveur.

3.0 Configuration de OpenVPN

Dans un premier temps, il faut saisir la commande suivante :

Il faut adapter le fichier avec notre configuration.

local 192.168.1.102 # ADRESSE IP INTERNE DU SERVEUR


2.dev tun
3.proto udp #PROTOCOLE
4.port 1194 #PORT

5.ca /etc/openvpn/easy-rsa/keys/ca.crt #CHEMIN ca.crt


6.cert /etc/openvpn/easy-rsa/keys/RPi.crt #CHEMIN "serveur".crt
7.key /etc/openvpn/easy-rsa/keys/RPi.key #CHEMIN "serveur".key
8.dh /etc/openvpn/easy-rsa/keys/dh2048.pem

9.server 10.8.0.0 255.255.255.0


10.# server and remote endpoints
11.ifconfig 10.8.0.1 10.8.0.2
12.# Add route to Client routing table for the OpenVPN Server
13.push "route 10.8.0.1 255.255.255.255"

14.# Add route to Client routing table for the OpenVPN Subnet
15.push "route 10.8.0.0 255.255.255.0"
16.# your local subnet

17.push "route 192.168.1.0 255.255.255.0" # Mon RESEAU


18.# Set primary domain name server address to the SOHO Router
19.# If your router does not do DNS, you can use Google DNS 8.8.8.8
20.push "dhcp-option DNS 192.168.1.254" # Mon ROUTEUR

21.# Override the Client default gateway by using 0.0.0.0/1 and


22.# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
23.# overriding but not wiping out the original default gateway.

24.push "redirect-gateway def1"


25.client-to-client
26.duplicate-cn
27.keepalive 10 120
28.tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
29.cipher AES-128-CBC
30.comp-lzo
31.user nobody
32.group nogroup
33.persist-key
34.persist-tun
35.status /var/log/openvpn-status.log 20
36.log /var/log/openvpn.log
37.verb 1

Par dfaut notre systme dexploitation Raspbian nautorise pas le transit de


paquets entre deux rseaux.
On D-commentez la ligne suivante :

On recharge les paramtres afin de les prendre en compte.

Raspbian comme dautres systmes dexploitation son propre pare-feu, ce


dernier par dfaut ne va pas laisser passer nos requtes.
Nous allons crer un script Shell pour remdier lun de nos derniers
problmes de configuration:

On y Colle ceci :

Une fois cette configuration finie, nous allons permettre au systme dexcuter le
script et de changer de propritaire.

Automatiser tout cela en chargeant la rgle du Firewall pendant la configuration


rseau.
Puis on redmarre le serveur.
A ce moment-l le serveur est oprationnel.

4.0 Configuration du client

Nous allons gnrer un fichier de configuration client donc crer un script pour
automatiser le processus.

On copie se contenu dans le fichier.


#!/bin/bash
2.
3.# Default Variable Declarations
4.DEFAULT="Default.txt"
5.FILEEXT=".ovpn"
6.CRT=".crt"
7.KEY=".3des.key"
8.CA="ca.crt"
9.TA="ta.key"
10.
11.#Ask for a Client name
12.echo "Please enter an existing Client Name:"
13.read NAME
14.
15.#1st Verify that client's Public Key Exists
16.if [ ! -f $NAME$CRT ]; then
17.echo "[ERROR]: Client Public Key Certificate not found: $NAME$CRT"
18.exit
19.fi
20.echo "Client's cert found: $NAME$CR"
21.
22.#Then, verify that there is a private key for that client
23.if [ ! -f $NAME$KEY ]; then
24.echo "[ERROR]: Client 3des Private Key not found: $NAME$KEY"
25.exit
26.fi
27.echo "Client's Private Key found: $NAME$KEY"
28.
29.#Confirm the CA public key exists
30.if [ ! -f $CA ]; then
31.echo "[ERROR]: CA Public Key not found: $CA"
32.exit
33.fi
34.echo "CA public Key found: $CA"
35.
36.#Confirm the tls-auth ta key file exists
37.if [ ! -f $TA ]; then
38.echo "[ERROR]: tls-auth Key not found: $TA"
39.exit
40.fi
41.echo "tls-auth Private Key found: $TA"
42.
43.#Ready to make a new .opvn file - Start by populating with the default file
44.cat $DEFAULT > $NAME$FILEEXT
45.
46.#Now, append the CA Public Cert
47.echo "<ca>" >> $NAME$FILEEXT
48.cat $CA >> $NAME$FILEEXT
49.echo "</ca>" >> $NAME$FILEEXT
50.
51.#Next append the client Public Cert
52.echo "<cert>" >> $NAME$FILEEXT
53.cat $NAME$CRT | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >>
$NAME$FILEEXT
54.echo "</cert>" >> $NAME$FILEEXT
55.
56.#Then, append the client Private Key
57.echo "<key>" >> $NAME$FILEEXT
58.cat $NAME$KEY >> $NAME$FILEEXT
59.echo "</key>" >> $NAME$FILEEXT
60.
61.#Finally, append the TA Private Key
62.echo "<tls-auth>" >> $NAME$FILEEXT
63.cat $TA >> $NAME$FILEEXT
64.echo "</tls-auth>" >> $NAME$FILEEXT
65.
66.echo "Done! $NAME$FILEEXT Successfully Created."

Permettez lexcution du fichier.


Au dbut de ce script, lauteur fait rfrence un fichier Default.txt, nous allons
le crer.

On Copie le contenu ci-aprs et on ladapte en fonction de notre rseau.


1.client
2.dev tun
3.proto udp
4.remote 176.187.148.39 1194
5.resolv-retry infinite
6.nobind
7.persist-key
8.persist-tun
9.mute-replay-warnings
10.ns-cert-type server
11.key-direction 1
12.cipher AES-128-CBC
13.comp-lzo
14.verb 1
15.mute 20

5.0 Configuration de la box

Allons dans linterface de la box.


Nous mettons le serveur en adresse ip statique.
Puis nous redirigeons le flux utilisant UDP et le port 1194 vers le serveur
raspberry.

Puis on active laccs distance de la box.


6.0 Tests de la solution

Le serveur par dfaut de lutilisateur est 172.20.10.1 avant la connexion


VPN.

On redmarre le service openvpn du serveur.


Du cot client, on Install le logiciel OpenVPN.

On copie/colle le fichier texte client cr prcdemment dans le dossier config.

Voici le fichier de configuration pour se connecter au serveur vpn :


Il faut excuter en tant quadministrateur le fichier rentrer le mot de passe.

On peut voir que lutilisateur obtient ladresse ip 10.8.0.6.


Le serveur par default de lutilisateur est maintenant 192.168.1.254.

Lutilisateur arrive ping le serveur vpn.


Lutilisateur arrive ping la box.

Lutilisateur peut maintenant accder linterface de la box chez lui depuis son
entreprise en se connectant en VPN.
7.0 Connaissances apportes

En termes de connaissances apportes, cette mission ma permis damliorer


mes bases linux. De plus, cela ma permis de mettre en place une solution de
VPN et dapprendre configurer une box FAI (fournisseur daccs internet).