INSTALLATION SERVEUR OPENVPN SUR DEBIAN SQUEEZE

Dans ce tutoriel je vais expliquer comment installer un VPN sous Debian Squeeze. OpenVPN est un logiciel libre qui permet de créer des réseaux privés virtuels chiffrés avec OpenSSL. Un VPN (Virtual Private Network) ou Réseau Privé Virtuel est une connexion permettant de relier deux réseaux locaux différents de façon sécurisée à travers un tunnel.

 

1 – Installation

 

Installation des paquets openvpn et openssl

aptitude install openvpn openssl

Copie des fichiers de configuration

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/

2 – Génération des certificats

A partir des fichiers récemment copiés dans /etc/openvpn/ modifier les variables suivantes dans le fichier vars comme ceci :

export KEY_COUNTRY= »FR »

export KEY_PROVINCE= »00 »

export KEY_CITY= »MAVILLE »

export KEY_ORG= »MONENTREPRISE »

export KEY_EMAIL= »monmail@mail.mail »

Se déplacer dans le dossier

cd /etc/openvpn/

Initialisation du fichier vars. Il y a un espace entre les deux point ( . ./vars)

. ./vars

NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

Nettoyage de toutes les clés et certificats existants :

./clean-all

Création du certificat et de la clé d’Autorisé 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) [00]:

Locality Name (eg, city) [MAVILLE]:

Organization Name (eg, company) [MONENTREPRISE]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server’s hostname) [MONENTREPRISE]:

Name []:

Email Address [mon.mail@mail.fr]:

Les fichiers ca.key et ca.crt sont maintenant créés dans le dossier Keys

Création du certificat et la clé pour le serveur

IMPORTANT: quand le champ Common Name apparaît, il faut saisir le nom du serveur, dans mon cas debiantest. Ce n’est pas obligatoire mais vous pouvez saisir un mot de passe et un nom d’entreprise. Surtout si vous en saisissez un, ne le perdez pas. Il vous sera demandé à chaque manipulation des certificats clients.

 

./build-key-server debiantest

 

Generating a 1024 bit RSA private key

……………………++++++

………………….++++++

writing new private key to ‘debiantest.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) [00]:

Locality Name (eg, city) [MAVILLE]:

Organization Name (eg, company) [MASOCIETE]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server’s hostname) [debiantest]:

Name []:

Email Address [mon.mail@mail.fr]:

 

Please enter the following ‘extra’ attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

Using configuration from /etc/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:’00’

localityName :PRINTABLE:’MAVILLE’

organizationName :PRINTABLE:’MASOCIETE’

commonName :PRINTABLE:’debiantest’

emailAddress :IA5STRING:’maon.mail@mail.fr’

Certificate is to be certified until Aug 27 11:33:10 2022 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

 

Le certificat et la clé du serveur sont maintenant créés dans le dossier /etc/openvpn/keys. Il se nomme debiantest.crt

Construction des parameter Diffie Hellman

Les parameters Diffie Hellman est un moyen de sécuriser la négociation initiale effectué sur un lien non sécurisé

./build-dh

Construction de la Clé TLS

L’authentification TLS ajoute une signature HMAC à tous les packets de handshake afin de vérifier leur intégrité

openvpn –genkey –secret /etc/openvpn/keys/ta.key

2 – Générer les clés des clients

Se déplacer dans le dossier /etc/openvpn/

cd /etc/openvpn

Initialisation des variables pour les scripts (point|espace|point|vars)

. ./vars

Générer les certificats et les clés pour chaques clients.

La marche à suivre est identique à celle pour le serveur. IMPORTANT:, le champ Common Name doit être renseigné et unique par exemple pour client1 mettre client1 lorsque Common Name est demandé

Répéter l’opération pour d’autres clients

Ex :

./build-key client2

./build-key client3

Si vous souhaitez protéger les clés, générer avec un mot de passe, utiliser ./build-key-pass au lieu de ./build-key

./build-key client1

 

Generating a 1024 bit RSA private key

………++++++

…………………………………………………….++++++

writing new private key to ‘client1.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) [00]:

Locality Name (eg, city) [MAVILLE]:

Organization Name (eg, company) [MASOCIETE]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server’s hostname) [client1]:

Name []:

Email Address [mon.mail@mail.fr]:

 

Please enter the following ‘extra’ attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

Using configuration from /etc/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:’00’

localityName :PRINTABLE:’MAVILLE’

organizationName :PRINTABLE:’MASOCIETE’

commonName :PRINTABLE:’client1′

emailAddress :IA5STRING:’mon.mail@mail.fr’

Certificate is to be certified until Aug 27 11:54:03 2022 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

Les certificats et les clés sont créés dans /etc/openvpn/keys : client1.crt et client1.key

 

3 – Ajout de l’utilisateur OpenVpn

 

Afin de limiter le risque d’attaque sur le serveur, nous allons attribuer le processus Openvpn à un utilisateur qui n’a aucun droit sur le système

groupadd openvpn

useradd -d /dev/null -g openvpn -s /bin/false openvpn

 

4 – Création des fichiers de configuration pour le serveur et les clients

 

Dans le répertoire /usr/share/openvpn/examples/sample-config-files/ sont présents des fichiers de configuration clients et server.conf. Ces fichiers vont servir de base pour la configuration de nos clients et du client.

Si vous utilisez des ordinateurs sous Windows le fichier doit se nommer client.ovpn et non client.conf.

 

4-1 Création du fichier de configuration serveur

 

Le fichier de configuration est compressé.

Se déplacer dans le dossier sample-config-files

 

cd /usr/share/doc/openvpn/examples/sample-config-files

Décompression du fichier de configuration

gunzip server.conf.gz

Copie du fichier dans /etc/openvpn

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

Modifier les lignes suivantes du fichier server.conf

 

cert debiantest.crt

key debiantest.key

 

tls-auth ta.key 0

 

user openvpn

group openvpn

 

log openvpn.log

 

# Ajout du serveur DNS

push « dhcp-option DNS VOTRE.SERVEUR.DNS »

 

# Ajout d’une route

push « route 192.168.0.0 255.255.255.0 »

4-2 Création du fichier de configuration pour le client

 

Copie du fichier dans le répertoire /etc/openvpn

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Modifier les lignes suivantes dans le fichier client.conf

 

remote ADRESSE.IP.DE.VOTRE.SERVEUR 1194

 

user openvpn

group openvpn

 

cert client1.crt

key client1.key

 

tls-auth ta.key 1

Démarrage automatique d’OpenVPN

 

Pour permettre à OpenVpn de se lancer automatiquement au démarrage il faut copier les fichiers de configuration à la racine du dossier /etc/openvpn

Pour le serveur :

  • ca.crt
  • ta.key
  • dh1024.pem
  • debiantest.crt
  • debiantest.key

 

cp ca.crt ta.key debiantest.key debiantest.crt dh1024.pem /etc/openvpn

Pour le client :

  • client1.crt
  • client.key

 

cp client1.crt client1.key /etc/openvpn/

5 -Démarrage d’OpenVpn

 

cd /etc/openvpn

openvpn server.conf

Redémarrage du serveur

Vérification du bon lancement d’Openvpn

Ifconfig

Les lignes suivantes doivent apparaitre :

 

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

inet adr:15.8.0.1 P-t-P:15.8.0.2 Masque: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:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 lg file transmission:100

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

 

Test de ping sur l’interface Tun0

ping 15.8.0.1

Pour redémarrer le service openvpn

/etc/init.d/openvpn restart

 

6 – Permettre aux clients VPN d’accéder à l’ensemble du réseau distant

Avec la configuration actuelle, les utilisateurs du VPN ne pourront pas accéder au réseau sur lequel est connecté le serveur.

6-1 Autoriser Linux à transmettre les paquets

Activer le forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

Avec cette commande, le forwarding sera désactivé au redémarrage du serveur. Pour remédier à ce problème, modifier le fichier /etc/sysctl.conf.

Décommenter la ligne suivante :

 

# Uncomment the next line to enable packet forwarding for IPv4

net.ipv4.ip_forward=1

 

7 – Installation du client Windows

 

Vous pouvez télécharger le client openvpn à l’adresse suivante :

http://openvpn.net/index.php/open-source/downloads.html

Une fois le fichier téléchargé, exécutez le.

Cliquer sur next

 

Cliquer sur I Agree

Cliquer sur Next

Cliquer sur Install

Installation en cours

Cliquer sur Next

Décocher Show Readme puis cliquer sur Finish

7-1 Configuration du client Windows

 

Dans C:\Program Files\OpenVPN\config créer un répertoire client1 et récupérer la clé et le certificat du client précédemment créés pour les mettre dans le dossier client1. Les fichiers à récupérer sont :

  • ca.crt
  • ta.key
  • client1.key
  • client1.crt
  • client.conf

 

Renommer le fichier client.conf en client.ovpn pour qu’il puisse fonctionner sous Windows

Exécuter Openvpn, celui-ci se lance à côté de l’heure. Faire un clic droit sur les deux ordinateurs puis connect


Connexion en cours


Si le message apparaît, le message suivant apparait.


Le serveur VPN est maintenant opérationnel.

Auteur : POMENTE Guillaume

2 réponses à “INSTALLATION SERVEUR OPENVPN SUR DEBIAN SQUEEZE

  1. Simply desire to say your article is as amazing. The
    clearness in your post is just nice and i can assume you are an expert on this subject.
    Well with your permission allow me to grab your feed to keep updated with forthcoming post.
    Thanks a million and please continue the enjoyable work.

Les commentaires sont clos.