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.

[edit du 28/12/2016]Ce tuto initialement pour Debian 6 a été modifié pour Debian 8

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 pros du réseau m’excuseront de cette vulgarisation).

VPN - 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.

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/easy-rsa/* easy-rsa/

On a perdu personne ? On continue…

chown -R $USER /etc/openvpn/easy-rsa/

 

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_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 dh2048.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 dh2048.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

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

 

Pour que le routage soit persistant, on installe ce package

apt-get install iptables-persistent

Validez 2 fois… et vous tapez cette commande :

iptables-save > /etc/iptables.rules

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. 😉

build
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 😉

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 conseiller 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.

Zeen is a next generation WordPress theme. It’s powerful, beautifully designed and comes with everything you need to engage your visitors and increase conversions.