Installer facilement un serveur OpenVPN sur Debian, Ubuntu et CentOS

openvpn_install

Plein de tutoriels sur le web expliquent comment installer OpenVPN sur votre serveur. Mais pourquoi ne pas se faciliter la vie et laisser un script le faire à votre place ? :D

Il y a une petite perle sur GitHub qui permet cela : OpenVPN-install, développé par Nyr. C'est un script qui installe automatiquement un serveur OpenVPN et qui génère la configuration client. Il a quelques fonctionnalités sympathiques comme le choix du port ou des DNS et la détection du NAT.

Seulement, je trouvais qu'il lui manquait quelques fonctionnalités et qu'il était trop faible en chiffrement... Du coup j'ai fait un fork ! C'est à dire que j'ai pris le code de Nyr, et je l'ai modifié à ma sauce. (Les 2 sont sous licence MIT)

Features

Pour faire court, j'ai amélioré les paramètres de chiffrement. Le script original utilise les paramètres par défaut de OpenVPN, et c'est pas vraiment ça...

Il a y a 2 variantes du script que j'appelle "fast" et "slow". Il y en a une qui a un chiffrement renforcé, et qui peut donc amener à avoir un débit plus lent, mais c'est vraiment relatif à votre serveur/client/connexion. :)

Ce que j'ai mis plus haut concernant TLS, HMAC, etc est inclus dans les 2 variantes.

Slow (chiffrement hardcore)

  • Certificat signé avec une clé privée RSA de 4096 bits (2048 par défaut)
  • Clé Diffie-Hellman de 4096 bits (2048 par défaut)
  • AES-GCM 256 bits pour le tunnel chiffré (Blowfish 128 bits par défaut)
  • Certificat signé avec SHA-384 (SHA1 par défaut)

Fast (moins hardcore)

Note : c'est moins hardcore mais ça reste tout à fait sécurisé.

  • Certificat signé avec une clé privée RSA de 2048 bits (défaut)
  • Clé Diffie-Hellman de 2048 bits (défaut)
  • AES-GCM 128 bits pour le tunnel chiffré (Blowfish 128 bits par défaut)
  • Certificat signé avec SHA-256 (SHA1 par défaut)
 

Si vous êtes parano ou que vous utilisez votre VPN dans un endroit susceptible de surveiller la connexion, je vous conseille "slow", bien que le chiffrement utilisé dans "fast" est théoriquement incassable également.

Voici ce que je compte rajouter quand j'aurais le temps :

  • Possibilité de choisir si on veut un mot de passe pour le client
  • Possibilité d'installer "fast" et "slow" sur le même serveur
  • Compatibilité IPv6

Compatibilité

Le script est 100% compatible avec les distributions suivantes :

  • Debian 7
  • Debian 8
  • Ubuntu 12.04 LTS
  • Ubuntu 14.04 LTS
  • Ubuntu 15.10
  • Ubuntu 16.04
  • CentOS 6
  • CentOS 7

Installation

Vous devez activer le module TUN pour que OpenVPN fonctionne. Demandez à votre hébergeur si vous ne savez pas comment faire. Si TUN n'est pas activé, le script vous le signalera.

Il suffit de télécharger le script et de l'exécuter :

wget https://raw.githubusercontent.com/Angristan/OpenVPN-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh

Lors de la première exécution, il va installer le serveur et générer un client. Vous pouvez le relancer autant de fois que vous le voulez avec la commande suivante :

./openvpn-install.sh

Vous pourrez alors ajouter des clients, supprimer des clients ou encore désinstaller complètement OpenVPN.

Alors, heureux ?

Simple comme bonjour !

Vous pouvez voir tous les changements de mon fork par rapport au script original ici.

N'hésitez pas à me faire parvenir vos retours, suggestions, ou éventuellement rapports de bug ! :)

L'article Installer facilement un serveur OpenVPN sur Debian, Ubuntu et CentOS a été publié sur Angristan

Vus : 1227
Publié par Angristan : 57