Mercredi 12 juillet 2017

Liens

ProtonVPN

ProtonVPN SECURE INTERNET ANYWHERE
ProtonVPN utilise OpenVPN comme base
ProtonVPN peut s’utiliser sur toutes les plateformes avec le client officiel OpenVPN
Configuration

  • AES-256-CBC pour la data channel
  • ECDHE-RSA-AES256-GCM-SHA384 pour la control channel
  • RSA 2048 bits
  • tls-auth
  • SHA-512 pour l’authentification HMAC
  • TLS 1.2

Il faut ouvrir un compte ProtonVPN et régler un abonnement à l’année pour disposer des éléments de paramétrage OpenVPN

On va utiliser une connexion Secure Core VPN

Qu'est-ce que Secure Core VPN?
ProtonVPN dispose d’un mode Secure Core pour améliorer la confidentialité des utilisateurs et la sécurité des données en atténuant certains des risques d’un serveur VPN compromis.
Une méthode commune pour exposer le trafic VPN consiste à compromettre le serveur qui gère votre trafic. Ce risque est particulièrement grave lorsque le serveur est situé dans une juridiction à haut risque. Pour atténuer ce risque, ProtonVPN emploie une technique appelée Secure Core. Cet article fournit une vue d’ensemble des attaques que Secure Core atténue, de la manière dont il atteint une plus grande confidentialité VPN, ainsi que des instructions sur l’activation de Secure Core dans ProtonVPN.

A. À quoi protège Secure Core?
L’architecture Secure Core unique de ProtonVPN nous permet de nous défendre contre les attaques réseau auxquelles les autres VPN ne peuvent se défendre. Une configuration VPN classique implique un client qui transmet le trafic via un serveur VPN en route vers la destination finale. Cela signifie qu’un attaquant qui a le contrôle du serveur VPN ou la capacité de surveiller le réseau du serveur VPN sera capable de faire correspondre les clients VPN avec leur destination, annulant les avantages de la vie privée du VPN.
De telles attaques de synchronisation / corrélation ne sont pas difficiles à accomplir. Dans les pays ayant des règlements Internet restrictifs (Chine, Russie, Iran, Turquie, etc.), ou des pays dotés de larges pouvoirs de surveillance (États-Unis, Royaume-Uni, etc.), les agences de surveillance de l’Etat ont généralement le pouvoir de contraindre soit le fournisseur VPN, Fournisseur de serveurs du fournisseur VPN, pour aider à la surveillance du réseau. Par conséquent, même si ProtonVPN est basé en Suisse, nous ne pouvons pas savoir avec certitude que nos serveurs VPN dans d’autres pays tels que les États-Unis ou le Royaume-Uni ne sont pas surveillés et que la confidentialité des utilisateurs est compromise.

B. Comment Secure Core augmente-t-il la confidentialité VPN?
Secure Core nous permet de nous défendre contre cette menace pour la confidentialité VPN en transmettant le trafic utilisateur via plusieurs serveurs. Lorsque vous vous connectez à un serveur dans une juridiction à risque élevé comme les États-Unis, votre trafic passera d’abord par nos serveurs Secure Core. Par conséquent, même si notre serveur VPN américain est surveillé, un attaquant ne pourra suivre le trafic qu’au bord de notre réseau Secure Core, rendant ainsi beaucoup plus difficile la découverte de la véritable adresse IP et de l’emplacement des utilisateurs ProtonVPN.

Nous avons également pris des mesures extraordinaires pour défendre nos serveurs Secure Core. Tout d’abord, les serveurs sont situés dans des pays spécifiquement sélectionnés avec des lois de confidentialité très fortes (Islande, Suisse et Suède). Les serveurs Secure Core sont également situés dans des datacenters de haute sécurité pour assurer une sécurité physique forte. L’infrastructure ProtonVPN en Suisse et en Suède est située dans les centres de données souterrains, tandis que nos serveurs islandais sont situés dans une ancienne base militaire. En outre, les serveurs Secure Core sont entièrement détenus par nous et sont également fournis par nous (expédiés sur place directement depuis nos bureaux). Enfin, les serveurs Secure Core sont connectés à Internet en utilisant notre propre réseau dédié avec des adresses IP qui sont détenues et exploitées par notre propre registre Local Internet (LIR).

Ces mesures nous offrent un niveau de certitude beaucoup plus élevé que nos serveurs et notre réseau Secure Core ne sont pas manipulés. Bien qu’il n’y ait pas de sécurité à 100%, Secure Core est l’une des nombreuses façons dont ProtonVPN offre une meilleure sécurité et confidentialité VPN en protégeant contre les attaques complexes auxquelles les autres VPN ne peuvent se défendre.

ProtonVPN auto connexion

Pour utiliser le dispatcher, il faut créer des scripts dans le répertoire /etc/NetworkManager/dispatcher.d, le fichier peut avoir un préfixe pour donner un ordre de lancement, exemple: 10-netfs, 20-ntpd
Le script en lui même prend 2 arguments, l’un pour le nom de l’interface, l’autre pour le statut, voici un exemple:

#!/bin/sh
INTERFACE=$1 # Le nom de l'interface
STATUS=$2 # Le statut

case "$STATUS" in
    'up') exec systemctl start [service];;
    'down') exec systemctl stop [service];;
esac

Afin que les scripts s’exécutent, il est nécessaire d’activer le dispatcher :
systemctl enable NetworkManager-dispatcher

Connexion automatique au VPN quand le réseau est établi ou la wifi sur les portables.
Pour se garder la possibilité de se connecter sur le réseau sans VPN (ordinateur de bureau) , création d’une seconde connexion réseau filaire nommée Free.fr
Créer la connexion VPN en mode graphique Connexions VPN –> Configure VPN
Modification du fichier de connexion vpn /etc/NetworkManager/system-connections/se-fr-protonvpn ,password-flags passe à 0 et ajout configuration vpn-secrets

[vpn]
 ....
password-flags=0
 
[vpn-secrets]
password=your_password

Sur un ordinateur de bureau à liaison filaire (ethernet),on va créer un fichier /etc/NetworkManager/dispatcher.d/10-openvpn en mode root qui va activer ou désactiver la configuration VPN
Si la connexion Free.fr est active, on lance le VPN

#!/bin/bash
VPN_NAME="se-fr-protonvpn"

case "$2" in
  up)
    if [ "$CONNECTION_ID" == "Free.fr" ]; then
      nmcli con up id "$VPN_NAME" 
    fi
  ;;
  down)
      if nmcli con show --active | grep "$VPN_NAME"; then
        nmcli con down id "$VPN_NAME"
      fi
  ;;
esac

Changer les droits
sudo chown root:root /etc/NetworkManager/dispatcher.d/10-openvpn
sudo chmod 755 /etc/NetworkManager/dispatcher.d/10-openvpn
Afin que les scripts s’exécutent, il est nécessaire d’activer le dispatcher
sudo systemctl enable NetworkManager-dispatcher
Démarrer le service
sudo systemctl start NetworkManager-dispatcher.service

Sur un ordinateur portable Wifi, on veut se connecter automatiquement au VPN quelque soit le réseau Wifi utilisé.
On va créer un fichier /etc/NetworkManager/dispatcher.d/10-wifivpn en mode root qui va activer ou désactiver la configuration VPN
iwgetid nécessite l’installation du paquet wireless_tools
yaourt -S wireless_tools

#!/bin/sh
VPN_NAME="se-fr-protonvpn"
ESSID=$(iwgetid -r)

interface=$1 status=$2
case $status in
  up|vpn-down)
    if iwgetid | grep -qs ":\"$ESSID\""; then
      nmcli con up id "$VPN_NAME"
    fi
    ;;
  down)
    if iwgetid | grep -qs ":\"$ESSID\""; then
      if nmcli con show --active | grep "$VPN_NAME"; then
        nmcli con down id "$VPN_NAME"
      fi
    fi
    ;;
esac

Changer les droits
sudo chown root:root /etc/NetworkManager/dispatcher.d/10-wifivpn
sudo chmod 755 /etc/NetworkManager/dispatcher.d/10-wifivpn
Afin que les scripts s’exécutent, il est nécessaire d’activer le dispatcher
sudo systemctl enable NetworkManager-dispatcher
Démarrer le service
sudo systemctl start NetworkManager-dispatcher.service

Liens

VPN Private Internet Access

Private Internet Access™ Service VPN chiffre votre connexion et vous donne une IP anonyme pour protéger votre vie privée.
Le tutoriel est une traduction partielle du wiki https://wiki.archlinux.org/index.php/Private_Internet_Access_VPN

Exigences

PIA prend en charge presque tous les systèmes d’exploitation et la solution que n’importe quel utilisateur aurait besoin.
Ce guide configure automatiquement les configurations pour PIA qui fonctionne pour la plupart des utilisateurs d’Arch Linux.
Remarque: Les utilisateurs d’Arch Linux peuvent configurer PIA manuellement en lisant les informations sur la page Support client PIA.

Assurez-vous d’avoir installé openvpn et, si vous utilisez networkmanager, installez networkmanager-openvpn.

Installation

Archlinux/Manjaro

Avec le paquet

Installez le package private-internet-access-vpn AUR ou private-internet-access-vpn-dev AUR.

yaourt -S private-internet-access-vpn

Le package fournit un outil qui télécharge les OPENVPN CONFIGURATION FILES (DEFAULT) et les stocke dans /etc/openvpn.
Toutefois, il met à jour les noms de fichier pour mieux les utiliser sur la ligne de commande.

La configuration du paquet est stockée dans /etc/private-internet-access

Manuellement

Authentification forte (clé 4096)

wget https://www.privateinternetaccess.com/openvpn/openvpn-strong.zip
unzip
sudo cp crl.rsa.4096.pem /etc/openvpn/client/
sudo cp ca.rsa.4096.crt /etc/openvpn/client/
sudo -s
nano /etc/openvpn/client/login.conf
chown :network /etc/openvpn/client/*
chmod 600 /etc/openvpn/client/*
systemctl restart NetworkManager

Linux/Debian

Méthode 1

sudo apt-get install openvpn
cd /etc/openvpn/client
sudo wget https://www.privateinternetaccess.com/openvpn/openvpn.zip
sudo unzip openvpn.zip
# ouvrir une session vpn en mode terminal
sudo openvpn 'config-filename-goes-here.ovpn'

Méthode 2

Téléchargement ,https://www.privateinternetaccess.com/installer/download_installer_linux
Une fois le téléchargement terminé, utilisez les étapes suivantes pour installer l’application.
Du terminal et dans le répertoire du téléchargement :
1) Extraire le fichier:

tar -xzf pia-v68-installer-linux.tar.gz

2) Droits en exécution:

chmod +x pia-v68-installer-linux.sh

3) Exécuter le programme d’installation:

./pia-v68-installer-linux.sh

Une fois que le logiciel a été installé avec succès, vous devriez voir une icône client dans votre plateau système (systray) près de l’horloge. L’icône apparaîtra comme une petite icône de robot rouge si elle est déconnectée. Et vert vif si connecté.

Après l’installation

S’il ya des problèmes avec la connectivité et que vous exécutez connman, veuillez relancer connman-vpn.service.

Usage

Remarque: A partir de openvpn version 2.4.0, les configurations VPN ont été placées dans des sous-dossiers. Voir: La mise à jour OpenVPN 2.4.0 requiert une interaction administrative

Activer l’ouverture de session automatique

L’activation de l’ouverture de session automatique permet à un utilisateur de se connecter au service VPN sans avoir à saisir de mots de passe sur la ligne de commande (nécessaire lorsque vous utilisez networkmanager).
Pour ce faire, vous devez effectuer les opérations suivantes:

  • Créer /etc/private-internet-access/login.conf
  • Ajoutez votre nom d’utilisateur et votre mot de passe dans le fichier. Assurez-vous que LIGNE 1 est votre nom d’utilisateur et LIGNE 2 votre mot de passe. N’ajoutez aucun autre texte au fichier ou il ne fonctionnera pas (c’est une limitation d’OpenVPN):
sudo nano /etc/private-internet-access/login.conf

NOM D'UTILISATEUR
MOT DE PASSE

Modifier les autorisations du fichier à 0600 et propriétaire à root:root

sudo chmod 0600 /etc/private-internet-access/login.conf
sudo chown root:root /etc/private-internet-access/login.conf

Cela sécurise l’accès au fichier à partir d’utilisateurs non root. Pour en savoir plus sur les autorisations et les attributs des fichiers. C’est obligatoire pour activer la connexion automatique.

  • Exécutez en tant que root.
    pia -a
    • Si vous avez networkmanager installé, il créera les fichiers de configuration pour networkmanager.
      Assurez-vous de redémarrer networkmanager pour les voir:
      sudo systemctl restart NetworkManager.
    • Si vous avez connman installé, il créera les fichiers de configuration pour connman. Démarrez connman-vpn.service s’il n’est pas déjà en cours d’exécution. Il charge automatiquement les profils.
    • il créera les fichiers .conf OpenVPN dans /etc/openvpn/client.

Astuce: Désactivez l’auto-login dans les configurations en ajoutant openvpn_auto_login = False à /etc/private-internet-access/pia.conf et en exécutant:
pia -a

Connexion manuelle au serveur VPN

Exécutez openvpn –config /etc/openvpn/client/{config_file_name} en tant que root. {config_file_name} sera répertorié dans le répertoire /etc/openvpn/client ou exécuter pia -l.

Connexion automatique au serveur VPN

  • Pour connman:

    1 Activer le connman-vpn.service.
    2 Exécutez pia -a en tant que racine.

Remarque: Il s’agit de configurations non prises en charge.

  • Pour openvpn, vous pouvez consulter ici: OpenVPN # systemd service configuration.

    • Pour démarrer le serveur OpenVPN automatiquement au démarrage du système, activez **openvpn-server@.service** sur la machine concernée.
    • Pour un client, activez **openvpn-client@.service**. (Laissez *.conf* hors de la chaîne **configuration**.) Par exemple: si le fichier de configuration du client est **/etc/openvpn/client/Netherlands.conf**, le nom du service est **openvpn-client@Netherlands.service**. si le fichier de configuration du serveur est **/etc/openvpn/server/server.conf**, le nom du service est **openvpn-server@server.service**.
  • Avec NetworkManagerl’ouverture de session, créer une nouvelle connexion Ethernet Filaire nommée par exemple “VPN East”.
    On va créer un fichier /etc/NetworkManager/dispatcher.d/11-openvpn en mode root qui va activer ou désactiver la configuration VPN /etc/openvpn/client/US_East.conf dans notre exemple

      sudo nano /etc/NetworkManager/dispatcher.d/11-openvpn
    
#!/bin/bash

   case "$2" in
   up)
       if [ "$CONNECTION_ID" == "VPN East" ]; then
           systemctl start openvpn-client@US_East.service
       fi
   ;;
   down)
       systemctl stop openvpn-client@US_East.service
   ;;
esac

Droits en exécution pour root uniquement

sudo chmod +x /etc/NetworkManager/dispatcher.d/11-openvpn
sudo chmod 700 /etc/NetworkManager/dispatcher.d/11-openvpn

Options avancées

Attention: Les protocoles et les combinaisons de ports ne fonctionnent plus à partir de la version 3.1. Voir Github Issue # 17 ou Support PIA - Quels paramètres de chiffrement / auth dois-je utiliser pour les ports de vos passerelles?

  • Créer /etc/private-internet-access/pia.conf
  • Pour la section [pia]:
option option values description
openvpn_auto_login True,False Default: True; Configures if OpenVPN configuration files should have auto-login enabled. See #Enabling auto-login
  • Pour la section [configure]:
option option values description
Apps cm, nm Valeur par défaut: all; Cela configure les applications qui sont configurées. L’application configurera toutes les applications installées; Cependant, si un utilisateur ne nécessitait que des configurations pour Conman, alors le réglage de ce paramètre à ‘cm’ ne générerait que ces configurations même si elles avaient NetworkManager installé. Les configurations OpenVPN sont toujours générées. Cm = Conman; Nm = NetworkManager
Port Voir la liste: Support PIA -Quels paramètres de chiffrement / auth dois-je utiliser pour les ports de vos passerelles? Valeur par défaut: 1198

Exemple de configuration

La configuration permet la connexion automatique, configure uniquement Connman et OpenVPN, utilise le port 8080 sur UDP et configure uniquement les points d’extrémité VPN de l’Est, de l’Ouest américain, du Japon, du Royaume-Uni de Londres et du Royaume-Uni.
OpenVPN est toujours configuré.

/etc/private-internet-access-vpn/pia.conf


[pia]
openvpn_auto_login = True

[configure]
apps = cm
port = 8080
hosts = US East, US West, Japan, UK London, UK Southampton

Dépannage

Pour utiliser l’applet NetworkManager:

  • Cliquez avec le bouton droit sur l’icône Network Manager dans la barre d’état système
  • et cliquez sur “Configurer les connexions réseau …”
  • puis cliquez sur “Ajouter”
  • choisissez “Importer VPN …”
  • accédez à “/etc/openvpn/client/CA_Toronto.conf” ou à la configuration que vous souhaitez utiliser
  • puis cliquez sur “Ouvrir”
  • Supprimer uniquement le “: 1198” de la “Passerelle:” (si présent) car seul le nom de domaine doit être dans cette case
  • pour le nom d’utilisateur: tapez votre p1234567 nom d’utilisateur
  • pour le mot de passe: tapez le mot de passe correspondant à votre p-xxxxx nom d’utilisateur
  • puis cliquez sur “Avancé …”
  • définir “Port de passerelle personnalisé” and set it to “1198”
  • click on the “Security” tab
  • set the “Cipher:” à “AES-128-CBC”
  • set the “HMAC Authentication:” à “SHA-1”
  • click “OK”
  • click “OK” de nouveau

En ce qui concerne les fuites DNS (voir: python-pia / # 13), les informations de fuite du gestionnaire de réseau en raison de la configuration de /etc/resolv.conf. Le script ci-dessous est un travail autour posté par @maximbaz pour contourner le problème. Vous devrez peut-être désactiver IPv6 si vous continuez à obtenir des fuites.

/etc/NetworkManager/dispatcher.d/98-pia-vpn


#!/bin/bash
#/etc/NetworkManager/dispatcher.d/pia-vpn

interface="$1"
status=$2

case $status in
  vpn-up)
    if [[ $interface == "tun0" ]]; then
      chmod +w /etc/resolv.conf
      echo -e "nameserver 209.222.18.222\nnameserver 209.222.18.218" > /etc/resolv.conf
      chmod -w /etc/resolv.conf
    fi
    ;;
  vpn-down)
    if [[ $interface == "tun0" ]]; then
      chmod +w /etc/resolv.conf
    fi
    ;;
esac