Ce qu’un profil VPN transmis peut changer sur votre appareil
Un profil est un ensemble d’instructions destinées à un client, qui peut rediriger le trafic et ajouter de la confiance. Lisez ce qu’il demande avant d’y saisir un mot de passe.
Remettre un profil VPN à votre client, c’est lui remettre une configuration écrite par quelqu’un d’autre, que ce programme exécute ensuite sur votre machine. Son import peut changer la destination du trafic couvert, le pair auquel votre appareil fait confiance et, dans certains formats, les programmes locaux qui se lancent à l’ouverture du tunnel. Le fichier n’est pas un signet ; c’est un petit programme dans un format déclaratif.
Lisez-le comme vous liriez un script shell provenant de la même source.
C’est le client qui l’interprète, pas vous
Chaque champ du fichier est une instruction adressée à un client précis. Le point de terminaison et le protocole décident où va le tunnel, le bloc d’authentification décide quel secret est exigé et les directives de route décident ce qui y entre. Les certificats ou une clé privée peuvent être intégrés sous forme de blocs plutôt que référencés comme fichiers, et c’est pourquoi un seul fichier texte porte parfois tout ce qu’il faut pour se faire passer pour vous auprès d’une passerelle. C’est cette propriété qui rend le partage de fichiers désinvolte si dangereux.
Les profils OpenVPN peuvent aussi porter des crochets de script, des chemins de greffons et un niveau de sécurité qui détermine si ces crochets peuvent s’exécuter. C’est cette combinaison qui rend un profil inconnu digne d’une lecture ligne par ligne plutôt que d’un double-clic. Le client fera exactement ce que dit le fichier, et il le fera avec vos privilèges.
Les changements de routage se voient après une connexion
Un profil en tunnel complet installe des routes qui font tout passer par la passerelle, tandis qu’un profil en tunnel divisé n’envoie que des préfixes choisis. Certains profils poussent aussi un serveur DNS, ce qui change discrètement qui voit vos requêtes. Rien de tout cela n’est malveillant en soi, et rien de tout cela n’est évident d’après le nom du fichier.
Comparez la table de routage avant et après la première connexion et vous verrez l’intention d’un coup d’œil. Un profil annoncé comme un accès à une seule application interne mais qui installe une route par défaut plus large vous dit quelque chose de son auteur.
Le matériel de confiance et les crochets portent le vrai poids
Un profil peut fournir des informations de confiance au client VPN, et un paquet de configuration de plateforme peut aller plus loin et installer un certificat ou une racine dans un magasin du système. Ce sont des portées différentes avec des conséquences différentes. Le cas à portée du client touche la validation d’une application ; le cas à l’échelle du système touche tout ce qui utilise le magasin de confiance de la plateforme.
Les crochets de script et les greffons sont l’autre moitié. Une directive qui exécute une commande à la connexion, ou un greffon chargé dans le processus du client, dispose de vos droits et de rien de l’isolement du client. Si un profil que vous n’avez pas demandé en contient un, c’est une question pour la personne qui vous l’a envoyé.
Aucune des deux catégories n’est automatiquement hostile. Les déploiements d’entreprise utilisent les deux. Le point est que chacune exige une explication que vous pouvez vérifier.
Vérifiez la provenance, puis saisissez le secret
Établissez qui a émis le fichier par un canal auquel vous faites déjà confiance, et non par le message qui l’a livré. Comparez les détails du point de terminaison et du certificat avec la documentation publiée par l’opérateur. Si un profil est arrivé sans que vous l’ayez demandé, obtenez-en un nouveau directement auprès de l’opérateur plutôt que de réparer la copie qu’on vous a remise. Demandez quelle version de client l’opérateur prend en charge, car un autre client peut interpréter le même fichier différemment.
grep -nE '^(remote|proto|auth-user-pass|redirect-gateway|route|route-nopull)' office.ovpn
grep -nE '^(up|down|plugin|script-security|setenv)' office.ovpn
openssl x509 -in embedded-ca.crt -noout -subject -issuer -dates
Ne mettez jamais un mot de passe dans un champ inexpliqué pour voir s’il fonctionne, et n’acceptez jamais une demande de privilèges inconnue juste pour terminer un import. Une connexion réussie prouve que le point de terminaison a répondu, rien de plus.
Supprimez la copie importée, pas le téléchargement
Les clients copient un profil dans leur propre magasin, donc supprimer le fichier téléchargé laisse la connexion importée active. Supprimez-la via l’interface du client lui-même, et vérifiez que tout certificat ajouté pendant l’import a disparu aussi. Confirmez ensuite que les routes qu’il a installées ont également disparu.
Si un certificat a été installé à l’échelle du système, supprimer le profil ne suffit pas. Ce nettoyage relève de la gestion de la confiance de la plateforme, et il vaut mieux le faire délibérément plutôt que d’espérer que le prochain redémarrage s’en charge.