Afficher/cacher Sommaire
Liens
- nmcli examples
- Using the NetworkManager Command Line Tool, nmcli
- NetworkManager Dispatcher script to manage SSH tunnel
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
- NetworkManager
- VPN Setup and Auto Connect from Command-line
- Network services with NetworkManager dispatcher
- Start shell script on Network Manager successful connection
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.
- Si vous avez networkmanager installé, il créera les fichiers de configuration pour networkmanager.
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**.
- Pour démarrer le serveur OpenVPN automatiquement au démarrage du système, activez **openvpn-server@
-
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 exemplesudo 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