OVPNファイルをUbuntuのNetworkManagerにすばやくインポートするスクリプトの作成

OVPNファイルをUbuntuのNetworkManagerにすばやくインポートするスクリプトの作成

ovpnファイルをNetworkManagerにすばやくインポートし、NetworkManagerが使用する最終的なconfファイルに私のログインの詳細を追加したいと思います。

基本的にこれを入れてください

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

これを入力してください

[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

通常、NetworkManagerは提供されたOVPNファイルをインポートすると出力します。

[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

usernamesedを使用してパスワードフラグをすばやく変更できますが、部分を追加する方法がわかりません[vpn-secrets]

どんな助けでも大変感謝します。

ベストアンサー1

新しいPIA OpenVPN設定ファイルには、OpenVPN接続の開始を妨げる可能性があるいくつかのバグが含まれています。

これらはすべて間違いです。

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

修正は比較的簡単です。すべて大文字に変更するだけです。すべての構成ファイルに対してsedを使用すると、これをすばやく実行できます。

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

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

NetworkManagerを使用してファイルをすばやくインポートするには、このコマンドを使用します。

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

NetworkManager設定ファイルにユーザー名とパスワードを追加するには、次の手順に従います。

まずスクリプトを作成します。

#!/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

/etc/NetworkManager/system-connectionsNetworkManagerが設定ファイルを保存する場所に移動します。

すべての設定ファイルでスクリプトをすばやく繰り返すには、このコマンドを実行します。

for i in "*"; do <script location> "$i"; done

おすすめ記事