wiki..
OPENVPN sous DEBIAN

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 !