Ubuntu Openvpn

Le bon vieux openvpn est de la partie :

#sudo apt-get install openvpn openssl liblzo1

Je créer le répertoire qui va contenir les fichier de conf pour générer les certificats

#sudo mkdir /etc/openvpn/easy-rsa/

Je copie les exemple des fichiers de conf vers mon repertoire

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

Je me place dans mon repertoire

#cd /etc/openvpn/easy-rsa/

J’édite la conf de vars. Il faut bien remplir tous les champs et les adapter a votre conf.

#sudo nano /etc/openvpn/easy-rsa/vars

export EASY_RSA="/etc/openvpn/easy-rsa"
export KEY_CONFIG="$EASY_RSA/openssl.cnf"

export KEY_COUNTRY="FR"
export KEY_PROVINCE="TO"
export KEY_CITY="Mou"
export KEY_ORG="totox"
export KEY_EMAIL="the@totox.c0m"

Exeptionnelement pour une raison que j’ignore le sudo ne fonctionne par pour la suite, il faut donc se mettre en root natif.

#sudo -i

Génération du fichier de conf

#source ./vars

Netoyage des clés déjà créer.

#./clean-all

Création du certificats principal.

#./build-ca

Création des clés du serveur

#./build-key-server serveurtotox

Création de la clé de Defie Hellman pour plus de sécurité

#./build-dh

Je creer la clés qui permettra la signature des paquets échangé.

#openvpn –genkey –secret /etc/openvpn/easy-rsa/keys/ta.key

Voici enfin l’étape de création des clés pour un utilisateur

#./build-key usermoi

Je creer le user et le groupe openvpn et je leur donne les bons droits pour plus de sécurité.

# groupadd openvpn
# useradd -d /dev/null -g openvpn -s /bin/false openvpn

A présent je passe a l’étape des fichiers de configuration du serveur et du client.

Fichier de configuration sur le serveur :

nano /etc/openvpn/openvpn.conf

local xxx.xxx.xxx.xxx
port 1194
proto udp

dev tun
mode server

tls-server
tun-mtu 1500
mssfix

persist-key
persist-tun

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/xxxx.crt
key /etc/openvpn/easy-rsa/keys/xxxx.key  # This file should be kept secret
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 # This file is secret

server 10.8.0.0 255.255.255.0

push "dhcp-option DNS 208.67.222.222" #dns de openDNS
push "dhcp-option DNS 208.67.220.220" #

push "redirect-gateway"

user openvpn
group openvpn

duplicate-cn
client-to-client
keepalive 10 120
cipher BF-CBC
comp-lzo
max-clients 15

status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 4
mute 10

A présent j’autorise la transmission des paquets par le serveur

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j SNAT –to ipduserveur

Je démarre openvpn :

# /etc/init.d/openvpn restart

Et enfin je configure le client en créant le fichier configuration et en récupérant les clés généré préalablement sur le serveur. Ce qui me donner un dossier contenant :

user – Serveur.ovpn
user.key
user.crt
ta.key
ca.crt

Créer un fichier user.ovpn et rentrer ces informations du client pour Vista :

client

dev tun
proto udp

remote xxx.xxx.xxx.xxx 1194

resolv-retry infinite
nobind

persist-key
persist-tun

ca  ca.crt
tls-auth ta.key 1
cert  xxxx.crt
key  xxxx.key

route-method exe
route-delay 2

verb 3