Accueil

Menu Linux

Menu Windows

I. Partie LINUX

  • Préliminaire

Introduction Linux

LiveCD Linux

  • Installation

LiveCD Ubuntu

Installation Ubuntu

Ubuntu sur Netbook

Installation Netbook

Installations, mise à jour

Applications Ubuntu

Documentation-Aides

  • Aller plus loin

Arborescence Ubuntu

Recherche Ubuntu

Edition Linux

Terminal & Super Utilisateur

Commandes Linux (1)

Commandes Linux (2)

Utilisateurs, groupes, droits

Installation Imprimante

Compression-Archivage

Déplacer le /home

  • Réseau

Connexion Linux

Réseau Linux

Analyse Réseau - Gestion parc

Partages,Transferts

Contrôle à distance

Serveur Linux

OpenVPN

Sécurité Linux

  • Utiliser des applications Windows

Virtualisation

Wine: Applications Windows sous Linux

  • Téléphonie VOIP

Asterisk, TrixBox

  • Maintenance, dépannage

Dépannage Ubuntu

Grub

Partitions Linux

Fstab

Sauvegarde-Synchronisation

  • BDD

BDD Linux

Access/MySQL

Talend Open Studio

II. Partie commune

Présentation

  • Internet

Navigation Internet

Thunderbird (1)

Thunderbird (2)

Thunderbird (3)

Courrier GMail

  • Bureautique

Open Office

  • Graphisme

Picasa

  • Photo

Photo: Théorie

Photo: Pratique

Diaporama, site photos

Retouche: Gimp

  • Vidéo

YouTube

  • BDD

Access/MySQL

III. Partie WINDOWS

  • Préliminaire

Logiciels Windows

Téléchargements

Utilitaires Windows

  • Internet

Connexion Internet

Export OutlookExpress

Changement d'ordinateur

Agenda

Blog: Dotclear

Exploration/Dépannage Internet

  • Création de site

Joomla

Dreamweaver

  • Réseau

Partage Connexion

Partage Fichiers

Partage Imprimante

Transfert Fichiers

  • Dépannage

Prévention-dépannage Windows

  • Divers

Anti-virus

Gravure CD

Installation périphérique Windows

Partitions Windows

Organisation disque dur

Sauvegarde-Synchronisation Windows

Putty

Contrôle à distance

OpenVPN

OpenVPN permet la création de réseau privé virtuel VPN (Virtual Private Network).

Il permet à des pairs de s’authentifier entre eux à l’aide d’une clé privée partagée à l’avance, de certificats ou de couples de noms d’utilisateur/mot de passe. Il utilise OpenSSL (Secure Sockets Layer) pour l’authentification. Logiciel libre, il existe sous Linux, Mac OS X et Windows.

L’architecture comprend d’un côté un client et de l’autre un serveur.

Procédure d'installation

Installer d’abord les paquets apt://openvpn,openssh-server,openssl. Au préalable, activer si besoin le dépôt Universe.

Infrastructure des Clés Publiques

Une ICP fonctionne grâce à :

  • une clé publique pour le serveur et une clé privée pour chacun des clients
  • un certificat de l’Autorité de Certification maître et des clés qui sont utilisées pour identifier (signer, identifier…) chaque certificat serveur et client.

OpenVPN supporte une authentification bidirectionnelle basée sur les certificats, donc le client doit authentifier le certificat du serveur et le serveur doit authentifier le certificat du client avant qu’une confiance mutuelle puisse être établie.

Les fichiers clés

Le tableau suivant récapitule les clés et les certificats fraichement générés dans le dossier keys. Suit une explication de ce que contiennent les fichiers du dossier keys.

Nom de fichier Besoin pour Utilité Secret
ca.crt Serveur et tous les clients Certificat racine CA NON
ca.key Clé signant la machine seulement Clé racine CA OUI
dh{n}.pem Serveur Paramètres Diffie Hellman NON
server.crt Serveur Certificat serveur NON
server.key Serveur Clé serveur OUI
client1.crt Client1 Certificat Client1 NON
client1.key Client1 Clé Client1 OUI
client2.crt Client2 Certificat Client2 NON
client2.key Client2 Clé Client2 OUI

Création du certificat de l’autorité de certification (CA)

La mise en place d’un serveur OpenVPN nécessite la génération des clés et des certificats. Plusieurs scripts sont disponibles pour générer plus facilement les clés et les certificats pour OpenSSL. Ces scripts sont enregistrés dans le dossier easy-rsa :

cd /usr/share/doc/openvpn/examples/easy-rsa/

Avant d’utiliser les scripts, il faut éditer le fichier vars pour initialiser les variables par défaut indiquées à la fin du fichier. Par exemple :

- export KEY_COUNTRY=FR
- export KEY_PROVINCE=France
- export KEY_CITY=Toulon
- export KEY_ORG="AssoXYZ"
- export KEY_EMAIL="contact@AssoXYZ.fr"

Une fois le fichier modifié, la ligne suivante permet d’initialiser les variables pour les scripts:

. ./vars

Le script suivant permet de créer ou de réinitialiser le sous-dossier keys:

./clean-all  # pour nettoyer toutes les clés et certificats existants

Le script suivant permet de créer dans keys le certificat principal du serveur ca.crt et la clé correspondante ca.key :

./build-ca

Création du certificat et da la clé du serveur

Le script suivant permet de créer dans keys le certificat ubserv.crt et la clé ubserv.key pour le serveur VPN nommé par exemple ubserv:

# ./build-key-server ubserv
# ./build-key-server ubserv
Generating a 1024 bit RSA private key
...........++++++
................................................++++++
writing new private key to 'ubserv.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) [France]:
Locality Name (eg, city) [Toulon]:
Organization Name (eg, company) [USERV]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [userv]:  # à remplir impérativement
Email Address [...@free.fr]:

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/doc/openvpn/examples/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'FR'
stateOrProvinceName   :PRINTABLE:'France'
localityName          :PRINTABLE:'Toulon'
organizationName      :PRINTABLE:'UBSERV'
commonName            :PRINTABLE:'ubserv'  # à remplir impérativement
emailAddress          :IA5STRING:'...@free.fr'
Certificate is to be certified until Apr 21 17:17:18 2019 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

Création du certificat et de la clé pour un client OpenVPN

Le script suivant permet de créer dans keys le certificat Client01.crt et la clé Client01.key pour le client VPN nommé par exemple Client01 :

# cd /usr/share/doc/openvpn/examples/easy-rsa/
# . ./vars
# ./build-key Client01

Ce script doit afficher à l’écran quelque chose comme:

# ./build-key Client01
Generating a 1024 bit RSA private key
..++++++
....................++++++
writing new private key to 'Client01.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.
-----
-----
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Création du paramètre Diffie Hellman

Le script build-dh permet de créer le fichier dh1024.pem

./build-dh

Mise en place des certificats et des clés

Déplacer maintenant les certificats et clés dans le répertoire openvpn:

cp ./keys/ca.crt /etc/openvpn/
cp ./keys/ca.key /etc/openvpn/
cp ./keys/userv.crt /etc/openvpn/
cp ./keys/userv.key /etc/openvpn/
cp ./keys/dh1024.pem /etc/openvpn/

Création d’un utilisateur avec des droits limités pour OpenVPN

Pour limiter les risques d’attaques sur OpenVPN, il est important que le processus d’OpenVPN fonctionne sur un utilisateur n’ayant aucun droit sur le système.

Souvent, l’utilisateur nobody est utilisé par défaut, mais il est encore plus sécurisant de faire tourner chaque processus avec un utilisateur différent. Donc, pour le processus OpenVPN, créer plutôt l’utilisateur openvpn:

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

Configuration d’OpenVPN

Par défaut OpenVPN est fourni avec plusieurs fichiers d’exemples enregistrés dans le dossier /usr/share/doc/openvpn/examples/sample-config-files/

Le port 22 est normalement attribué au SSH, les bons ports pour OpenVPN sont :

- openvpn 1194/tcp OpenVPN

- openvpn 1194/udp OpenVPN

Pour configurer le serveur, partir du fichier d’exemple server.conf.gz à décompresser et à mettre dans /etc/openvpn:

# cd /usr/share/doc/openvpn/examples/sample-config-files/
# gunzip server.conf.gz
# cp server.conf /etc/openvpn/

Il suffit ensuite d’adapter ce fichier en fonction des besoins. Voici un exemple de fichier de configuration:

;Port en écoute utilisé pour la connexion VPN
;port 1194

;Protocole utilisé (Le protocole udp est plus sécurisé que le tcp)
proto udp

;Type d'interface réseau virtuel créé
dev tun

;Nom des fichiers servant à l'authentification des clients via OpenSSL
ca ca.crt
cert LeServeurVPN.crt  # selon serveur
key LeServeurVPN.key   # selon serveur
dh dh1024.pem

;Adresse du réseau virtuel (Le serveur aura l'adresse 10.8.0.1)
server 10.8.0.0 255.255.255.0

;Cette ligne ajoute sur le client la route du réseau du serveur
push "route 192.168.0.0 255.255.255.0"  # selon adresse réseau

;Ces lignes indiquent aux clients l'adresse des serveur DNS et WINS
push "dhcp-option DNS 192.168.0.2"  # selon IP DNS
push "dhcp-option DOMAIN MonDomaine.com"  # selon Domaine
push "dhcp-option WINS 192.168.0.3"  # selon IP WINS

# Cette ligne permet aux clients de voire les autres clients
;client-to-client

keepalive 10 120

;Cette ligne active la compression
comp-lzo

;Ces lignes indiquent un user et un group particulier pour le processus
user openvpn
group openvpn

;Ces lignes permettent de rendre persistante la connexion
persist-key
persist-tun

status openvpn-status.log

;Cette ligne permet d'indiquer le niveau de log souhaité (de 1 à 9)
verb 1

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

Vérifier la redirection 1194 sur le routeur

Ajouter une route statique openvpn en 10.8.0 vers le serveur

 
 
openvpn.txt · Dernière modification: 2009/10/19 14:37 par guy
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki