20 Fév

OpenVPN sous Debian 8

OPENVPN sous Debian 8

– attention ça ne marche pas sous la 9 ;-(

 

 

Configuration du serveur

Pré-requis

Une Debian (ici chez OVH)

Installation du serveur

Apt-get update

apt-get install openvpn easy-rsa

cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa

cd /etc/openvpn/easy-rsa/

Gestion des clés & certificats

  • Certificat CA (autorité de certification) : valide les échanges entre le client et le serveur
  • Le certificat serveur : authentifié par le CA, contient la clé publique du serveur
  • Le certificat client : crée sur le serveur, il est copié sur le client ; permet au serveur de s’assurer de l’identité du client : 1 par client
  • La clé du serveur, elle sert à chiffrer les communications avec le serveur
  • La TA key : permet de signer les paquets échangés à l’aide d’une clef secrète partagée entre le Client et le Serveur. C’est la “ta.key
  • Le dh’taille’.pem : le fichier “dh2048.pem” devra être copié sur le Serveur et distribué aux Clients. Il contient les paramètres de cryptage Diffie Hellman.

Editer le fichier vars pour mettre les infos du certificat puis

Nano  vars

Puis ces différentes commandes vont permettre de générer les différentes clés et certificats

Source vars

./clean-all

./build-dh

./pkitool –initca

./pkitool –server server

sudo openvpn –genkey –secret keys/ta.key

Toutes les clés et certificats sont dans le dossier « keys »

mkdir /etc/openvpn/serveur/

cp keys/server* keys/ca* keys/ta.* keys/dh2048.pem ../serveur

Gestion des logs

mkdir /etc/openvpn/jail/tmp

mkdir -p /var/log/openvpn/

touch /var/log/openvpn/openvpn-status.log

INIT des utilisateurs

On ajoute l’utilisateur :

adduser –system –shell /usr/sbin/nologin –no-create-home openvpn

On crée un répertoire pour les clés et fichiers de config

mkdir /etc/openvpn/client / openvpn

Dans /etc/openvpn/easy-rsa on fabrique la clé et on génère le certificat du clé :

source vars

./build-key-pass openvpn

cp keys/toto.* ../client /openvpn

Maintenant, on se place dans le bon dossier et on crée le fichier de configuration de l’utilisateur :

cd /etc/openvpn/clientconf/openvpn /

touch client.conf

puis nano client.conf

# Config Client

client

dev tun

proto tcp-client

remote 1.2.3.4 443 (a modifier par votre adresse ip)

resolv-retry infinite

cipher AES-256-CBC

# Certificats + Cles

ca ca.crt

cert toto.crt

key toto.key

tls-auth ta.key 1

# Config Securite

nobind

persist-key

persist-tun

 

Attention à la création du certificat client un mot de passe est demandé il sera nécessaire lors de la connexion – retenez le bien !

Maintenant, nous allons faire une copie du fichier créé avec l’extension. Ovpn pour le logiciel client.

cp client.conf client.ovpn

Il faudra aussi faire une copie du certificat CA et de la dh2048.pem dans le dossier pour la connexion

Fichier de configuration du serveur

Créer le fichier server.conf dans /etc/openvpn

# Serveur TCP/443 mode server proto tcp port 443 dev tun # Clés et certificats ca /etc/openvpn/serveur_AT/ca.crt cert /etc/openvpn/serveur_AT/server.crt key /etc/openvpn/serveur_AT/server.key dh /etc/openvpn/serveur_AT/dh2048.pem tls-auth /etc/openvpn/serveur_AT/ta.key 1 key-direction 0 cipher AES-256-CBC

# Reseau client-to-client #push « route 192.168.100.0 255.255.255.0 » 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 /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log

 

Vérifier si la carte tun0 est là avec un ifconfig (si non, faire un reboot)

Démarrer le serveur

/etc/init.d/openvpn restart

 

Config du firewall

  • Editer le fichier de règles :

nano /etc/iptables.openvpn.rules

Ajouter les lignes:

*nat

-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

COMMIT
  • Puis

iptables-restore < /etc/iptables.openvpn.rules

iptables-save > /etc/iptables.up.rules

  • Sauvegardez les règles pour le prochain reboot

/etc/init.d/netfilter-persistent save

  • Edition du fichier iptables

nano /etc/network/if-pre-up.d/iptables

  • Ajouter le contenu :
 #!/bin/sh

 /sbin/iptables-restore < /etc/iptables.up.rules
  • Modifier les droits :

chmod +x /etc/network/if-pre-up.d/iptables

  • Activer le forwarding :

nano /etc/sysctl.conf

Décommenter la ligne

net.ipv4.ip_forward=1

  • Activer les modifications

sysctl -p

Configuration du Client

A l’aide de WinSCP récupérer la clé, le certificat et la config du client

Installer le client openvpn pour Windows

Dans le répertoire program files/openvpn/config copier le fichier de config ainsi que le certificat et la clé du client ainsi que le certificat de l’autorité CA

OpenVpn installe une icône en bas a droite qui vous permet de vous connectez et de modifier le fichier de config si besoin.

Lors de la demande de connexion le mot de passe crée lors de la génération du certificat est demandé.

Pour plus d’informations ou pour configurer pfsense en tant que client :

http://general.sio57.info/wp/?p=708

 

Un grand merci à Romain qui m’a été d’une grande aide les années passées pour réaliser ce VPN.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.