web-dev-qa-db-fra.com

Existe-t-il un moyen de randomiser mes serveurs OpenVPN sélectionnés?

J'ai un compte ProtonVPN et je me connecte aux serveurs VPN à tout moment pour la confidentialité sur Internet. Malheureusement, ProtonVPN n'offre pas de client basé sur Linux à ce stade, ils conseillent donc de se connecter à leurs serveurs via OpenVPN.

J'ai installé les packages openvpnnetwork-manager-openvpn et network-manager-openvpn-gnome au guide officiel pour charger leurs fichiers de configuration .ovpn.

La connexion fonctionne bien, mais chaque fois que je me connecte à un VPN sur Ubuntu, je dois sélectionner manuellement un serveur spécifique parmi les fichiers .ovpn préconfigurés. Au lieu de cela, sur leur client Android Android, par exemple, je peux simplement appuyer sur un bouton et me connecter à un serveur aléatoire sans même y penser.

Existe-t-il un moyen de faire en sorte que le gestionnaire de réseau sélectionne une configuration .ovpn aléatoire, au lieu de devoir en sélectionner une manuellement? (Je n'ai pas peur de la ligne de commande, mais de préférence sans ajouter un autre PPA à mon système.)

2
Prototype700

Un simple script de ligne de commande pourrait fonctionner comme ceci:

#!/bin/bash
RANGE=200

number=$RANDOM
let "number %= $RANGE"
fname="us${number}.ovpn"
openvpn "$fname"

En admettant que:

  • Vos fichiers de configuration OpenVPN sont nommés selon un schéma comme us176.ovpn, c'est-à-dire un code de pays à deux lettres et un numéro courant.
  • Les fichiers de configuration OpenVPN disponibles s'exécutent à partir de us1 à us200.

Vous devrez adapter la plage et ajouter le répertoire dans lequel les fichiers de configuration sont stockés. Selon le format exact du nom de fichier, que je ne connais pas pour ProtonVPN, vous devrez peut-être apporter d'autres modifications, mais vous avez l'idée. Notez que vous devrez exécuter le script en tant que Sudo pour que OpenVPN fonctionne comme ça.

EDIT: Si votre VPN demande un nom d'utilisateur et un mot de passe à la connexion, vous pouvez modifier la dernière ligne du script comme ceci:

openvpn --config $fname --auth-user-pass /dir/to/userpass.txt

où userpass.txt contient le nom d'utilisateur et le mot de passe sur deux lignes distinctes, si vous êtes à l'aise de les stocker comme ça.

3
Sebastian

Je n'ai jamais fait ça, mais pour autant que je comprends le manuel openvpn, vous pouvez écrire plusieurs profils de connexion/vpn-server-ip distants dans votre fichier de configuration .ovpn. Lorsqu'il est combiné avec –remote-random, Le logiciel openvpn en choisira un pour vous, sinon il sélectionnera le premier serveur spécifié dans la liste. Je ne sais pas si cela fonctionnera avec NetworkManager mais cela devrait fonctionner lorsque vous exécutez la commande à partir de termial comme
Sudo openvpn my.config.file.ovpn.


Citation du maual:

- Hôte distant [port] [proto]

Nom d'hôte distant ou adresse IP. Sur le client, plusieurs options --remote peuvent être spécifiées pour la redondance, chacune faisant référence à un serveur OpenVPN différent. La spécification de plusieurs options --remote à cet effet est un cas particulier du profil de connexion plus général. fonctionnalité.

Voir la documentation <connection> Ci-dessous.

Le client OpenVPN essaiera de se connecter à un serveur sur le port Host: dans l'ordre spécifié par la liste des options --remote. proto indique le protocole à utiliser lors de la connexion avec la télécommande et peut être "tcp" ou "udp".

Le client passera au prochain hôte de la liste, en cas d'échec de connexion. Notez qu'à tout moment, le client OpenVPN sera tout au plus connecté à un serveur.

[...]

<connection> Définissez un profil de connexion client.

Les profils de connexion client sont des groupes d'options OpenVPN qui décrivent comment se connecter à un serveur Open ‐ VPN donné. Les profils de connexion client sont spécifiés dans un fichier de configuration OpenVPN, et chaque profil est placé entre crochets <connection> Et </connection>.

Voici un exemple d'utilisation du profil de connexion:

client dev tun

<connection>

télécommande 198.19.34.56 1194 udp

télécommande 198.19.34.56 443 tcp

distant 198.19.34.56 443 tcp http-proxy 192.168.0.8 8080 http-proxy-retry

[...]

n client OpenVPN essaiera chaque profil de connexion séquentiellement jusqu'à ce qu'il atteigne une connexion réussie.

- remote-random peut être utilisé pour "brouiller" initialement la liste des connexions.

2
AlexOnLinux