*****************************************************************************************************************
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
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é.