*****************************************************************************************************************
Attention voir les commentaires la config que je donne laisserai passer sur des tests appronfondis l'adresse IP originale,

voir le commentaire du pseudo openvpn

*****************************************************************************************************************

Il est tout à fait possible de se faire un VPN en louant un serveur VPS de chez OVH pour 2,29 euro/mois

offre-ovh-vps.png

Cet exemple est valable je pense avec n'importe quel VPS, à vous de choisir l'emplacement de sortie de votre VPN, en effet chez OVH nous n'avons pas beaucoup de choix, le serveur et soit en France soit aux US attention c'est au moment de la commander qu'il faut choisir.

Ce billet est plus un memo pour moi qu'un howtoo ou tutoriel, je me suis plus qu'inspiré de deux pages web décrivant pas à pas les manipulation à faire un grand merci aux deux auteurs :

J'ai donc tapé les commandes ci-dessous et cela à fonctionné, cette page me servira donc pour moi si je devais réinstaller mon VPN ce qui arrivera à coup sûr puisqu'il me sert entre autre de laboratoire aussi.

Le minimum à savoir faire au départ et d'arriver à passer des commandes sur son serveur en mode texte. Si vous êtes sous linux, rien de plus simple dans une fenetre terminal il suffit de taper la commande :

L'adresse ip du serveur a été communiqué dans le mail de fin de commande ainsi que le nom de l'utilisateur, chez ovh j'ai choisi la version linux ubuntu et le nom d'utilisateur d'administration est root c'est pour cela que la commande est la suivante :

ssh adresseipduserveur -l root

Notre serveur fraîchement livré à surement besoins de petite mise à jour il suffit de taper les commandes suivantes :

apt-get update
apt-get upgrade

Maintenant que le serveur est à jour nous pouvons commencer, premierement il faut installer les logiciels necessaires.

apt-get install openvpn
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/

Maintenant il faut configurer le fichier vars pour cela il faut modifier ce fichier qui se trouve ici

/etc/openvpn/easy-rsa/vars
export KEY_COUNTRY="FR"
export KEY_PROVINCE="75"
export KEY_CITY="Paris"
export KEY_ORG="votredomaine.fr"
export KEY_EMAIL="an@nyme.fr"

Les infos ci-dessus servent à construire un certificat de chiffrement, en fait plus exactement les clefs qui serviront aux échanges chiffrés entre votre ordi et le VPN c'est infos n'ont pas besoins d'être vraies

cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
openvpn --genkey --secret keys/ta.key

Attention de bien tapez ./ cela permet d'appeler les commandes en mode relatif

Voila maintenant les clefs sont faites il reste à les mettre au bon endroit c'est à dire dans le repertoire /etc/openvpn

cp keys/ca.crt keys/ta.key keys/server.crt keys/server.key keys/dh1024.pem /etc/openvpn/

Ensuite pas mesure de sécurité nous allons créer un environnement un peu plus sécurisé que l'on appel prison ou plus exactement enprisonnement (jail) et aussi pour ne pas en avoir un peu partout en créant deux repertoires

mkdir /etc/openvpn/jail
mkdir /etc/openvpn/clientconf

Maintenant il nous faut créer le fichier de configuration du serveur openvpn en faisant un fichier /etc/openvpn/server.conf dans lequel il faut mettre :

#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

Voila nous sommes prêt a lancer le serveur pour cela:

cd /etc/openvpn
openvpn server.conf

Si tout est ok jusque là la dernière ligne affichée doit être : Initialization Sequence Completed

Sinon quelque chose ne va pas reliser les deux pages qui m'on inspirés pour mes notes, re-controlez pas à pas ce qui a était fait

Pour reprendre la main faites CTRL+C Reprenez en modification le fichier server.conf pour enlever le ; de la derniere ligne, ce ; servait à mettre en remarque la commande log-append /var/log/openvpn.log et maintenant que nous sommes prêt il vaut mieux avoir un petit log pour savoir ce qui se passe par la suite sur notre vpn

Nous pouvons maintenant lancer notre serveur vpn correctement via la commande

service openvpn start

Maintenant il faut que l'on s'occupe du routage, nous avons jusque là mis en place uniquement la possibilité de demarrer un serveur vpn sécurisé, il faut maintenant donner la possibiliter d'accès au reseau public pour cela nous allons utiliser les possibilités de routage de linux

Pour donner le droit de router à chaud il suffit de taper la commande :

sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

Pour que cela soit toujours en place au prochain demarrage du serveur il faut l'indiquer dans un fichier de configuration soit en ajoutant une ligne soit en dé-commentant celle qui existe déjà dans le fichier

/etc/sysctl.conf

Voici la ligne qui doit être présente dans ce fichier

net.ipv4.ip_forward = 1

Maintenant mettons en place les règles de routage


iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT
iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.2/24 -o venet0 -j MASQUERADE

A noter la présence de venet0 au lieu de eth0, car sur les serveurs vps souvent ce ne sont pas des interfaces physiques de cartes réseau, mais des cartes virtuelles

Maintenant nous pouvons sauvegarder les régles dans un fichier afin de pouvoir s'en servir à chaque démarrage du serveur pour cela nous passons la commande


sh -c "iptables-save > /etc/iptables.rules"

Nous obtenons donc un fichier iptables.rules qui va falloir faire connaitre au script qui demarre le serveur VPS

Pour cela je rappel que nous sommes sur un ubuntu serveur il nous faut creer un fichier


/etc/network/interfaces.tail

et y mettre dedans

pre-up iptables-restore < /etc/iptables.rules

Maintenant, nous allons créer les clefs et le fichier de configuration pour se connecter au serveur que nous avons initié, je reprend comme chez zem.fr la création pour jhd, vous pouvez choisir autre chose ou créer pour d'autres compte sans problème

cd /etc/openvpn/easy-rsa
source vars
./build-key jhd

Nous obtenons ainsi 3 fichiers que nous allons copier dans un repertoire dédié dans le repertoire que nous avons précédemment

mkdir /etc/openvpn/clientconf/jhd/
sudo cp /etc/openvpn/ca.crt /etc/openvpn/ta.key keys/jhd.crt keys/jhd.key /etc/openvpn/clientconf/jhd/
cd /etc/openvpn/clientconf/jhd/

On cree un fichier de configuration qui va permettre aux clients de se connecter pour linux pas besoins de changer de nom de configuration pour windows il faudra renommer le fichier client.conf en client.ovpn

Voici le contenu à mettre dans ce fichier


#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 jhd.crt
key jhd.key
tls-auth ta.key 1
#Securite
nobind
persist-key
persist-tun
comp-lzo
verb 3

Il faut remplacer A.B.C.D par l'adresse de votre serveur VPS

Puis copions le fichier comme cela nous avons une version pour linux et une pour windows

cp client.conf client.ovpn

Il faut maintenant copier ces fichiers sur le poste qui devra se connecter. Pour cela le plus simple est de faire un fichier zip

zip jhd.zip *.*

Maintenant passons côté du poste de travail sudo apt-get install openvpn resolvconf network-manager-openvpn-gnome

A noter que cette fois-ci nous passons la commande sudo devant nos commandes pour avoir les droits suffisants.

sudo mkdir /etc/openvpn/clientconf

On y place les fichiers

unzip jhd.zip

Il suffit ensuite d'aller cliquer en haut à droite sur le bureau puis connexions vpn Dans la fenetre nous choisissons alors importer et pointons le fichier client.conf

Si tout se passe bien, un petit cadenas devrait apparaître il suffit ensuite de se rendre sur un site qui permet d'afficher votre adresse ip et constater que vous êtes vu avec l'adresse IP de votre VPS.

Voili voila, je compléterai maintenant si j'arrive à faire fonctionner mon VPS VPN avec mon routeur WIFI DDRT,

mais je ne suis pas trop sûr que ce soit compatible en raison du chiffrement qui doit être supérieur à ce que peut faire mon LinkSys WRT54GL le chiffrage 1024 étant trop fort pour la puissance du processeur embarqué.