Exécuter OpenVPN sous Windows sans donner aux utilisateurs les droits d’administrateur
OpenVPN a besoin de privilèges pour son adaptateur et ses routes, pas pour tout. Utilisez le service et déléguez les droits réseau, puis vérifiez depuis le compte utilisateur.
Un utilisateur double-clique sur l’interface d’OpenVPN, approuve une invite UAC et répète le même rituel à la reconnexion suivante. L’invite n’est pas une erreur d’empaquetage : le client crée un adaptateur virtuel et modifie la table de routage, et les deux sont des changements privilégiés. La question utile est de savoir lesquels de ces droits l’utilisateur a réellement besoin. Un service plus une délégation étroite couvrent la connexion sans distribuer l’appartenance au groupe Administrateurs.
Quelles opérations exigent réellement une élévation
Le tunnel se termine sur une interface réseau virtuelle, et l’installation de cette interface est une opération de pilote qui nécessite une fois les droits d’administrateur. Une fois l’adaptateur présent, chaque connexion écrit encore des routes et, selon le profil, modifie la configuration DNS. Ce sont ces deux étapes qui déclenchent l’élévation sur un compte ordinaire. Rien dans l’authentification ni dans le chiffrement ne nécessite de droits d’administrateur, et c’est précisément pourquoi le privilège peut être isolé.
Séparez le moment de l’installation du moment de la connexion avant de choisir une autorisation. Ils ont des propriétaires et des durées de vie différents.
Utilisez le service comme composant privilégié
La disposition prise en charge exécute un service Windows qui détient les droits nécessaires, avec une interface qui demande au service de se connecter. Le code privilégié ne s’exécute alors jamais dans la session de l’utilisateur.
sc query OpenVPNService
sc qc OpenVPNServiceUn service en cours d’exécution dont le chemin binaire pointe vers le client installé est le premier fait à confirmer avant de déléguer quoi que ce soit. Le service possède l’adaptateur et les routes, donc l’utilisateur ne fait que démarrer et arrêter une connexion. C’est la forme à utiliser sur les machines partagées, car le compte qui clique pour se connecter ne détient aucun privilège permanent. Lisez le descripteur avec sc sdshow avant de le modifier, et conservez une copie de référence de la sortie.
Déléguez les changements de route à un groupe intégré
Pour un client qui doit fonctionner en mode interactif, le groupe intégré délégué est Network Configuration Operators. Il couvre les paramètres réseau et les changements de route tout en excluant l’installation de logiciels et le travail d’administration générale.
net localgroup "Network Configuration Operators" alice /add
sc sdshow OpenVPNServiceL’ajout du compte n’est pas silencieux : la stratégie par défaut déclenche encore une invite par session, donc l’autorisation réduit ce que l’élévation peut faire plutôt que de la supprimer. Documentez l’appartenance, car elle s’accumule discrètement et n’est presque jamais revue. Sur la voie du service, une modification du descripteur avec sc sdset peut déléguer le démarrage et l’arrêt à un groupe, même si une faute de frappe dans le descripteur peut refuser les droits de démarrage à tous les comptes, et l’annulation exige un administrateur. Testez toute modification de descripteur sur une machine de laboratoire avant qu’elle n’atteigne un hôte de production.
Vérifiez depuis le compte utilisateur
Une configuration réalisée dans une session d’administrateur ne prouve rien sur le compte qui l’utilisera. Connectez-vous en tant que cet utilisateur, établissez la connexion et comparez l’état de la machine avant et après.
route print -4
Get-DnsClientServerAddressLa table de routage devrait gagner les routes du tunnel, et le résolveur devrait pointer vers les serveurs fournis par le VPN pendant la connexion. Après la déconnexion, les deux sorties devraient correspondre aux copies que vous avez prises au préalable, et c’est pourquoi il importe de les prendre d’abord. Les mises à jour de pilotes peuvent réintroduire l’exigence d’administrateur, alors notez la version du client à côté du résultat. Gardez les fichiers de profil et de clés lisibles uniquement par le compte qui les utilise au lieu d’assouplir les permissions pour une installation partagée.
Notez qui peut démarrer le tunnel, quel groupe l’accorde et ce qui nécessite encore un administrateur. Cette note transforme la prochaine mise à jour du client en travail planifié plutôt qu’en après-midi de suppositions.