openvpn не может импортировать конфигурации при новой установке 14.04

Редактировать: Исправлено тогда, когда патч вышел с добавлением конфигурации VPN. Больше не используйте Linux / Ubuntu.

Я установил OpenVPN Network-Manager, выполнив: sudo apt-get install network-manager-openvpn, который также устанавливает пакет gnome.

Это позволило импортировать конфигурации в соответствии с 13.10, но при новой установке я могу указать файлы .conf, но после нажатия кнопки «Импорт» диспетчер просто исчезает, и соединение не добавляется.

Я пытался настроить его вручную, что сработало, но через некоторое время мое соединение продолжает прерываться, я полагаю, потому что я не настраивал вручную каждую последнюю деталь очень подробной конфигурации.

Подключаясь через терминал, выполните: sudo openvpn --config /path/to/openvpn.conf попросил у меня имя пользователя, затем пароль, но затем не подключился.

Что я могу сделать, чтобы это исправить? Мне действительно нужен мой VPN, любая помощь очень ценится.

Редактировать: это ошибка / 1294899

Для повторного открытия очереди: У кого-то есть чрезвычайно хороший обходной путь для этого, и он использовал редактирование вставить это, но это заслуживает отдельного ответа: голосование за повторное открытие ...

20
задан 11 October 2015 в 09:55

6 ответов

Вы правы, это - ошибка администратора сети. Но я (и Вы также) могу обойти его путем выполнения openvpn из командной строки. Вы, вероятно, сделали по крайней мере несколько из этих шагов, но на всякий случай (и в пользу других) я сделаю полное пошаговое.

Сначала установите необходимые пакеты

sudo apt-get install network-manager network-manager-openvpn network-manager-openvpn-gnome

Создайте Файлы , Эти файлы должны бережно храниться и частные в любом случае

  1. Сделайте каталог названным openvpn в Вашем корневом каталоге Копия Ваш файл клиента VPN (переименовал client.ovpn) в каталог openvpn
  2. Дополнительный: Сохраните оригинал файла – называют это client.ovpn.orig
  3. Затем мы создадим 4 файла в соответствии с openvpn каталогом.
  4. Посмотрите нижнюю часть этого файла для того, как автоматизировать следующие шаги
  5. Откройте client.ovpn файл в текстовом редакторе.
  6. Создайте файл, названный ca.crt – копируют текст между <ca> и </ca> от client.ovpn в этот файл
  7. Создайте файл, названный client.crt – копируют текст между <cert> и </cert> от client.ovpn в этот файл
  8. Создайте файл, названный client.key – копируют текст между <key> и </key> от client.ovpn в этот файл
  9. Создайте файл, названный ta.key – копируют текст между <tls-auth> и </tls-auth> от client.ovpn в этот файл В этой точке у меня есть в общей сложности 6 файлов в соответствии с моим openvpn каталогом (включая файл резервной копии)

5-9 я только что разработал, как сделать сценарий удара. Копия возгласа следующее в текстовый файл:

#!/bin/bash
sed '1,/<ca>/d;/<\/ca>/,$d' client.ovpn > ca.crt
sed '1,/<cert>/d;/<\/cert>/,$d' client.ovpn > client.crt
sed '1,/<key>/d;/<\/key>/,$d' client.ovpn > client.key
sed '1,/<tls-auth>/d;/<\/tls-auth>/,$d' client.ovpn > ta.key

Я сохранил файл как openvpnconvert в openvpn папке наряду с client.ovpn файлом. Сделанный этим исполняемый файл с командой chmod a+x:

chmod a+x openvpnconvert

И затем выполнил его:

./openvpnconvert

Измените client.ovpn файл

Непосредственно перед тем, как ## — - НАЧИНАЮТ ПОДПИСЬ RSA — – строка добавляет ниже строк и сохраняет

ca ca.crt
cert client.crt
key client.key
tls-auth ta.key

Наконец, необходимо выполнить openvpn от Интерфейса командной строки (CLI)

CD в openvpn папку

cd openvpn

Выполненные openvpn при использовании имен файлов, которые я указал, видят ниже, иначе используют имена файлов.

sudo openvpn --client --config ~/openvpn/client.ovpn --ca ~/openvpn/ca.crt

Я в настоящее время выполняю OpenVPN, который я создал использование точно эти шаги. Надеюсь, что это работает одинаково хорошо на других.

Источники:

Создание файлов - http://naveensnayak.wordpress.com/2013/03/04/ubuntu-openvpn-with-ovpn-file/

Выполнение из командной строки - http://ubuntuforums.org/showthread.php?t=2206811

26
ответ дан 11 October 2015 в 09:55

Я никогда не пытался импортировать эти данные о соединении, но я использовал следование различных случаев:

  • помещают whatever.conf вместе с .crt файл и учетные данные в /etc/openvpn и запускают/останавливают, соединение VPN с sudo service openvpn whatever start|stop

  • создают соединение VPN через NetworkManager путем введения данных о соединении вручную. Файл конфигурации для соединения будет помещен в /etc/NetworkManager/system-connections и может быть отредактирован позже.

0
ответ дан 11 October 2015 в 09:55

Сценарий извлечения:

В ответ на полезный ответ Tamsyn Michael я сделал небольшую программу для автоматизации задачи извлечения. Это производит соответствующие файлы, необходимые для openvpn, затем добавляет эти имена файлов в исходный файл настроек.

//woahguy@askubuntu

#include <iostream>
#include <string.h>
#include <stdio.h>

using namespace std;

int i = 0;

string buffer, filename, ca, cert, key, auth;

struct _tags { const char* first; const char* last; };

const char* files[] = { "ca.crt", "client.crt", "client.key", "ta.key" };

_tags tags[] = {
    { "<ca>", "</ca>" },
    { "<cert>", "</cert>" },
    { "<key>", "</key>" },
    { "<tls-auth>", "</tls-auth>" }
};

string string_between( string str, const string& from, const string& to ) {
    size_t first = str.find(from);
    size_t last = str.find(to);
    return( str.substr ( first+from.size(),last-first-to.size()));
}

int read_file_to_buffer( string filename )
{
    char line[12];
    FILE* pFile = fopen( filename.c_str(), "r" );
    if( pFile != NULL ) {
        while( fgets( line, sizeof( line ), pFile ) ) {
            buffer.append( line );
        }
    } else {
        return 1;
    }
    return 0;
}

int write_buffer_to_file( string buffer, string filename )
{
    FILE* pFile = fopen( filename.c_str(), "w" );
    if( pFile != NULL ) {
        fwrite (buffer.c_str(), sizeof(char), buffer.size(), pFile);
        fclose(pFile);
    } else {
        return 1;
    }
    return 0;
}

int append_found_tags_to_main( int type )
{
    FILE* pFile = fopen( filename.c_str(), "a+" );
    if( pFile != NULL ) {
        if( type == 1 ) {
            fprintf( pFile, "\nca %s\r\ncert %s\r\nkey %s\r\n",
                files[0], files[1], files[2] );
        } else {
            fprintf( pFile, "\nca %s\r\ncert %s\r\nkey %s\r\ntls-auth %s\r\n",
                files[0], files[1], files[2], files[3] );
        }
        fclose(pFile);
    }
    return 0;
}

int extract_tags( )
{
    while (buffer.find(tags[i].first) != std::string::npos ) {
        if( i == 0 ) {
            ca = string_between( buffer, tags[i].first, tags[i].last);
        } else if( i == 1 ) {
            cert = string_between( buffer, tags[i].first, tags[i].last);
        } else if( i == 2 ) {
            key = string_between( buffer, tags[i].first, tags[i].last);
        } else if( i == 3 ) {
            auth = string_between( buffer, tags[i].first, tags[i].last);
        } else {
            return 1;
        }
        i++;
    }
    return 0;
}

int write_tags( )
{
    if( !ca.empty() && !cert.empty() && !key.empty() ) {
        write_buffer_to_file( ca, files[0] );
        write_buffer_to_file( cert, files[1] );
        write_buffer_to_file( key, files[2] );
        if( !auth.empty() ) {
            write_buffer_to_file( auth, files[3] );
            append_found_tags_to_main( 0 );
        } else {
            append_found_tags_to_main( 1 );
            return 1;
        }
    } else {
        return 2;
    }
}

int main(int argc, char* argv[])
{
    if( argv[1] == NULL ) {
        printf("certgrabber<: You need to specify a valid filename to extract from.\r\n");
        return 1;
    } else {
        if( argv[2] != NULL && argv[3] != NULL && argv[4] != NULL && argv[5] != NULL) {
            files[0] = argv[2];
            files[1] = argv[3];
            files[2] = argv[4];
            files[2] = argv[5];
        }
        filename = argv[1];
    }
    read_file_to_buffer( argv[1] );
    if( buffer.empty()){
        printf("certgrabber<: You need to specify a valid filename to extract from.\r\n");
        return 2;
    }
    if( extract_tags() == 0 ) {
        int result = write_tags();
        if( result == 0 ) {
            printf("certgrabber<: All certificates and keys successfully extracted.\r\n");
        } else if( result == 1 ) {
            printf("certgrabber<: Unable to find a TLS auth key, but this isn't exactly an error.\r\n");
        } else if( result == 2 ) {
            printf("certgrabber<: Something went totally wrong with the certificate files.\r\n");
        }
    } else {
        printf("certgrabber<: Something went wrong while extracting the tags.\r\n");
        return 3;
    }
    return 0;
}

Компиляция и Здание:

Необходимо будет установить g ++ для создания этого

sudo apt-get install g++

Затем от терминала

g++ -c main.cpp -o main.o \ g++ -o certgrabber main.o 

У Вас теперь будет 'certgrabber' программа в папке.

Использование программы:

Извлечение для установки по умолчанию имен файлов (ca.crt, client.crt, client.key, tls-auth.key)

./certgrabber settings.ovpn

Извлечение к пользовательским именам файлов

./certgrabber settings.ovpn ca-1.crt client-1.crt client-1.key tls-1.key
2
ответ дан 11 October 2015 в 09:55

Проблема с ДОБАВЛЕНИЕМ VPN из сохраненного .ovpn файла все еще перестала работать.

Это возможно к ADD один вручную.

  1. Избранный Индикатор приложения NM,-> VPN-> Настраивает VPN->, Добавляют-> OpenVPN
  2. Вручную Имя Ваше Соединение и вводят IP-адрес для Вашего сервера
  3. Выбор тип authrntication: Для меня это - Пароль +, Сертификаты
  4. Вводят Ваше Имя пользователя и пароль
  5. Выбор Ваши сертификаты и ключи для следующих трех полей.
  6. Выбор, Усовершенствованный от нижней части
  7. , Вводят ПОРТ (в .ovpn файле, обычно в нижней части после IP-адреса в "XX" положение:

    удаленный ###.###.##.## XX

  8. , Если Ваша VPN является TCP, то флажок для "Использования соединение TCP"

  9. Выбор хорошо и затем Сохраняет.

На данном этапе соединение VPN должно быть перечислено в AppIndicator NM как опция. Выберите и протестируйте свое соединение. Я смог добавить TCP и тип UDP соединения, но оно взяло намного больше, чтобы сделать, чем оно имело бы, если бы импорт .ovpn сохраненный файл работал.

Позволяет надежде, они скоро фиксируют это, таким образом, я могу легко добавить другое соединение..., но по крайней мере это - работа вокруг этого, должен помочь людям, расстроенным как, я был.

0
ответ дан 11 October 2015 в 09:55

Я думал, что выбор отсутствовал к, но он просто переместился. Выберите добавляет связь сначала, затем вместо того, чтобы выбрать OpenVPN (как, я делал), прокрутите вниз дальше и выберите, последний выбор «импортируют спасенный vpn...»

enter image description here

нашел ответ здесь - http://torguard.net/knowledgebase.php?action=displayarticle&id=53

5
ответ дан 11 October 2015 в 09:55
  • 1
    xmodmap удерживается от использования и препятствуется. это все еще работает в средах X11, но не будет работать в Уэйленде и другие замены X11. использование основанных на XKB решений вместо этого высоко поощряется. – quixotic 29 March 2017 в 11:35

Я создал сценарий здесь для автоматизации выбирающего пароля & zip-файлы от нескольких vpn сайтов такой как vpnbook.com , извлекая ca, cert, и key данные из ovpn файлов, и обновляя opvn файлы так сертификаты должны просто импортировать для Вас. Это могло легко быть изменено для использования с другими поставщиками.

0
ответ дан 11 October 2015 в 09:55

Другие вопросы по тегам:

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