Faire un VPN avec un serveur VPS à 2,39 euros/mois de chez OVH
By Fran6t on mardi, 22 avril 2014, 11:57 - Ubuntu - Permalink
*****************************************************************************************************************
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 :
- Le blog NICOLARGO et son billet Installation d’un serveur OpenVPN sous Debian/Ubuntu
- Le site zem.fr et la page Installer un serveur VPN sur Ubuntu (Serveur Kimsufi)
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 updateapt-get upgrade
Maintenant que le serveur est à jour nous pouvons commencer, premierement il faut installer les logiciels necessaires.
apt-get install openvpnmkdir /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/varsexport 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/jailmkdir /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/443mode 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/openvpnopenvpn 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 startMaintenant 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.confVoici la ligne qui doit être présente dans ce fichier
net.ipv4.ip_forward = 1Maintenant 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.rulesMaintenant, 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-rsasource 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.ovpnIl 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/clientconfOn y place les fichiers
unzip jhd.zipIl 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é.
Commentaires
Merci beaucoup, je l'ai adapté et ca fonctionne super.
Bravo pour ce travail !!! ^^
Bonjour, tout d'abord merci grâce a ce tuto j'ai bien réussi a configurer un VPN sur mon VPS. J'arrive bien a m'y connecter avec OpenVPN mais le seul soucis je n'ai pas d'accès à internet ! Est ce que quelqu'un sais pourquoi ?
C'est a cause de la resolution DNS surement, il te faut mettre un serveur public comme celui de google le 8.8.8.8
Merci,
par contre à la connection sur un client , ya un Warning dans le log:
"WARNING: No server certificate verification method has been enabled.See http://openvpn.net/howto.html#mitm for more info."
Si on rajoute dans le fichier conf client:
ns-cert-type server
plus de warning dans le log client.
Mais est ce necessaire vu qu'on a crée les clés/certificats du serveur avec
Pkitool et non build-key-server?
En rajoutant la ligne , plus de Warning et la connection est niquel.
Après est ce que ca joue sur autre chose cette ligne et il faudrait pas la mettre?
Autre chose , j'ai du virer def1 dans le push gateway, sinon leak faille webrtc
de l'ip original en testant sur ipleak par ex.
et en bonus , j'ai rajouté l'option côté serveur de vérifier le fichier crl-pem :
crl-verify crl.pem
Si jamais on révoque le certificat d'un client , le serveur vérifie
ce fichier à chaque connection de clients pour les autoriser ou non.
A voir du côté du howto openvpn.
Merci OpenVpn, dès que j'ai une minute je creuse cela c'est grave si tu me dis que l'on voit notre adresse il faut vraiment que je retrouve le temps de faire des essais.
Malheureusement je me suis fais avoir dans le renouvellement j'ai perdu mon VPS faut que je m'en recommande un et du coup que je remonte tout.
Je vais mettre une alerte pour signaler ton commentaire.
On voit l'adresse ip originale sous firefox /chrome par ex sous windows
( pas linux/macOs je crois non plus pas)
après c'est seulement en surfant si kkun met le script dans son code html
pour récuperer la vraie ip ...
Sous firefox on peut désactiver le webrtc , sous chrome je ne sais pas.
ie pas testé.
En laissant 'def1' dans la config , il rajoute les routes mais en laissant
celle d'origine 0.0.0.0 , donc le script qui teste dans le navigateur l'ip
va l'utiliser aussi cette route ,pour remonter l'ip et manque de bol , c'est notre vraie ip
En virant 'def1' , il remplace la route 0.0.0.0 originale donc plus de soucis.
Après ya pêtre mieux à faire côté config serveur, j'ai pas poussé plus loin.
Pour le Warning dans le log au lancement du vpn, il faut bien ajouter côté client( comme on a utilisé ./pkitool --server server )
ns-cert-type server
pour éviter les attaques de type MITM.Voir howto.
Sinon ca fonctionne d'enfer , merci pour ton tuto.
Avec la généralisation des systèmes de surveillance mis en place pour les lois de type Hadopi&Co, les offres de VPN payantes ont tendances à fleurir en ce moment sur le marché.
Nous allons dans ce billet voir comment installer et configurer son propre serveur VPN sous Ubuntu basée sur OpenVPN, une solution libre et compatible avec des clients multi-OS.
+1 pour l'avis de Girard ! Y a pas à dire, ça craint quand même toutes ces lois d'espionnage en FR, du coup, de plus en plus de personnes en prennent conscience et s'équipe de vpn pour surfer. C'est logique en même temps...
En tout cas, merci pour ce tuto hyper complet ! A noter que ça serait encore plus pertinent de le réaliser avec un serveur à l'étranger, sans loi de rétention
I think this is among the most significant info for me. And i am happy studying your article.
But want to commentary on some basic issues, The website style is ideal, the
articles is truly great : D. Good process, cheers
Fine way of telling, and fastidious article to obtain information regarding my presentation focus, which i am going to convey in academy.
Hi to every single one, it's actually a good for me to go
to see this website, it consists of precious Information.
Merci pour ce contenu de qualité | Je suis impatient de voir votre prochain post.
البته این نکته رو نباید فراموش کنیم که هودی مردانه خیلی هم در فصل سرما به گرم شدن شخص کمک میکنن و
جز لباس های گرم به حساب میان به خصوص اینکه با توجه
به کلاهی هم که هودی ها دارن کاملا مناسب و آماده این
فصول به نظر میرسن.
بنابراین خرید سوییشرت و هودی دخترانه یک خرید ترندی خواهد
بود.
I got this webb page feom my friend who informed me concerning this
web page and at the moment this time I am browsing this website and reading very informative articles at this
time.
طراحی هودی به گونه ای است که می توان آن را با هر سبک پوشش و استایلی ست و هماهنگ کرد.
یکی از دلایل مهمی که لباس هودی پسرانه تا این حد مورد محبوبیت قرار گرفته کیفیت جنس و تنوع طرح در آن
است.
این هودی ریک و مورتی برند برشکا طرح
و رنگ دگیری نیز دارد که میتوانید پیش از خرید آن را هم ببینید.