Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
OpenVPN est un logiciel open source qui implémente un réseau privé virtuel (VPN) utilisant des
techniques de création sécurisé point à point ou des connexions de site à site dans des configurations
routés ou pontés et des facilités d'accès à distance. Il utilise un protocole de sécurité personnalisé qui
utilise SSL / TLS pour l'échange de clés. Il est capable de traverser un réseau d’adresse natté et les
pare-feu. Il a été écrit par James Yonan et est publié sous la licence GNU General Public License
(GPL).
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
A l'aide des scripts installés dans le répertoire /etc/openvpn/easy-rsa/ nous allons configurer
OpenVPN pour utiliser une authentification par clés et certificats.
export KEY_COUNTRY="FR"
export KEY_PROVINCE="75"
export KEY_CITY="Paris"
export KEY_ORG="anendra.com"
export KEY_EMAIL="support@anendra.com"
Ensuite on lance la séquence suivante qui va générer les clés (.key) et les certificats (.crt):
cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
On copie ensuite les clés et les certificats utiles pour le serveur dans le répertoire/etc/openvpn/:
Puis on génère un répertoire /etc/openvpn/jail dans lequel le processus OpenVPN sera chrooté (afin
de limiter les dégâts en cas de faille dans OpenVPN) puis un autre répertoire
(/etc/openvpn/clientconf) qui contiendra la configuration des clients:
mkdir /etc/openvpn/jail
mkdir /etc/openvpn/clientconf
# Serveur TCP/1195
mode server
proto udp
port 1195
dev tun
# Cles et certificats
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
tls-auth ta.key 1
key-direction 0
cipher AES-256-CBC
# Reseau
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
# Securite
user nobody
group nogroup
chroot /etc/openvpn/jail
persist-key
persist-tun
comp-lzo
# Log
verb 3
mute 20
status openvpn-status.log
; log-append /var/log/openvpn.log
cd /etc/openvpn
openvpn server.conf
log-append /var/log/openvpn.log
A ce stade les machines clientes vont pouvoir se connecter au serveur VPN. Par contre impossible
d'aller plus loin que ce dernier car l'adresse 10.8.0.x ne sera par routée en dehors de votre serveur. Il
faut donc configurer le serveur pour qu'il joue le rôle de routeur entre l'interface VPN (tun0) et
l'interface physique (eth0) et de NATeur entre les adresses en 10.8.0.x et son adresse IP réelle.
Configuration du routage:
Pour rendre ce paramétrage de routage permanant (même après un reboot), il faut ajouter la ligne
suivante au fichier /etc/sysctl.conf:
Pour rendre cette règle de NAT persistante après un reboot de votre serveur, il faut commencer par
créer un script de chargement de règles de Firewall (ou utiliser un script existant):
Puis éditer votre fichier /etc/network/interfaces pour y ajouter la ligne suivante après la définition de
votre interface réseau principale ("iface eth0 inet..." par exemple):
Le serveur est maintenant prêt à accueillir les clients. Nous allons donc voir dans le chapitre suivant
comment déclaration un client sur le serveur.
Imaginons que l'on veuille créer une clé pour le client "pcportablekevin" (c'est un exemple), alors il
suffit de saisir les commandes suivantes sur le serveur:
cd /etc/openvpn/easy-rsa
source vars
./build-key pcportablekevin
Note: si vous souhaitez protéger l'accès à vos clés par un mot de passe (c'est à dire qu'un mot de
passe sera demandé à la monté du tunnel VPN), il faut utiliser la commande ./build-key-pass en lieu
et place de ./buil-key.
mkdir /etc/openvpn/clientconf/pcportablekevin/
cd /etc/openvpn/clientconf/pcportablekevin/
Puis on créé le fichier client.conf (il faut remplacer A.B.C.D par l'adresse publique de votre serveur
VPN que vous pouvez obtenir avec la commande "wget -qO- ifconfig.me/ip"):
# Client
client
dev tun
proto tcp-client
remote 82.227.153.157 1195
resolv-retry infinite
cipher AES-256-CBC
; client-config-dir ccd
# Cles
ca ca.crt
cert pcportablekevin.crt
key pcportablekevin.key
tls-auth ta.key 1
key-direction 1
# Securite
nobind
persist-key
persist-tun
comp-lzo
verb 3
Pour assurer la compatibilité avec le client Windows OpenVPN, on fait une copie du fichier client.conf
vers client.ovpn:
cp client.conf client.ovpn
Il ne reste plus qu'à mettre ces fichiers dans une archive ZIP et de la transmettre sur le PC client:
Les opérations suivantes sont à faire sur le PC client que l'on veut connecter au serveur VPN.
Gnome permet de configurer de manière graphique le client OpenVPN. Pour celà il faut ajouter les
packages suivants sur sa distribution (Ubuntu Desktop 10.10 dans mon exemple):
Ensuite on clique gauche sur l'icone réseau du Tableau de bord > Connexions VPN > Configurer le
VPN.
Rien de très compliqué :). Si vous avez nommé votre déclaration de VPN Client alors, il suffit
de cliquer gauche sur l'icone réseau du Tableau de bord > Connexions VPN > Client.
L'icône réseau du tableau de bord devrait se voir modifier (apparition d'un petit cadenas).
Pour ce déconnecter du VPN: Tableau de bord > Connexions VPN > Déconnecter le VPN.
Je conseille donc l'utilisation d'une solution libre “OpenVPN Windows” (à télécharger sur le
site http://openvpn.net/index.php/open-source/downloads.html).
On part sur le principe ou le fichier pcportablekevin.zip a été téléchargé et dézippé dans le répertoire
c:/vpn/pcportablekevin.
On va utiliser le client OpenVPN pour Windows nommé "OpenVPN Acccess Server Windows client"
téléchargeable sur le site suivant (il nécessite l'installation préalable du framework .NET 3.5 SP1,
téléchargeable sur le même site).
Une fois le logiciel téléchargé puis installé. Il suffit de cliquer sur le nouvel icône dans la barre des
tâches. La fenêtre suivante devrait apparaître. Il faut alors cliquer sur le bouton + pour ajouter une
nouvelle connexion VPN.
Ensuite on sélectionne l'option d'importation locale (1) et on clique sur Import (2):
Il suffit de cliquer sur le nouvel icône dans la barre des tâches. Il faut alors cliquer sur le bouton
correspondant à votre connexion VPN définie dans le paragraphe précédent.