編集:VPN構成を追加してパッチが展開されたときに修正されました。 Linux/Ubuntuは現在使用していません。
Sudo apt-get install network-manager-openvpn
を実行してOpenVPN Network-Managerをインストールしました。これはgnomeパッケージもインストールします。
これにより、13.10未満の構成をインポートできましたが、新規インストールでは.conf
ファイルをポイントできますが、インポートをクリックするとマネージャーが消え、接続は追加されません。
私は手動で設定しようとしましたが、どの種類が機能しましたか?.
Sudo openvpn --config /path/to/openvpn.conf
を実行して端末を介して接続すると、ユーザー名、パスワードの入力を求められましたが、接続できません。
これを修正するにはどうすればよいですか? VPNが本当に必要です。どんな助けでも大歓迎です。
編集: バグ/ 1294899
再オープンキューの場合:誰かがこれに対して非常に良い回避策を持っているので、彼は編集を使用してこれを入れましたが、これは価値があります独自の答え:再開する投票...
あなたは正しい、それはネットワークマネージャーのバグです。しかし、私(そしてあなたも)はコマンドラインからopenvpnを実行することで回避できます。おそらくこれらの手順の少なくともいくつかを行ったことはありますが、念のため(そして他の人のために)完全な手順を順を追って説明します。
まず必要なパッケージをインストールします
Sudo apt-get install network-manager network-manager-openvpn network-manager-openvpn-gnome
ファイルの作成これらのファイルは常に安全かつ非公開にしておく必要があります
<ca>
と</ca>
の間のテキストをclient.ovpnからこのファイルにコピーします<cert>
と</cert>
の間のテキストをclient.ovpnからこのファイルにコピーします<key>
と</key>
の間のテキストをclient.ovpnからこのファイルにコピーします<tls-auth>
と</tls-auth>
の間のテキストをclient.ovpnからこのファイルにコピーします。この時点で、openvpnディレクトリの下に合計6つのファイルがあります(バックアップファイルを含む)5-9 bashスクリプトの実行方法を試したところです。 Whoop以下をテキストファイルにコピーします。
#!/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
Client.ovpnファイルとともに、ファイルをopenvpnconvertとしてopenvpnフォルダーに保存しました。コマンド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
最後に、コマンドラインインターフェイス(CLI)からopenvpnを実行する必要があります
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
私はオプションが欠けていると思ったが、それはただ動いた。最初に接続の追加を選択し、次にOpenVPNを選択する代わりに(私がやっていたように)、さらに下にスクロールして、最後のオプション「保存されたvpnをインポート...」を選択します
ここで答えが見つかりました- http://torguard.net/knowledgebase.php?action=displayarticle&id=5
これらの接続データをインポートしようとしたことはありませんが、さまざまな場面で以下を使用しました。
whatever.conf
を.crt
ファイルと資格情報と一緒に/etc/openvpn
に配置し、Sudo service openvpn whatever start|stop
を使用してVPN接続を開始/停止します
接続データを手動で入力して、NetworkManagerを介してVPN接続を作成します。接続の構成ファイルは/etc/NetworkManager/system-connections
に配置され、後で編集できます。
抽出スクリプト:
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
保存された.ovpnファイルからのVPNの追加に関する問題は依然として失敗します。
手動で追加することができます。
PORTを入力します(通常、「XX」位置のIPアドレスの後の下部にある.ovpnファイルに:
リモート###。###。##。## XX
VPNがTCPの場合、「TCP接続を使用」のチェックボックスをオンにします
この時点で、VPN接続はオプションとしてNM AppIndicatorにリストされているはずです。接続を選択してテストします。 TCPとUDPタイプの接続を追加できましたが、インポートした.ovpnで保存したファイルが機能する場合よりも多くの作業が必要になりました。
他の接続を簡単に追加できるようにすぐに修正されることを願っています...しかし、少なくともこれは、私のようにイライラする人々を助けるための回避策です。
スクリプトを作成しました herevpnbook.com などのいくつかのvpnサイトからパスワードとZipファイルの取得を自動化し、ca
、cert
、 key
データをovpnファイルから取得し、証明書がインポートされるようにopvnファイルを更新します。他のプロバイダーで使用するために簡単に変更できます。