Openvpn नए 14.04 इंस्टॉलेशन पर कॉन्फ़िगरेशन आयात नहीं कर सकता है


20

संपादित करें: इसे तब वापस फिक्स्ड किया जाता है, जब पैच वीपीएन कॉन्फिगर के साथ जुड़ जाता है। अब लिनक्स / उबंटू का उपयोग नहीं करते हैं।

मैंने OpenVPN नेटवर्क-प्रबंधक स्थापित करके किया है: sudo apt-get install network-manager-openvpnजो कि गनोम पैकेज भी स्थापित करता है।

इसने 13.10 के तहत कॉन्फ़िगरेशन आयात करना संभव बना दिया, लेकिन मेरे नए इंस्टॉलेशन पर, मैं .confफ़ाइलों को इंगित कर सकता हूं , लेकिन आयात पर क्लिक करने के बाद, प्रबंधक बस गायब हो जाता है और कोई कनेक्शन नहीं जोड़ा जाता है।

मैंने मैन्युअल रूप से इसे स्थापित करने की कोशिश की, किस तरह का काम किया, लेकिन मेरा कनेक्शन थोड़ी देर के बाद गिरता रहता है, मुझे लगता है क्योंकि मैंने मैन्युअल रूप से बहुत विस्तृत कॉन्फ़िगरेशन के हर अंतिम विवरण को सेट नहीं किया था।

टर्मिनल के माध्यम से कनेक्ट करके: sudo openvpn --config /path/to/openvpn.confमुझे एक उपयोगकर्ता नाम, फिर पासवर्ड के लिए कहा, लेकिन फिर कनेक्ट नहीं होता है।

मुझे इसे ठीक करने के लिए क्या करना चाहिए? मुझे वास्तव में अपने वीपीएन की आवश्यकता है, किसी भी मदद की गहराई से सराहना की जाती है।

संपादित करें: यह एक बग / 1294899 है

पुन: खुली कतार के लिए: किसी के पास इसके लिए एक बहुत अच्छा काम है और उसने इसे संपादित करने के लिए एक संपादन का उपयोग किया है, लेकिन यह अपने स्वयं के जवाब के योग्य है: फिर से खोलने के लिए मतदान ...


इसे कमांडलाइन से शुरू करें, देखें कि क्या कोई त्रुटि दिखाई देती है और इसके लिए खोज करें (या इसे इस प्रश्न में जोड़ें)।
रिन्जविंड

जवाबों:


26

आप सही हैं, यह एक नेटवर्क मैनेजर बग है। लेकिन मैं (और आप भी) कमांड लाइन से ओपनवपन चलाकर इसके चारों ओर पहुंच सकते हैं। आपने शायद इन चरणों में से कम से कम कुछ किया है, लेकिन सिर्फ मामले में (और दूसरों के लाभ के लिए) मैं एक पूरा कदम-दर-चरण करूँगा।

पहले आवश्यक पैकेज स्थापित करें

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

फ़ाइलें बनाएँ इन फ़ाइलों को हर समय सुरक्षित और निजी रखा जाना चाहिए

  1. अपने होम निर्देशिका में Openvpn नामक एक निर्देशिका बनाएं अपनी VPN क्लाइंट फ़ाइल (बदला हुआ क्लाइंट .ovpn) को निर्देशिका Openvpn में कॉपी करें
  2. वैकल्पिक: फाइल की एक मूल प्रति अपने पास रखें - इसे client.ovpn.orig कहें
  3. आगे हम ओपनवीपीएन डायरेक्टरी के तहत 4 फाइलें बनाएंगे।
  4. निम्न चरणों को स्वचालित करने के लिए इस फ़ाइल के नीचे देखें
  5. एक पाठ संपादक में client.ovpn फ़ाइल खोलें।
  6. एक फ़ाइल ca.crt बुलाया बनाएँ - के बीच पाठ की प्रतिलिपि <ca>और </ca>client.ovpn से इस फ़ाइल में
  7. एक फ़ाइल client.crt बुलाया बनाएँ - के बीच पाठ की प्रतिलिपि <cert>और </cert>client.ovpn से इस फ़ाइल में
  8. एक फ़ाइल जिसे client.key कहा जाता है बनाएं - क्लाइंट <key>और </key>ov.n के बीच के टेक्स्ट को इस फाइल में कॉपी करें
  9. Ta.key नामक एक फ़ाइल बनाएँ - इस फ़ाइल में client.ovpn के बीच <tls-auth>और पाठ को कॉपी करें </tls-auth>। इस बिंदु पर मेरे पास मेरी ओपनवीएनपी निर्देशिका (बैकअप फ़ाइल सहित) के तहत कुल 6 फाइलें हैं

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

मैंने क्लाइंट.ovpn फ़ाइल के साथ ओपनवीपीएन फ़ोल्डर में ओपनवोनकॉनट के रूप में फाइल को सेव किया। इसे कमांड के साथ निष्पादन योग्य बनायें chmod a + x:

chmod a+x openvpnconvert

और फिर इसे चलाया:

./openvpnconvert

Client.ovpn फ़ाइल को संशोधित करें

## -BEGIN RSA SIGNATURE से ठीक पहले- लाइन नीचे की पंक्तियों को जोड़ती है और बचाती है

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

अंत में, आपको कमांड लाइन इंटरफ़ेस (सीएलआई) से ओपनवैप चलाने की आवश्यकता है

Openvpn फ़ोल्डर में cd

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


धन्यवाद, यह वास्तव में अच्छा है। मैं वास्तव में Android के लिए एक .ovpn विन्यास है। दुख की बात है कि यह मेरे साथ काम नहीं करता है, क्योंकि उपयोगकर्ता नाम / पासवर्ड कॉम्बो को ओपनवेपएन सिस्टम द्वारा स्वीकार नहीं किया जाता है, एक पुष्ट बग भी, मेरे विशिष्ट कॉन्फ़िगरेशन के लिए। वास्तव में वास्तव में बेवकूफ और निराश, मुझे एकमात्र आशा छोड़ देता है, कि यह जल्द ही तय हो जाएगा, उम्मीद है।
vaioonbuntu

मैंने अभी कोड के माध्यम से देखा है, और ऐसा प्रतीत होता है कि मेरा वीपीएन प्रदाता उपयोगकर्ता नाम पासवर्ड प्रकार के कॉन्फ़िगरेशन का भी उपयोग करता है। यदि उनके पास एक .ovpn फ़ाइल है जिसे आप डाउनलोड कर सकते हैं, तो आपको अभी भी उपरोक्त तकनीक का उपयोग करने में सक्षम होना चाहिए। उंगलियां वैसे भी पार हो गईं।
Tamsyn माइकल

1
मैं व्यक्तिगत रूप से बीयर का पैसा दूंगा जो कभी भी इन फ़ाइलों को परिवर्तित करने के लिए एक स्क्रिप्ट लिखता है - क्या दर्द है *!
जौन सेबेस्टियन

@jowansebastian woop, बस काम करना था कि कैसे करना है। मैं इसे पिछले उत्तर के अंत में जोड़ दूंगा।
टेमिसिन माइकल

मैंने ठीक यही किया और कुछ काम नहीं करता। मुझे ट्यून एडाप्टर मिलता है लेकिन मैं किसी भी आंतरिक संसाधनों तक नहीं पहुंच सकता।
क्रिश्चियन बोंगियोरो

5

मुझे लगा कि विकल्प गायब था, लेकिन यह बस चला गया। पहले ऐड कनेक्शन चुनें, फिर ओपनवीपीएन (जैसे मैं कर रहा था) चुनने के बजाय, नीचे स्क्रॉल करें और अंतिम विकल्प चुनें "एक बचाया वीपीएन आयात करें ..."

यहाँ छवि विवरण दर्ज करें

यहाँ उत्तर मिला - http://torguard.net/knowledgebase.php?action=displayarticle&id=53


यह सिर्फ काम किया, धन्यवाद! यह स्वीकृत उत्तर होना चाहिए।
विन्केन्जो पीआई

2

मैंने कभी भी इन कनेक्शन डेटा को आयात करने की कोशिश नहीं की, लेकिन मैंने विभिन्न अवसरों पर निम्न का उपयोग किया है:

  • फ़ाइल और क्रेडेंशियल्स को whatever.confएक साथ रखें और वीपीएन कनेक्शन को शुरू / बंद करें.crt/etc/openvpnsudo service openvpn whatever start|stop

  • मैन्युअल रूप से कनेक्शन डेटा दर्ज करके NetworkManager के माध्यम से वीपीएन कनेक्शन बनाएं। कनेक्शन के लिए कॉन्फ़िगरेशन फ़ाइल को रखा जाएगा /etc/NetworkManager/system-connectionsऔर बाद में इसे संपादित किया जा सकता है।


2

निष्कर्षण स्क्रिप्ट:

टैमसिन माइकल के उपयोगी उत्तर के जवाब में मैंने निष्कर्षण कार्य को स्वचालित करने के लिए एक छोटा सा कार्यक्रम बनाया। यह ओपनवीपीएन के लिए आवश्यक उपयुक्त फाइलों को आउटपुट करता है और फिर इन फाइलनामों को मूल सेटिंग्स फाइल में जोड़ देता है।

//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-dif.key)

./certgrabber settings.ovpn

कस्टम फ़ाइलनाम में निकालें

./certgrabber settings.ovpn ca-1.crt client-1.crt client-1.key tls-1.key

धन्यवाद। यह कमाल का है। @ user1081275 आपको बीयर के पैसे देता है। =)
टैमिसिन माइकल

जब मैं इसे शुरू करता हूं तो आपका प्रोग्राम क्रैश हो जाता है: सेगमेंटेशन फॉल्ट (कोर डंप)
डाइट पिसारेवस्की

मैं संकलन करने के लिए g ++ (GCC) 5.1.1 का उपयोग कर रहा हूं। मैंने सिर्फ परीक्षण किया और कोई समस्या नहीं हुई।
woahguy

1

सहेजे गए .ovpn फ़ाइल से किसी VPN को जोड़ने का समस्या अभी भी विफल है।

मैन्युअल रूप से एक जोड़ें करना संभव है।

  1. NM App संकेतक, -> VPN -> कॉन्फ़िगर करें VPN -> Add -> OpenVPN का चयन करें
  2. अपने कनेक्शन को मैन्युअल रूप से नाम दें और अपने सर्वर के लिए आईपी पता दर्ज करें
  3. चयन के प्रकार: मेरे लिए यह पासवर्ड + प्रमाण पत्र है
  4. अपना यूज़रनेम और पासवर्ड प्रविष्ट करें
  5. अगले तीन बक्सों के लिए अपने प्रमाणपत्र और कुंजियों का चयन करें।
  6. नीचे से उन्नत का चयन करें
  7. "XX" स्थिति में आईपी पते के बाद नीचे (आमतौर पर .ovpn फ़ाइल में) PORT दर्ज करें:

    रिमोट ###। ###। ##। ## XX

  8. यदि आपका वीपीएन टीसीपी है, तो "टीसीपी कनेक्शन का उपयोग करें" के लिए बॉक्स चेक करें।

  9. ठीक चुनें और फिर सहेजें।

इस बिंदु पर, वीपीएन कनेक्शन को NM AppIndicator में एक विकल्प के रूप में सूचीबद्ध किया जाना चाहिए। अपने कनेक्शन का चयन करें और परीक्षण करें। मैं एक टीसीपी और एक यूडीपी प्रकार के कनेक्शन को जोड़ने में सक्षम था, लेकिन यदि आयात .ovpn सहेजी गई फ़ाइल ने काम किया, तो इसकी तुलना में यह बहुत अधिक था।

आशा है कि वे इसे जल्द ही ठीक कर लेंगे ताकि मैं आसानी से अन्य कनेक्शन जोड़ सकूं ... लेकिन कम से कम यह एक ऐसा काम है जिससे लोगों को निराश होना चाहिए जैसे मैं था।


0

मैं कोई स्क्रिप्ट बनाने के यहाँ प्राप्त कर रहा है पासवर्ड को स्वचालित और इस तरह के रूप में कई वीपीएन साइटों से फ़ाइलें ज़िप करने vpnbook.com , निकालने ca, certऔर keyovpn फ़ाइलों से डेटा, और इसलिए प्रमाणपत्र सिर्फ तुम्हारे लिए आयात करना चाहिए opvn फ़ाइलों को अपडेट। इसे आसानी से अन्य प्रदाताओं के साथ उपयोग के लिए संशोधित किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.