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.