ProtonVPNProtonVPN est un fournisseur de VPN (Virtual Private Network ou « réseau privé virtuel ») exploité par la société suisse ProtonVPN AG, une filiale de Proton Technologies AG, la société à l’origine du service de messagerie ProtonMail. Sans rentrer dans les détails de la législation suisse, ProtonMail et ProtonVPN intéresseront particulièrement tous ceux pour qui la confidentialité ce n’est pas simplement un truc de vieux con. Sans compter les activistes, journalistes et autres lanceurs d’alerte pour qui ça craint carrément de laisser des traces lorsqu’ils se connectent à Internet et qu’Internet se connecte à eux en retour. Bref.

Voici donc un petit article qui explique rapidement comment installer, configurer et utiliser ProtonVPN sous Linux. J’ai installé ça sur mon vieux MacBook Pro tournant sous OpenSUSE Linux 15.1, et ça fonctionne plutôt bien.

Mise à jour 12 octobre 2019 : Cet article décrit l’installation de la version gratuite de ProtonVPN. La mise à jour vers la formule payante Basic (que je vous recommande fortement) fait l’objet d’un article à part.

Choix de la formule

Après avoir ouvert un compte sur le site de ProtonVPN, je me suis retrouvé confronté à une panoplie de quatre formules. Pour commencer, j’ai opté pour la formule gratuite.

    ProtonVPN

    Notez qu’avec la formule gratuite, le nombre d’installations du client ProtonVPN n’est pas limité, c’est-à-dire qu’on peut l’installer sur autant de postes clients que l’on veut. En revanche, on peut seulement en connecter un seul à la fois.

    Dans le menu de navigation à gauche, notez le lien Account et gardez-le dans un coin de votre tête. Nous y reviendrons un peu plus loin.

    Prérequis logiciels

    Dans sa documentation en ligne, ProtonVPN dresse la liste des prérequis logiciels pour faire fonctionner le client de connexion, notamment les paquets suivants.

    • openvpn
    • dialog
    • python
    • wget

    Ces paquets sont tous déjà compris dans la configuration par défaut d’OpenSUSE Leap 15.1.

    # rpm -q openvpn dialog python wget
    openvpn-2.4.3-lp151.4.3.x86_64
    dialog-1.3-lp151.3.3.x86_64
    python-2.7.14-lp151.10.3.1.x86_64
    wget-1.19.5-lp151.4.1.x86_64
    

    Téléchargement

    Je crée un répertoire protonvpn qui accueillera mon script d’installation.

    # mkdir protonvpn
    # cd protonvpn/
    

    Je télécharge le script.

    # wget -O protonvpn-cli.sh \
      https://raw.githubusercontent.com/ProtonVPN/protonvpn-cli/master/protonvpn-cli.sh
    

    Installation

    Je rends le script exécutable et je lance l’installation.

    # chmod +x protonvpn-cli.sh
    # ./protonvpn-cli.sh --install
    

    Le script d’installation tente de rectifier le tir dans ma configuration locale en récupérant un script /etc/openvpn/update-resolv-conf. Je le laisse faire.

    [!] Error: update-resolv-conf is not installed.
    Would you like protonvpn-cli to install update-resolv-conf? (y/N): y
    [*] Installing update-resolv-conf...
    ...
    Connexion à raw.githubusercontent.com (raw.githubusercontent.com)
    |151.101.128.133|:443… connecté.
    requête HTTP transmise, en attente de la réponse… 200 OK
    Taille : 2152 (2,1K) [text/plain]
    Sauvegarde en : « /etc/openvpn/update-resolv-conf »
    /etc/openvpn/update-resol 100%[=============================>] 2,10K --.-KB/s ds 0s
    2019-10-10 18:09:12 (12,7 MB/s) — « /etc/openvpn/update-resolv-conf » sauvegardé
    [*] Done.
    

    Au bout de l’installation, on se retrouve avec un client /usr/bin/protonvpn-cli sous forme de lien symbolique qui pointe vers /usr/local/bin/protonvpn-cli.

    # type -a protonvpn-cli
    protonvpn-cli est /usr/local/bin/protonvpn-cli
    protonvpn-cli est /usr/bin/protonvpn-cli
    

    On peut éventuellement faire un peu de ménage et supprimer le script d’installation, qui ne sert plus à rien.

    # cd ..
    # rm -rf protonvpn
    

    Configuration

    À présent, il faut se rendre sur la page Account pour avoir l’identifiant de connexion VPN et le mot de passe correspondant sous la main.

    ProtonVPN

    J’initialise le profil ProtonVPN sur ma machine.

    # protonvpn-cli --init
    

    Je fournis mon nom d’utilisateur et mon mot de passe, en me servant des liens presse-papier correspondants sur la page Account.

    Enter OpenVPN username: lKgP4o7Yat4h0ng4g3MpRed
    Enter OpenVPN password: *************************
    

    Je sélectionne la formule Free.

    [.] ProtonVPN Plans:
    1) Free
    2) Basic
    3) Plus
    4) Visionary
    Enter Your ProtonVPN plan ID: 1
    

    Non, je ne souhaite pas utiliser de serveur DNS personnalisé.

    [.] Would you like to use a custom DNS server? 
    (Warning: This would make your VPN connection vulnerable to DNS leaks. 
    Only use it when you know what you're doing) [y/N]: N
    

    Oui, je souhaite réduire les privilèges OpenVPN.

    [.] [Security] Decrease OpenVPN privileges? [Y/n]: Y
    [*] Done.
    

    Connexion

    À partir de là, je peux utiliser le client protonvpn-cli pour me connecter.

    # protonvpn-cli --connect
    

    J’ai le choix entre une panoplie de serveurs au Japon, aux Pays-Bas et aux États-Unis.

    ProtonVPN

    Dans la fenêtre subséquente, je choisis le protocole réseau UDP ou TCP.

    ProtonVPN

    Si tout s’est bien passé, ma console m’affiche un message qui ressemble à ceci.

    Connecting...
    [$] Connected!
    [#] New IP: 103.125.234.201
    

    Les fonctionnalités utiles au quotidien

    Le client protonvpn-cli comporte une multitude d’options.

    # protonvpn-cli --help

    ProtonVPN

    On ne va faire le tour complet de toutes les possibilités. Voici quelques options pratiques que l’on utilisera au quotidien.

    Déconnecter la machine de ProtonVPN :

    # protonvpn-cli --disconnect
    Disconnecting...
    [#] Disconnected.
    [#] Current IP: 78.197.22.147
    

    Connecter la machine en utilisant automatiquement le serveur le plus rapide :

    # protonvpn-cli -f
    Fetching ProtonVPN servers...
    Connecting...
    [$] Connected!
    [#] New IP: 217.23.3.171
    

    Afficher l’adresse IP lorsqu’on est connecté :

    # protonvpn-cli --ip
    217.23.3.171
    

    Mettre à jour le client :

    # protonvpn-cli --update
    [#] Checking for update...
    [*] protonvpn-cli is up-to-date!
    

    Conclusion

    J’ai testé la connexion avec la panoplie de serveurs fournis par défaut. Je me suis connecté à une série de pages web « intelligentes » qui m’ont toutes successivement géolocalisé aux Pays-Bas, aux États-Unis et au Japon.

    YTS

    Un gentil bonjour de la garrigue gardoise. :o)


    La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

     


    3 commentaires

    karl · 1 décembre 2019 à 16 h 24 min

    Bonjour monsieur kovack,

    Karl de la Belgique,

    Utilisateur d’Opensuse Leap 15.1 et des services de qualité Proton, je tiens d’abord à vous remerciez pour vos articles de qualité, je viens de suivre la procédure et tout c’est bien passée, sauf que je penses que Proton a fait une mise à jour depuis votre article car à la fin j’obtiens ce message dans le terminal.

    linux-6ak1:/home/karl # protonvpn-cli -f
    [!] Deprecation warning [!]

    This Version of ProtonVPN-CLI has been deprecated and is no longer maintained by the ProtonVPN Team.
    It is superseded by Version 2. Due to the new version being written in Python, you can’t
    update it with the –update option. The new version needs to be installed manually.
    For installation instructions, please visit the project page at
    https://github.com/ProtonVPN/protonvpn-cli-ng
    [!] Error: OpenVPN is already running on this machine.

    Il y aurait une nouvelle procédure suite au passage à la v.2.

    D’avance en vous remerciant.

    Un bonjour du Nord au Sud.

    Cordialement

    KARL

      kikinovak · 1 décembre 2019 à 20 h 50 min

      Merci pour le tuyau. J’ai noté ça dans mon agenda, et je regarde ça dès que j’ai un petit moment.

    karl · 2 décembre 2019 à 14 h 42 min

    Avec plaisir, et d’avance merci, c’est bien gentil de votre part de vouloir y jeter un œil dès que vous aurez un peu de temps 🙂

    KARL

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.