Importez des fichiers de configuration VPN dans NetworkManager à partir de la ligne de commande

14

On peut importer des .ovpnfichiers dans NetworkManager via l'outil GUI nm-connection-editor(clic droit sur nm-appletet cliquez sur Edit connections): Add-> Import a saved VPN configuration....

Mon objectif est de faire la même chose mais via la ligne de commande en utilisant des outils comme nm-cli. Est-ce possible d'une manière ou d'une autre?

petRUShka
la source
Avez-vous fait des progrès avec cela? J'essaie de faire la même chose, alors je posterai une réponse si je le fais fonctionner.
David Mason
@DavidMason, malheureusement, non. J'attends votre solution.
petRUShka
Je cherche aussi activement une solution.
Raspbeguy
J'aimerais voir une solution pour l'importation par ligne de commande
davidbaumann

Réponses:

10

J'utilise nmcli version 1.2.6 et je peux l'utiliser pour importer des configurations openvpn.

nmcli connection import type openvpn file ~/myconfig.ovpn

À partir de maintenant, même dans l'interface utilisateur de NetworkManager, mon VPN est visible.

Pour configurer davantage la connexion, vous pouvez utiliser la showcommande pour connaître le nom de la connexion et modifymodifier les valeurs de configuration.

nmcli connection show
nmcli connection modify myvpnconnectionname +vpn.data username=myusername
Bastian
la source
une idée comment utiliser -vpn.datasi j'ai accidentellement ajouté quelque chose de mal aux données de configuration?
32r34wgf3e
@ 32r34wgf3e ne sais pas. Lorsque ma configuration est incorrecte, je la supprime et fais une nouvelle configuration à partir de la ligne de commande, comme indiqué dans ma réponse. Conseil: stockez vos commandes dans un fichier texte pour une réutilisation ultérieure.
Bastian
5

Une solution de contournement que j'utilise pour surmonter le manque de fonctionnalités fourni avec nmcli sur les systèmes basés sur Debian consiste à utiliser des commandes pour copier un fichier de configuration VPN existant dans le dossier / etc / NetworkManager / system-settings vers un nouveau fichier (en tant que root, bien sûr) dans le même dossier et effectuez des remplacements de chaîne aux valeurs autorisées d'utilisateur, de passerelle, de nom d'utilisateur et de mot de passe dans la nouvelle copie. Ensuite, je redémarre le gestionnaire de réseau pour appliquer les modifications.

Par exemple:

Un fichier de configuration typique dans le dossier / etc / NetworkManager / system-settings peut ressembler à ceci:

[connection]
id=<<id>>
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
type=vpn
permissions=user:<<permissions_user>>:;
autoconnect=false

[vpn]
password-flags=0
service-type=org.freedesktop.NetworkManager.pptp
require-mppe-128=yes
mppe-stateful=yes
user=<<user>>
refuse-eap=yes
refuse-chap=yes
gateway=<<gateway>>
refuse-pap=yes

[vpn-secrets]
password=<<password>>

[ipv4]
method=auto

... afin que vous puissiez simplement créer un nouveau fichier de configuration qui ressemble à celui ci-dessus ...

cd /etc/NetworkManager/system-settings
cp "existing-working-vpn-config-file" "new-vpn-config-file"

... puis remplacez les valeurs «<< >>» ci-dessus par vos propres paramètres VPN, par exemple:

sed -i "s/<<permissions_user>>/my_permissions_user/g" new-vpn-config-file
sed -i "s/<<user>>/my_user/g" new-vpn-config-file
sed -i "s/<<gateway>>/my_gateway/g" new-vpn-config-file
sed -i "s/<<password>>/my_password/g" new-vpn-config-file

... puis redémarrez enfin le gestionnaire de réseau via la commande suivante:

service network-manager restart

Remarque: Le paramètre UUID ne semble pas avoir d'importance, même s'il n'est pas unique. Je ne sais pas pourquoi. Les trucs fonctionnent juste.

En outre, si vous ajoutez un nouveau fichier plutôt que de le copier, assurez-vous que les autorisations sur le fichier sont définies sur 600 (lecture et écriture) et que le propriétaire est root.

Essayez-le et dites-moi ce que vous en pensez. Cela fonctionne pour moi, le tout via la ligne de commande.

Analyse floue
la source
0

Je l'ai utilisé pour exécuter à partir de la racine:

USER=japie
runuser -l $USER -c "sudo -S nmcli connection import type openvpn file ~/vpn_clients/flappie3-TO-IPFire.ovpn"

La connexion «flappie3-TO-IPFire» (26d0b28e-9212-4e71-90dc-3911ddf231e5) a été ajoutée avec succès.

djieno
la source
Pourquoi utiliser runuseruniquement pour que l'utilisateur utilise sudo? Cela n'ajoute rien de non déjà mentionné, par exemple dans Importer des fichiers de configuration VPN dans NetworkManager à partir de la ligne de commande
Kusalananda
le script d'inscription des ordinateurs portables s'exécute en tant que root
djieno
Bien sûr, et vous passez à l' japieutilisation runuser, mais vous revenez à root avec sudo...
Kusalananda
si vous n'ajoutez pas "sudo ...", l'utilisateur actuel / japie n'a pas suffisamment de droits pour exécuter nmcli
djieno
Alors ne passez pas à cet utilisateur avec runas... En bref, ce que je dis, c'est que cela devrait suffire nmcli connection import type openvpn file ~japie/vpn_clients/flappie3-TO-IPFire.ovpn.
Kusalananda