Importar arquivos de configuração da VPN para o NetworkManager a partir da linha de comando

14

É possível importar .ovpnarquivos para o NetworkManager através da ferramenta GUI nm-connection-editor(clique com o botão direito do mouse nm-applete clique em Edit connections): Add-> Import a saved VPN configuration....

Meu objetivo é fazer a mesma coisa, mas via linha de comando usando ferramentas como nm-cli. É possível de alguma forma?

petRUShka
fonte
Você fez algum progresso nisso? Eu estou tentando fazer a mesma coisa, por isso postarei uma resposta se eu conseguir fazê-lo funcionar.
David Mason
@DavidMason, infelizmente, não. Estou aguardando sua solução.
Petrushka
Também estou procurando ativamente uma solução.
Raspbeguy 18/09/2015
Eu gostaria de ver uma solução para a importação pela linha de comando
davidbaumann

Respostas:

10

Estou usando o nmcli versão 1.2.6 e posso usá-lo para importar configurações do openvpn.

nmcli connection import type openvpn file ~/myconfig.ovpn

A partir de agora, mesmo na interface do NetworkManager, meu vpn estará visível.

Para configurar ainda mais a conexão, você pode usar o showcomando para descobrir o nome da conexão e modifyalterar os valores de configuração.

nmcli connection show
nmcli connection modify myvpnconnectionname +vpn.data username=myusername
bastião
fonte
alguma idéia de como usar -vpn.datase acidentalmente adicionei algo errado aos dados de configuração?
32r34wgf3e
@ 32r34wgf3e não sei. Quando minha configuração está errada, eu a apago e faço uma nova configuração na linha de comando, conforme descrito na minha resposta. Dica: armazene seus comandos em um arquivo de texto para reutilização posterior.
bastian
5

Uma solução alternativa usada para superar a falta de funcionalidade que acompanha o nmcli em sistemas baseados em debian é usar comandos para copiar um arquivo de configuração de VPN existente na pasta / etc / NetworkManager / system-settings para um novo arquivo (como root, é claro) na mesma pasta e faça substituições de string nos valores permitidos de usuário, gateway, nome de usuário e senha na nova cópia. Em seguida, reinicio o gerenciador de rede para aplicar as alterações.

Por exemplo:

Um arquivo de configuração típico na pasta / etc / NetworkManager / system-settings pode ter a seguinte aparência:

[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

... para que você possa criar um novo arquivo de configuração que seja semelhante ao acima ...

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

... substitua os valores '<< >>' acima por suas próprias configurações de VPN, por exemplo:

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

... e, finalmente, reinicie o gerenciador de rede usando o seguinte comando:

service network-manager restart

Nota: A configuração UUID não parece importar, mesmo que não seja única. Não faço ideia do porquê. Coisas simplesmente funciona.

Além disso, se você estiver adicionando um novo arquivo em vez de copiar, verifique se as permissões estão definidas para 600 (leitura e gravação) e se o proprietário é root.

Experimente e me diga o que pensa. Funciona para mim, tudo via linha de comando.

Análise Fuzzy
fonte
0

Eu usei isso para executar a partir do root:

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

Conexão 'flappie3-TO-IPFire' (26d0b28e-9212-4e71-90dc-3911ddf231e5) adicionada com sucesso.

djieno
fonte
Por que usar runuserapenas para que o usuário use sudo? Isso não acrescenta nada não já mencionado no exemplo arquivos de configuração Importação VPN para NetworkManager a partir de linha de comando
Kusalananda
laptop roda de script de inscrição como root
djieno
Claro, e você mudar para japieusar runuser, mas então você voltar para root com sudo...
Kusalananda
Se você não adicionar "sudo ..." o usuário atual / Japie não tem direitos suficientes para executar nmcli
djieno
Portanto, não mude para esse usuário com runas... Então, em resumo, o que estou dizendo é que deve ser suficiente nmcli connection import type openvpn file ~japie/vpn_clients/flappie3-TO-IPFire.ovpn.
Kusalananda