Создание сценария для быстрого импорта файлов OVPN в NetworkManager в Ubuntu

Bash-ically:

shopt -s globstar
printf "%s\n" **/wp-content/plugins/*

prints:

bat/bar/foo/blog/wp-content/plugins/GHI
baz/wp-content/plugins/ABC
baz/wp-content/plugins/DEF
foo/bar/wp-content/plugins/XYZ

or

shopt -s globstar
for d in **/wp-content/plugins/*; do printf "%s\n" ${d##*/}; done

prints:

GHI
ABC
DEF
XYZ
1
07.08.2016, 11:37
2 ответа

Вот модифицированная версия скрипта ghostinzshell, которая работает для конфигураций ProtonVPN. Оказывается, он использовал фиксированную линию 21 для добавления секретов vpn -, я просто добавил ниже некоторый известный текст (service -type):

#!/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
0
27.01.2020, 23:25

Я создал скрипт, который делает это, используя только официально поддерживаемый API (без sedподтасовки):

#! /bin/sh

read -sp 'Username: ' username
echo
read -sp 'Password: ' password

for path in "$@"
do
    name=$(basename "$path" ".ovpn")

    sudo nmcli --terse connection delete id "$name" > /dev/null
    sudo nmcli --terse connection import type openvpn file "$path" > /dev/null

    sudo nmcli connection modify "$name" vpn.persistent true
    sudo nmcli connection modify "$name" vpn.user-name "$username"
    sudo nmcli connection modify "$name" +vpn.data "password-flags = 0, username = $username"
    sudo nmcli connection modify "$name" +vpn.secrets "password=$password"
done

echo

Предполагая, что скрипт называется import-openvpn, вы можете использовать его следующим образом:

$ import-openvpn *.ovpn
Username:
Password:

Это приведет к удалению существующих VPN-соединений, а затем их повторному созданию с указанными именем пользователя и паролем.

0
15.06.2021, 10:40

Теги

Похожие вопросы