Como salvar senhas de VPN com o NetworkManger for nmcli?

14

Existem muitos posts sobre como inserir senhas de VPN /etc/NetworkManager/system-connections/<connection>. Não consigo fazer nenhum deles funcionar no Ubuntu 12.04. Os campos nas perguntas e respostas parecem sutilmente diferentes dos meus. O que mais se aproximava parecia ser: Como salvar senhas de VPN com o NetworkManger .

Eu preferiria nmclipedir senhas no console do que em um widget da GUI na área de trabalho, mas isso parece impossível.

Então, duas perguntas:

  1. Os /etc/NetworkManager/system-connections/<connection>arquivos e seus campos estão oficialmente documentados em algum lugar? Parece haver muitos 404s para links de documentação do NetworkManager.
  2. O que há de errado com meu arquivo de conexão?

Aqui está o meu arquivo de conexão. Eu tentei muitas variações de configurações neste arquivo, mas isso é o mais próximo que eu consegui (anonimizado, é claro):

[connection]
# Not sure if this helps or breaks anything. Fails regardless.
permissions=user:peter:;
id=My VPNC
uuid=a2cd97d5-7df1-4391-91d8-7e72931ec2de
type=vpn
autoconnect=false
timestamp=1396942441

[vpn]
service-type=org.freedesktop.NetworkManager.vpnc
NAT Traversal Mode=natt
ipSec-secret-type=save
IPSec secret-flags=0
xauth-password-type=save
Vendor=cisco
Xauth username=user
IPSec gateway=1.2.3.4
XAuth password-flags=0
IPSec ID=Ipsec
Perfect Forward Secrecy=server
IKE DH Group=dh2

[vpn-secrets]
XAuth password=password
IPSec secret=grouppassword

[ipv4]
method=auto

Permissões:

> ls -l /etc/NetworkManager/system-connections/My\ VPNC 
-rw------- 1 root root 527 Apr  8 10:11 /etc/NetworkManager/system-connections/My VPNC

Executá-lo fornece:

> sudo nmcli con up id  'My VPNC'
Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/44
state: VPN connecting (need authentication) (2)
Error: Connection activation failed: no valid VPN secrets.

Edit: Aqui está outra postagem semelhante (sobre a Openconnect VPN): Como posso o NetworkManager se conectar automaticamente a uma VPN Openconnect via nmcli sem solicitar um usuário e senha

Peter V. Mørch
fonte

Respostas:

11

Quando você configura sua conexão VPN por meio da GUI, a senha é salva no conjunto de chaves. Se você salvar sua senha no arquivo de conexão, faça o seguinte:

sudoedit /etc/NetworkManager/system-connections/MyConnectionExampleName

in this file:

    # 1 here means key-ring I  think, but with 0, the password below is  used
    [vpn]
    password-flags=0
    cert-pass-flags=0

    [vpn-secrets]
    password=my_secret_password
    cert-pass=my_secret_certificate_password
HackerBaloo
fonte
1
Não funcionou para mim aqui no dia 15.04. Se eu corri nmcli con up id MyVPNcomo meu próprio usuário, a caixa de diálogo de senha ainda aparecerá na área de trabalho da máquina remota. Correr sudo nmcli con up id MyVPNdeu primeiro (process:3320): libnm-glib-WARNING **: async_got_type: could not read properties for /org/freedesktop/NetworkManager/ActiveConnection/7: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't existe depoisError: Connection activation failed: Creating object for path '/org/freedesktop/NetworkManager/ActiveConnection/7' failed in libnm-glib.
Peter V. Mørch
4

Eu tive o mesmo problema, / var / log / messages estava registrando uma mensagem em que o NetworkManager reclamou de propriedades inválidas. Depois que eu removi o sinalizador e digite as propriedades e deixei apenas os registros [vpn-secrets], a conexão pôde ser estabelecida.

ipSec-secret-type=save
IPSec secret-flags=0
xauth-password-type=save
XAuth password-flags=0

Pacote que eu instalei:

NetworkManager-0.8.1-66.el6.x86_64

Resultado:

[connection]
id=My VPNC
uuid=a2cd97d5-7df1-4391-91d8-7e72931ec2de
type=vpn
autoconnect=false
timestamp=1396942441

[vpn]
service-type=org.freedesktop.NetworkManager.vpnc
NAT Traversal Mode=natt
Vendor=cisco
Xauth username=user
IPSec gateway=1.2.3.4
IPSec ID=Ipsec
Perfect Forward Secrecy=server
IKE DH Group=dh2

[vpn-secrets]
XAuth password=password
IPSec secret=grouppassword

[ipv4]
method=auto
Oscar
fonte
Não funcionou para mim. Como root, obtive: (process:2034): libnm-glib-WARNING **: async_got_type: could not read properties for /org/freedesktop/NetworkManager/ActiveConnection/4: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist Error: Connection activation failed: Creating object for path '/org/freedesktop/NetworkManager/ActiveConnection/4' failed in libnm-glib.Como usuário "eu", ele abriu a caixa de diálogo de login na área de trabalho remota.
Peter V. Mørch
1
Posso confirmar que isso funciona para o Ubuntu 14.04 em uma VPN da Cisco.
Dale Anderson
Funciona com o Fritzbox 5490 e Ubuntu 16.04. Onde IPSec secretestá a chave pré-compartilhada IPSec e Xauth passworda senha que você escolheu no Fritzbox. Certifique-se de não atrapalhar a palavra-chave ortográfica e maiúscula / minúscula de IPSec secrete Xauth password.
MadMike 26/09
3

Em termos de resolução do erro secreto de senha simples no 16.04 , você só precisa das duas linhas:

[vpn-secrets]
password=my_secret_password

Eu só tocaria / adicionaria outras linhas se necessário

Lobo
fonte
1
Eu também precisava definirpassword-flags=0
Pierre François
2

Eu não mudaria os arquivos de configuração gerados pela GUI. Da próxima vez que você clicar na GUI, suas entradas manuais desaparecerão. Também uma atualização do sistema pode travá-lo.

Você pode tentar o seguinte:

  • Permitir executar sudo nmclisem senha:

    Crie um arquivo /etc/sudores.d/mynmcli(o nome do arquivo não importa)

    Host_Alias HOST = YOURHOSTNAME
    Cmnd_Alias NMCLI    = /usr/bin/nmcli
    YOURHOSTNAME HOST=(root) NOPASSWD:NMCLI
    
  • Crie um arquivo de senha com:

    vpn.secrets.Xauth password:PASSWORD
    vpn.secrets.IPSec secret:SHAREDSECRET
    

    Agora você pode executar a seguinte linha em um script tratado por corn:

    sudo nmcli con up id YOURVPN passwd-file /path/to/your/file
    

    (Para localizar o tipo YOURVPN " nmcli con")

Funciona para mim no Ubuntu 16.10.

wolfi
fonte
1

Faça o que Wolf disse . Salve o arquivo.

Então digite

sudo service network-manager restart

e aperte Enter.

Agora suas alterações estão em vigor.

Hipócrito
fonte
0

Edite sua conexão VPNC usando a caixa de diálogo Conexões de rede.

Na guia VPN, as entradas de senha têm um ícone dentro da entrada no lado direito. Clique neste ícone e selecione "Armazenar a senha apenas para este usuário".

Gálatas
fonte