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).
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
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
où cachemac est le nom de mon client… Vous pouvez choisir le vôtre. 😉
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.