Tutoriels

Comment Installer un serveur OpenVPN

On  m’a demander à plusieurs reprise comment installer un serveur VPN, aujourd’hui je me suis dit qu’il était temps !

Si vous ne savez pas ce qu’est un serveur ou un client VPN je vous recommande mon article sur les VPN 😉

Le serveur VPN permet donc de créer le réseaux virtuel qui relis les clients à internet dans de nombreux cas en utilisant l’ip du serveur ou en créant tous simplement un réseau virtuel entre les utilisateurs de la liaison VPN.

Nous allons donc pouvoir commencer.

Prérequis :

  • Des connaissance linux (utilisation du terminal, iptables et ssh)
  • Debian 7 (serveur de préférence)
  • Du temps 20-30 min moins pour ceux qui copie/colle sans lire

Connecter vous en ssh à votre serveur (en root), puis commencez par mettre à jour le système :

apt-get update && apt-get upgrade

Ensuite l’on pourra installer openvpn.

apt-get install openvpn

Nous allons ensuite créer le dossier de travail et y copier le fichier de configuration :

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

Éditez avec votre éditeur préféré le fichier suivant : /etc/openvpn/easy-rsa/vars

Et modifier les valeurs suivantes en fonction de vous :

export KEY_COUNTRY= »FR »
export KEY_PROVINCE= »10″
export KEY_CITY= »Paris »
export KEY_ORG= »sky-future.net »
export KEY_EMAIL= »change-moi@sky-future.net »

Vous êtes pas obliger d’utiliser un domaine pour le champs KEY_ORG.

On se met dans le répertoire de travail :

cd /etc/openvpn/easy-rsa/

Ensuite nous allons créer les clés et certificats :

source vars
./clean-all
./build-dh
./pkitool –initca
./pkitool –server server
openvpn –genkey –secret keys/ta.key

Nous allons ensuite pouvoir copier les clés qui seront utilisé par le serveurs.

cp keys/ca.crt keys/ta.key keys/server.crt keys/server.key keys/dh1024.pem ..

Nous allons créer les répertoires jail pour emprisonner le processus openvpn et confclient qui va contenir les fichiers de configurations des clients.

mkdir /etc/openvpn/jail
mkdir /etc/openvpn/clientconf

Nous allons ensuite créer le fichier de configuration du serveur « /etc/openvpn/server.conf ».

# Serveur
mode server
proto tcp
port 443
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

Dans la partie serveur,  j’ai définie le port tcp 443 mais vous pouvez choisir un autre port et le protocole udp, cependant il faudra prendre en compte de vos modification sur le fichier de configuration du client. L’avantage du port 443 c’est qu’il est très rarement bloqué car c’est le port des page https. Le client obtiendra une ip dans la plage 10.8.0.0/24.

Lançons le serveur pour vérifier son bon fonctionnement :

cd /etc/openvpn
openvpn server.conf

Vous devez obtenir le message suivant :

initialization sequence completed

Maintenant stoppons le serveur avec un « Crtl+C » pour reprendre la main.

Puis ouvrez de nouveau le fichier de configuration du serveur (server.conf) pour dé-commenter la dernière ligne :

log-append /var/log/openvpn.log

Vous pouvez ensuite de nouveau lancer le serveur mais avec la comande suivante :

/etc/init.d/openvpn start

ou

service openvpn start

Maintenant le serveur est près, nous n’avons plus qu’a créer les fichier de configuration des clients.

Si vous désirez autoriser les connexion vers internet sur votre VPN, il va falloir l’autoriser.

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

Puis modifier le fichier /etc/sysctl.conf  passer la ligne suivante à 1.

net.ipv4.ip_forward = 1

Puis ajouter les règles iptables suivantes :

iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Puis on les sauvegardes :

iptables-save > /etc/iptables.rules

Ajouter la ligne suivante dans votre fichier /etc/network/interfaces après la finfiguration de votre carte réseau eth0 (iface eth0 inet static)

pre-up iptables-restore < /etc/iptables.rules

Nous allons maintenant créer les fichiers clients.

Ici nous allons créer une configuration pour le client « skipy » (à vous d’adapter ;))

cd /etc/openvpn/easy-rsa
source vars
./build-key skipy

Si vous désirez ajouter un mot de pass pour la connexion au VPN, remplacez la commande ./build-key par ./build-key-pass. Celle-ci vous demandera un mot de pass.

Normalement, 3 fichiers on était créer dans /etc/openvpn/easy-rsa/keys :

  • skipy.crt: Certificat client
  • skipy.csr: Certificat serveur
  • skipy.key: Clés client

Créons un dossier pour la configuration du client :

mkdir /etc/openvpn/clientconf/skipy/
cp /etc/openvpn/ca.crt /etc/openvpn/ta.key keys/skipy.crt keys/skipy.key /etc/openvpn/clientconf/skipy/
cd /etc/openvpn/clientconf/skipy/

On créer le fichier de configuration du client client.conf :

nano client.conf

 

client
dev tun
proto tcp-client
remote xxx.xxx.xxx.xxx 443
resolv-retry infinite
cipher AES-256-CBC
; client-config-dir ccd
ca ca.crt
cert skipy.crt
key skipy.key
tls-auth ta.key 1
key-direction 1
nobind
persist-key
persist-tun
comp-lzo
verb 3

Les valeurs en gras sont les valeurs qui peuvent être à modifier en fonction des valeurs que vous avez utilisez. Si vous avez simplement fait du copier coller remplacez seulement xxx.xxx.xxx.xxx par l’adresse IP de votre serveur. Si vous utilisez un autre port que 443 n’oubliez pas de le remplacer.

On crée une copie du fichier de conf pour windows :

cp client.conf client.ovpn

Voilà, le tous est près.

On redémarre le serveur openvpn :

service openvpn restart

Enfin vous pouvez prendre le contenu du dossier /etc/openvpn/clientconf/skipy/ et le mettre dans le dossier de configuration de votre client openvpn puis démarer celui-ci.

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page