openvpn yeni 14.04 kurulumunda yapılandırmaları içe aktaramıyor


20

Düzenleme: Düzeltme eki, ek VPN config ile birlikte kullanıma sunulduğunda düzeltildi. Artık Linux / Ubuntu kullanmayın.

OpenVPN Network Manager'ı aşağıdakileri yaparak yükledim: sudo apt-get install network-manager-openvpngnome paketini de yükleyen:.

Bu, 13.10'un altındaki yapılandırmaları içe aktarmayı mümkün kıldı, ancak yeni yüklememde .confdosyaları gösterebilirim , ancak içe aktarmayı tıkladıktan sonra yönetici yalnızca kaybolur ve bağlantı eklenmez.

Hangi tür çalıştığını elle ayarlamaya çalıştım, ancak bir süre sonra bağlantım kesiliyor, sanırım çok detaylı bir yapılandırmanın her detayını manuel olarak ayarlamadım.

Yaparak terminali sudo openvpn --config /path/to/openvpn.confbağlamak : benden bir kullanıcı adı, sonra şifre istedi, fakat sonra bağlanmıyor.

Bunu düzeltmek için ne yapabilirim? Gerçekten VPN'ime ihtiyacım var, her türlü yardım derinden takdir edilir.

Düzenleme: Bu bir hata / 1294899

Yeniden açılma kuyruğu için: Birisi bunun için son derece iyi bir iş çıkarıyor ve bunu koymak için bir düzenleme kullandı, ancak bu kendi cevabına değer: yeniden açmak için oy kullanmak ...


Komut satırından başlatmak için bir hata olup olmadığını görün ve arayın (veya bu soruya ekleyin).
Rinzwind

Yanıtlar:


26

Haklısın, bu bir ağ yöneticisi hatası. Ama ben (ve sen de) komut satırından openvpn komutunu çalıştırarak bunu çözebilirim. Muhtemelen bu adımlardan en az bir kaçını yaptınız, ancak sadece durumda (ve başkalarının yararına) adım adım tam bir adım atacağım.

İlk önce gerekli paketleri kurun

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

Dosya Oluşturun Bu dosyalar her zaman güvenli ve gizli tutulmalıdır

  1. Ev dizininizde openvpn adlı bir dizin oluşturun VPN istemci dosyanızı (yeniden adlandırılmış client.ovpn) openvpn dizinine kopyalayın
  2. İsteğe bağlı: Dosyanın orijinal bir kopyasını saklayın - bunu client.ovpn.orig olarak adlandırın.
  3. Daha sonra openvpn dizini altında 4 dosya oluşturacağız.
  4. Aşağıdaki adımları nasıl otomatikleştireceğinizi öğrenmek için bu dosyanın altına bakın.
  5. Client.ovpn dosyasını bir metin düzenleyicide açın.
  6. Ca.crt adlı bir dosya oluşturun - arasındaki metni kopyalamak <ca>ve </ca>bu dosyaya client.ovpn dan
  7. Client.crt adlı bir dosya oluşturun - arasındaki metni kopyalamak <cert>ve </cert>bu dosyaya client.ovpn dan
  8. Client.key adlı bir dosya oluşturun - arasındaki metni kopyalamak <key>ve </key>bu dosyaya client.ovpn dan
  9. Ta.key adında bir dosya oluşturun - bu dosyaya client.ovpn ile arasında <tls-auth>ve içindeki metni kopyalayın </tls-auth>Bu noktada, openvpn dizininin altında (yedekleme dosyası dahil) toplam 6 dosya var

5-9 Ben sadece bash betiği nasıl çalıştım. Whoop Aşağıdakileri bir metin dosyasına kopyalayın:

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

Dosyayı, client.ovpn dosyasıyla birlikte openvpn klasörüne openvpnconvert olarak kaydetmiştim. Chmod a + x komutuyla çalıştırılabilir kıldı:

chmod a+x openvpnconvert

Ve sonra koştu:

./openvpnconvert

Client.ovpn dosyasını değiştirin

## —–BEGIN RSA SIGNATURE—– satırından hemen önce aşağıdaki satırları ekleyin ve tasarruf edin

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

Son olarak, Komut Satırı Arayüzünden (CLI) openvpn komutunu çalıştırmanız gerekir.

openvpn klasörüne cd

cd openvpn

Belirttiğiniz dosya adlarını kullanıyorsanız openvpn komutunu çalıştırın, aşağıya bakın, aksi takdirde dosya adlarınızı kullanın.

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

Şu anda tam olarak bu adımları kullanarak kurduğum OpenVPN'i çalıştırıyorum. Umarım diğerleri için eşit derecede iyi çalışır.

Kaynaklar:

Dosya Oluşturma - http://naveensnayak.wordpress.com/2013/03/04/ubuntu-openvpn-with-ovpn-file/

Komut Satırından Çalıştırma - http://ubuntuforums.org/showthread.php?t=2206811


teşekkür ederim, bu gerçekten çok hoş. Aslında android için bir .ovpn yapılandırması var. ne yazık ki, benim özelliğim için, kullanıcı adı / parola combo openvpn sistemi tarafından kabul edilmediğinden, onaylanmış bir hata da benimkimle çalışmıyor. Gerçekten çok aptalca ve sinir bozucu, bana bu umudun hemen çözüleceği tek umudunu veriyor.
vaioonbuntu

Koda yeni baktım ve görünen o ki VPN sağlayıcım da bir kullanıcı adı şifre tipi konfigürasyon kullanıyor. Eğer indirebileceğiniz bir .ovpn dosyasına sahiplerse, yukarıdaki tekniği kullanmaya devam edebilmelisiniz. Parmaklar yine de geçti.
Tamsyn Michael,

1
Şahsen bu dosyaları dönüştürmek için bir senaryo yazanlara bira parası vereceğim - * ne acı!
jowan sebastian

@jowansebastian woop, sadece nasıl yapılacağını çalıştım. Bunu önceki cevabın sonuna ekleyeceğim.
Tamsyn Michael

Tam olarak bunu yaptım ve bir şey çalışmıyor. Tun0 adaptörünü alıyorum ancak hiçbir iç kaynağa erişemiyorum.
Christian Bongiorno,


2

Bu bağlantı verilerini içe aktarmayı hiç denemedim, ancak aşağıdakileri farklı durumlarda kullandım:

  • yerleştirmek whatever.confile buluşmanızı .crtdosyası ve içinde kimlik bilgileri /etc/openvpnve başlangıç / ile VPN bağlantısı durdurmaksudo service openvpn whatever start|stop

  • Bağlantı verilerini manuel olarak girerek NetworkManager üzerinden VPN bağlantısını oluşturun. Bağlantının yapılandırma dosyası yerleştirilir /etc/NetworkManager/system-connectionsve daha sonra düzenlenebilir.


2

Ekstraksiyon Komut Dosyası:

Tamsyn Michael'in yararlı cevabına cevaben, çıkarma işlemini otomatikleştirmek için küçük bir program yaptım. Openvpn için gereken uygun dosyaları verir ve ardından bu dosya adlarını orijinal ayarlar dosyasına ekler.

//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;
}

Derleme ve Yapı:

Bunu oluşturmak için g ++ yüklemeniz gerekecek

sudo apt-get install g++

Sonra terminalden

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

Şimdi klasörde 'certgrabber' programı olacak.

Program Kullanımı:

Varsayılan dosya adlarına ayıkla (ca.crt, client.crt, client.key, tls-auth.key)

./certgrabber settings.ovpn

Özel dosya adlarına ayıkla

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

Teşekkür ederim. Bu harika. @ user1081275 şimdi size bira para borcu var. =)
Tamsyn Michael

başladığımda programınız çöküyor: Segmentasyon hatası (çekirdek atıldı)
Dieter Pisarewski

Derlemek için g ++ (GCC) 5.1.1 kullanıyorum. Sadece test ettim ve bir sorun çıkmadı.
woahguy

1

Kaydedilen bir .ovpn dosyasından VPN EKLEME ile ilgili sorun hala başarısız oluyor.

Birini elle eklemek mümkündür.

  1. NM Uygulama Göstergesini Seçin, -> VPN -> VPN'i Yapılandır -> Ekle -> OpenVPN
  2. Bağlantınızı El ile Adlandırın ve sunucunuzun IP Adresini girin
  3. Yetki belgesini seçiniz: Benim için Şifre + Sertifika
  4. Kullanıcı adınızı ve şifrenizi giriniz
  5. Sonraki üç kutu için sertifikalarınızı ve anahtarlarınızı seçin.
  6. Alttan Gelişmiş'i seçin
  7. PORT'u girin (.ovpn dosyasına, genellikle "XX" konumundaki IP adresinden sonra en altta:

    uzak ###. ###. ##. ## XX

  8. VPN'iniz TCP ise, "Bir TCP Bağlantısı Kullan" onay kutusunu işaretleyin.

  9. Tamam'ı ve ardından Kaydet'i seçin.

Bu noktada, VPN bağlantısı, NM AppIndicator'da bir seçenek olarak listelenmelidir. Bağlantınızı seçin ve test edin. Bir TCP ve UDP türü bir bağlantı ekleyebildim, ancak içe aktarılan .ovpn kaydedilen dosyanın işe yarayıp yaramayacağından çok daha fazla zaman aldı.

Umarım kısa sürede bunu düzeltebilirler, böylece kolayca başka bağlantılar ekleyebilirim ... ama en azından bu, benim gibi hüsrana uğramış insanlara yardım etmesi gereken bir iş.


0

Bir komut dosyasını oluşturan burada getiriliyor şifreyi otomatik & gibi birçok vpn sitelerinden dosyaları sıkıştırmak üzere vpnbook.com ayıklanması, ca, certve keyovpn dosyalarından verileri ve certs sadece sizin için ithal bu yüzden opvn dosyaların güncellenmesi. Diğer sağlayıcılarla kullanım için kolayca değiştirilebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.