installation
aptitude install openvpn
copie des fichiers de configurations:
mkdir /etc/openvpn/easy-rsa/ cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ chown -R $USER /etc/openvpn/easy-rsa/
Configuration
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. On commence par éditer le fichier /etc/openvpn/easy-rsa/vars:
export KEY_COUNTRY="FR" export KEY_PROVINCE="69" export KEY_CITY="lyon" export KEY_ORG="ordiwiki.com" export KEY_EMAIL="dtc@hadopi.fr"
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 ./pkitool --server server openvpn --genkey --secret keys/ta.key
On copie ensuite les clés et les certificats utiles pour le serveur dans le répertoire /etc/openvpn/:
cp keys/ca.crt keys/ta.key keys/server.crt keys/server.key keys/dh1024.pem /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 qui contiendra la configuration des clients:
mkdir /etc/openvpn/jail mkdir /etc/openvpn/clientconf
Enfin on créé le fichier de configuration /etc/openvpn/server.conf:
# Serveur TCP/443 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 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 4.4.4.4" push "dhcp-option DNS 8.8.8.8" 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
teste la configuration en saisissant la commande suivante:
openvpn server.conf
On doit obtenir les messages suivants:
... ... initialisation sequence completed
Si le serveur démarre correctement, on peut terminer la configuration sur serveur OpenVPN en décommentant la dernière ligne du fichier /etc/openvpn/server.conf :
log-append /var/log/openvpn.log
On lance le serveur avec la commande:
/etc/init.d/openvpn start
routage :
sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
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:
net.ipv4.ip_forward = 1
Configuration du NAT:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
création d'un utilisateur
pour un utilisateur au nom de vpnuser :
cd /etc/openvpn/easy-rsa source vars ./build-key vpnuser
Le script ./build-key va générer 3 fichiers dans le répertoire /etc/openvpn/easy-rsa/keys: vpnuser.crt: Certificat pour le client vpnuser.csr: Certificat à garder sur le serveur vpnuser.key: Clés pour le client
On copie les fichiers nécessaires dans un sous répertoire du répertoire /etc/openvpn/clientconf/ préalablement créé Puis on créé le fichier client.conf (il faut remplacer A.B.C.D par l'adresse publique de votre serveur VPN.)
# Client client dev tun proto tcp-client remote A.B.C.D 443 resolv-retry infinite cipher AES-256-CBC # Cles ca ca.crt cert vpnuser.crt key vpnuser.key tls-auth ta.key 1 # Securite nobind persist-key persist-tun comp-lzo verb 3
renomer client.conf en client.ovpn pour un client windows
le dossier /etc/openvpn/clientconf/vpnuser doit contenir :
-ca.crt: Certificat du serveur
-client.conf: Fichier de configuration du client OpenVPN (Linux, BSD, MacOS X)
-client.ovpn: Fichier de configuration du client OpenVPN (Windows)
-vpnuser.crt: Certificat du client
-vpnuser.key: Clés du client
-ta.key: Clés pour l'authentification
Sur le client :
linux Debian/Ubuntu
aptitude install openvpn
copier le repertoire vpnuser et son contenue dans dans /etc/openvpn
on lance le vpn dans un terminal en se positionnant dans le rep du client
cd /etc/openvpn/vpnuser client.conf
et voila !
Windows
installer ce client
http://openvpn.net/index.php/open-source/downloads.html
copier les fichiers de conf dans c:/programfiles/openvpn/config
clik et voila !