Kimsufi – Montez votre serveur VPN en 10 minutes

18

administrateur reseau Kimsufi   Montez votre serveur VPN en 10 minutes

Il y a quelque temps, OVH a sorti des serveurs dédiés low-cost : Kimsufi. Le succès a été (très) rapide et les offres étant bien inférieur à la demande, les ventes ont été arrêtées durant plusieurs semaines avec de revoir le business plan. Le prix serveur Kimsufi a été revu et des frais d’installation ont débarqué. Aujourd’hui, les premiers prix démarrent à 9,60€/mois avec 12€ de frais d’installation.

Après avoir transformé votre Kimsufi en Seedbox, débrideur de connexion et serveur rSync… Je vous propose aujourd’hui installer OpenVPN.

Qu’est-ce qu’un VPN ?

Un VPN (Virtual Private Network) est un Réseau Privé Virtuel. Il permet de créer une connexion sécurisée entre votre ordinateur ou tout appareil connecté (le client) à un autre ordinateur (le serveur) via Internet et à travers un tunnel. Ce tunnel sécurisé est crypté/chiffré. Il est impossible (sauf NSA, et encore) de savoir quelles informations transitent entre les machines. (note : les pro du réseau m’excuseront de cette vulgarisation).

wallpaper 1793822 Kimsufi   Montez votre serveur VPN en 10 minutes

Pourquoi utiliser un VPN ?

Les raisons sont nombreuses et propres à chacun… mais voici quelques utilisations que vous pourrez en faire :

  • Surfer anonymement, même pour votre Founisseur d’Accès à Internet
  • Sécuriser votre connexion sur un WiFi public
  • Accéder tous les replays disponibles même s’ils sont restreints à un pays (fonction de la localisation du serveur)
  • Contourner la censure d’un gouvernement
  • Contourner les bridages de FAI pour certains sites (ex : YouTube)
  • etc.

Installation de OpenVPN

Convaincu ! Passons maintenant à la partie installation… Vous allez voir, c’est rapide. Si vous avez l’habitude de taper des commandes sous Linux, cela sera réglé en 5 minutes. Tout d’abord, connectez-vous sur votre Kimsufi via ssh.

Note : Pour rappel, mon serveur Kimsufi a été installé avec Debian 6 Squeeze.

Puis installer OpenVPN à l’aide de la commande

apt-get install openvpn
Une fois l’installation terminée, on va se déplacer dans le répertoire d’installation
cd /etc/openvpn/

Ensuite un créé un dossier de travail

mkdir easy-rsa

et on copie l’exemple fourni comme base :

cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* easy-rsa/
On a perdu personne ? On continue…

Configuration OpenVPN Server

Nous allons maintenant passer à la configuration d’OpenVPN et modifier un petit fichier.

vim /etc/openvpn/easy-rsa/vars
et modifier les lignes suivantes (ligne 64) :
export KEY_COUNTRY="FR"
export KEY_PROVINCE="IDF"
export KEY_CITY="Paris"
export KEY_ORG="Old Sch00l"
export KEY_EMAIL="toto@old-sch00l.org"
export KEY_EMAIL=mail@host.domain
export KEY_CN=FX
export KEY_NAME=FX
export KEY_OU=FX
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1337
Je vous laisse remplacer les champs avec vos propres données. Attention à ne pas les laisser de ligne à vide. Hop, passons à la génération des clés et certificats :

cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
openvpn --genkey --secret keys/cachem.key
On patiente… ne vous inquiétez pas, c’est très rapide (remplacez cachem.key par nom que vous souhaitez) . Maintenant, on va copier les clés et certificats à la racine d’OpenVpn
cd /etc/openvpn/easy-rsa/keys
cp ca.crt dh1024.pem server.crt server.key cachem.key ../../
Remplacez cachem.key par votre nom de fichier

Ensuite, on va créer un répertoire dans lequel le processus OpenVPN sera chroot et un autre pour les configurations client :

mkdir /etc/openvpn/jail
mkdir /etc/openvpn/confuser

Enfin on crée le fichier de configuration :

cd /etc/openvpn
vim server.conf

et on copie ceci dedans :

# Server TCP/5678
mode server
proto tcp
port 5678
dev tun
# Certificates and keys
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
tls-auth cachem.key 0
cipher AES-256-CBC
# Network
server 10.10.10.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
# Security
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/openvpn.log

Comme depuis le début, vous pouvez changer le nom cachem.key en restant cohérent avec le reste du tuto.

Maintenant, testons notre configuration :

openvpn server.conf

Regardez si vous avez la ligne suivante : Initialization Sequence Completed

initialization sequence completed Kimsufi   Montez votre serveur VPN en 10 minutes

Appuyez sur ctrl+c pour quitter.

Maintenant, nous pouvons lancer le OpenVPN avec la commande :

/etc/init.d/openvpn start

Vous devriez avoir cette ligne : [ ok ] Starting virtual private network daemon: server.

Maintenant, il faut permettre le routage

vim /etc/sysctl.conf

et on dé-commente (#) la ligne 28 : net.ipv4.ip_forward=1 et on recharge sysctl :

sysctl -p
et on ajoute cette dernière commande pour configurer le NAT(age)
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

Voilà, c’est presque terminé… pour la partie serveur. Il ne nous reste plus qu’à créer un client (machine pouvant se connecter à ce serveur VPN).

Configuration OpenVPN Client

cd /etc/openvpn/easy-rsa
source vars
./build-key-pass cachemac
cachemac est le nom de mon client… Vous pouvez choisir le vôtre icon wink Kimsufi   Montez votre serveur VPN en 10 minutes

build Kimsufi   Montez votre serveur VPN en 10 minutes
On va maintenant créer un répertoire contenant les générés (cachemac.crt, cachemac.csr et cachemac.key)

mkdir /etc/openvpn/confuser/cachemac
et on déplace les 3 fichiers présents dans keys dans le nouveau répertoire juste créer + ca.crt.
cp keys/cachem*.* keys/ca.crt /etc/openvpn/confuser/cachemac
On se déplace dans le répertoire cachemac (ou le nom que vous avez choisi)

cd /etc/openvpn/confuser/cachemac

et maintenant, nous allons créer le fichier de configuration du client.

vim client.conf

Et on y met les paramètres suivants :

# User
client
dev tun
proto tcp-client
remote ip.du.serveur 5678
resolv-retry infinite
cipher AES-256-CBC
# Certificates and keys
ca ca.crt
cert cachemac.crt
key cachemac.key
tls-auth cachem.key 1
# Security
nobind
persist-key
persist-tun
comp-lzo
verb 3
Pensez à changer ip.du.serveur et de mettre l’adresse IP publique de votre Kimsufi, comme cachemac icon wink Kimsufi   Montez votre serveur VPN en 10 minutes

cp client.conf client.ovpn
Le fichier .conf est pour mac et .ovpn pour Windows.

chmod +r cachem*.key
Pour résoudre un petit problème de droit si vous n’utilisez pas le même identifiant en ftp.

Maintenant, il ne vous reste plus (entre guillemet) qu’à récupérer le contenu du répertoire /etc/openvpn/confuser/cachemac sur votre ordinateur.

Quelle application utiliser ?

Que ce soit sur Linux, Mac ou Windows… Je ne peux que vous conseillez d’aller faire un tour à cette adresse. Sur smartphone et tablette, cherchez OpenVPN sur votre market/strore.

Pour les questions, n’hésitez pas à utiliser les commentaires.

Partager.
  • Lars

    Merci FX!!! J’ai vraiment galéré pour installer le mien. Hop, en favori.

  • Toshy62

    Super intéressant mais je crois que les VPN sont interdit sur les Kimsufi de mémoire.

    • http://www.cachem.fr/ Fx

      J’ai un Kimsufi et mon VPN tourne 24h/24

  • Ian Lim

    Good job on the site. If you want to become anonymous online then you need to check this out. http://thebestproxyserver.com/hide-my-ass-vpn-review/

  • Boost

    Bonjour, j’ai un soucis, openVPN (Windows) me dis lors de la tentative de connection « Cannot load certificate file cachemac.crt: error:0906D06C:PEM routines:PEM_read_bio:no start line[…] » J’ai cru comprendre qu’il était donc anormal que le fichier « cachemac.crt » soit de 0 octet.

    Comment est-ce que je peux corriger ce problème ?

    Merci d’avance

    P.S. Super tuto, premier que je vois aussi bien réaliser depuis longtemps !

    • http://www.cachem.fr/ Fx

      Ouh là là… Bien vu

  • Sébastien

    j’ai un kimsuffi et je veux mettre openvpn pour lever le bridage imposer par free en 3G, ça va fonctionner ?

  • gadjou

    Sous ubuntu trusty, il faut installer également easy-rsa

    sudo apt-get install easy-rsa

  • Moulto

    J’ai un problème quand j’essaye de me connecter au VPN il me dit :
    cachem.key « no such file or directory »

    J’ai pourtant suivi la procédure pas à pas .

  • Nicolas

    Pour commencer merci pour ce super tuto! J’ai effectivement pu monter mon server vpn en moins de 10 minutes.
    J’ai cependant un problème avec la résolution des DNS. Si je ping une adresse IP ça fonctionne mais si je ping un domaine, il est introuvable.
    Une idée ?

    • http://www.cachem.fr/ Fx

      Très étrange… As-tu contrôler ton fichier server.conf ?

      • Nicolas

        Trouvé! J’avais modifié la configuration de mes DNS (/etc/resolv.conf) sur mon Mac, pour pouvoir utiliser dnsmasq. J’ai à la place ajouté un « resolver » et tout fonctionne maintenant.

        Aussi entre temps, j’ai découvert https://github.com/kylemanna/docker-openvpn qui m’a permis de créer un VPN encore plus rapidement grâce à docker.

  • Melethainiel

    Nickel pour ma part !
    Fonctionne au poil sur mon iPhone et Mac par contre impossible depuis Windows 8.1…
    Bisous

    • Guicara

      Sur Windows 8/8.1 le message d’erreur suivant apparait : « TEST ROUTES: 0/0 succeeded len=1 ret=0 a=0 u/d=down » suivi de « Route: Waiting for TUN/TAP interface to come up… ».

      Le problème est connu de la communauté.
      Normalement en ajoutant « route-delay » à ton fichier de configuration client (.ovpn), ça devrait fonctionner.

  • Guicara

    Si la connexion VPN s’effectue bien mais que le trafic internet de votre client ne transite pas par votre Kimsufi (aucune connectivité OU « monip.org » retourne l’IP de votre FAI), c’est surement que vos règles iptables sont trop strictes.

    Il faut donc ajouter les règles suivantes :

    /sbin/iptables -I FORWARD -i tun0 -j ACCEPT
    /sbin/iptables -I FORWARD -o tun0 -j ACCEPT
    /sbin/iptables -I OUTPUT -o tun0 -j ACCEPT
    /sbin/iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
    /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    /sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

    Et tout devrait fonctionner !

  • Lynx76x

    Merci du partage ! Fait nous encore apprendre des choses par ton expérience car je débute dans le monde du linux, marre de windows :)

  • fayon

    Ton tuto est superbe je l’utilise actuellement. Internet et tout fonctionne nickel, mon problème est que je n’arrive pas à me connecter sur mon client web transmission avec le port 9091 ou encore en ssh. Que faut-il faire pour remédier à cela? Merci!