Scripting uma maneira de importar rapidamente arquivos OVPN para o NetworkManager no Ubuntu

0

Quero importar rapidamente arquivos ovpn para o NetworkManager e acrescentar meus detalhes de login no arquivo conf final que o NetworkManager usará.

Basicamente, transformando isso

client
dev tun
proto udp
remote italy.privateinternetaccess.com 1197
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-CBC
auth SHA256
tls-client
remote-cert-tls server
auth-user-pass
comp-lzo
verb 1
reneg-sec 0
crl-verify crl.rsa.4096.pem
ca ca.rsa.4096.crt
disable-occ

para isso

[connection]
id=Singapore
uuid=<unique id gen by uuidgen>
type=vpn
permissions=
secondaries=

[vpn]
connection-type=password
auth=SHA256
password-flags=0
remote=sg.privateinternetaccess.com:1197
cipher=AES-256-CBC
comp-lzo=yes
reneg-seconds=0
username=<username>
remote-cert-tls=server
ca=ca.rsa.4096.crt
dev=tun
service-type=org.freedesktop.NetworkManager.openvpn

[vpn-secrets]
password=<password>

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

Normalmente, quando o NetworkManager importa o arquivo OVPN fornecido, ele gera isso.

[connection]                                                                                                                                                                                                     
id=Ireland
uuid=174fa5b0-0b49-40bc-a301-756acd341c12
type=vpn
permissions=
secondaries=

[vpn]
connection-type=password
auth=SHA256
password-flags=1
remote=ireland.privateinternetaccess.com:1197
cipher=AES-256-CBC
comp-lzo=yes
reneg-seconds=0
remote-cert-tls=server
ca=ca.rsa.4096.crt
dev=tun
service-type=org.freedesktop.NetworkManager.openvpn

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

Eu posso alterar rapidamente os sinalizadores de senhas via sed, mas estou perdido em como anexar a seção username e [vpn-secrets] .

Qualquer ajuda seria apreciada.

    
por ghostinzshell 07.08.2016 / 10:37

2 respostas

2

Os novos arquivos de configuração do PIA OpenVPN contêm alguns erros que podem impedir a inicialização de uma conexão OpenVPN.

Estes são os erros.

...
cipher aes-256-cbc
auth sha-256
...

A correção é relativamente simples, basta alterá-las para maiúsculas. Você pode usar sed para fazer isso rapidamente para todos os arquivos de configuração.

sed -i 's/aes-256-cbc/AES-256-CBC/g' *.ovpn

sed -i 's/sha256/SHA256/g' *.ovpn

Para importar rapidamente os arquivos usando o NetworkManager, use este comando.

for i in *.ovpn; do nmcli connection import file "$i" type openvpn; done

Se você deseja adicionar seu nome de usuário e senha ao arquivo de configuração do NetworkManager, siga estes passos.

Primeiro, crie um script.

#!/bin/bash

# Changes password-flags from 1 to 0
sed -i 's/password-flags=1/password-flags=0/g' $1

# Adds in a username entry after reneg-seconds
sed -i '/reneg-seconds=0/a username=<insert username here>' $1

# Adds in a section [vpn-secrets] for passwords after line 21
sed -i '21 a [vpn-secrets]' $1

# Adds in password into the config file after [vpn-secrets]
sed -i '/\[vpn-secrets]/a password=<insert password here>' $1

# Adds in a new line after password=    
sed -i '/password=/a\' $1

Navegue até /etc/NetworkManager/system-connections ou onde o NetworkManager armazenar seus arquivos de configuração.

Para iterar rapidamente o script sobre todos os arquivos de configuração, execute este comando.

for i in "*"; do <script location> "$i"; done
    
por 07.08.2016 / 12:32
1

Aqui está uma versão modificada do script do ghostinzshell que funciona para as configurações do ProtonVPN. Acontece que ele usou a linha fixa 21 para adicionar vpn-segredos, eu acabei de adicionar abaixo alguns saber texto (tipo de serviço):

#!/bin/bash

# Changes password-flags from 1 to 0
sed -i 's/password-flags=1/password-flags=0/g' $1

# Adds in a username entry after reneg-seconds
sed -i '/reneg-seconds=0/a username=USERNAME_HERE' $1

# Adds in password into the config file after [vpn-secrets]
sed -i '/service-type=/a\
\
[vpn-secrets]' $1
sed -i '/\[vpn-secrets]/a password=PASSWORD_HERE' $1
    
por 18.07.2018 / 01:11