このチュートリアルでは、自家製のOpenVPNサーバーとWindows PCでObfsproxyをセットアップする方法をご案内します。これにより、検閲者とファイアウォールがディープパケットインスペクションを使用して、OpenVPNを使用してトラフィックを暗号化しているかどうかを判断できなくなります。.
このチュートリアルでは、機能しているOpenVPNサーバーとWindowsクライアントがすでにAmazon Web Services EC2インスタンスにセットアップされていることを前提としています。その方法については、以前のOpenVPNサーバーチュートリアルをご覧ください。.
Obfsproxyは、中国などの国の検閲者によってVPNがブロックされるのを防ぐ必要があります。 NetflixでのVPNの禁止も回避することを確認しました.
始める前に
難読化プロキシの略称であるObfsproxyは、Torコミュニティで採用されました。彼らの言葉で:
「obfsproxyは、クライアントとブリッジ間のTorトラフィックを変換することにより、検閲を回避しようとするツールです。このようにして、通常、クライアントとブリッジ間のトラフィックを監視する検閲官は、実際のTorトラフィックではなく、無邪気に見える変換されたトラフィックを確認します。
ただし、Obfsproxyは実際にはTorから独立しているため、OpenVPNトラフィックを難読化するためにも使用できます。.
ObfsproxyをOpenVPNと連携させるには、クライアント側とサーバー側の両方で設定する必要があります。 NordVPNやAirVPNなどの一部のVPNプロバイダーは、事前に構成されたサーバーを提供するため、クライアント側のみを構成する必要があります。このチュートリアルでは両方を説明します.
必要なもののリストは次のとおりです。
- 前のチュートリアルと同様のAmazon Linux EC2インスタンス上の機能的なOpenVPNサーバー
- OpenVPN Connect GUI(クライアント側アプリ)
- パテ
- Python 2.7
- Python 2.7用Microsoft C ++コンパイラ
- Windows用OpenSSLライト
- ProxySwitchy Sharpまたは同等のプロキシソフトウェア
Windowsでのクライアント側のObfsproxy構成
VPNプロバイダーが事前に構成済みのサーバーを既に提供している場合、一部の人はサーバー側のセットアップを行う必要がないため、クライアント側の構成から始めます。.
事前設定
ありがたいことに、NordVPNは、必要な依存関係のほとんどを単一の.zipファイルにまとめて提供してくれました。ここからダウンロードしてください.
Python 2.7をデフォルト設定でデフォルトディレクトリにインストールすることから始めます。 ObfsproxyはPythonプログラムであるため、インストールする必要があります。 3.3や3.4などのより新しいバージョンのPythonを使用している場合は、2.7をインストールすることをお勧めします。インストールファイルは、NordVPNのzipファイルのステップ3フォルダーにあります(ステップ1および2のフォルダーはスキップしています)。.
次に、ステップ4フォルダーからPython 2.7用Microsoft C ++コンパイラーをインストールする必要があります。それ以降のバージョンのPythonには、このようなコンパイラはありません。 MS Visual StudioまたはNumbyパッケージを使用して回避策を見つけることができるかもしれませんが、Python 2.7をインストールするだけで苦痛は大幅に軽減されました。.
デフォルトの設定とディレクトリを使用してC ++コンパイラをインストールしたら、ステップ5フォルダーに進みます。すべてのデフォルト設定を使用して、OpenSSL Lightを再度インストールします。インストール後に寄付を求められる場合があります。 [完了]をクリックして、寄付を希望しない場合はポップアップウィンドウを閉じます.
このページをブックマークし、コンピューターを再起動して、このページをもう一度開きます.
ObfsproxyとOpenVPNのセットアップ
これで、Obfsproxyを実行するために必要なものはすべて揃いましたが、OpenVPNで使用できるように設定する必要があります。 OpenVPNディレクトリの既存の.ovpnファイルを変更することから始めます。 OpenVPNをまだ設定していない場合は、以前のチュートリアルを参照してください。 OpenVPNをデフォルトのディレクトリにインストールした場合、設定ファイルはC:/ Program Files / OpenVPN / configにあります。.
メモ帳または別のテキストエディターを見つけて右クリックし、[管理者として実行]を選択します。OpenVPNサーバーへの通常の接続に使用する構成ファイルを開きます。ファイルをクリック > 名前を付けて保存し、別の名前を付けて、元のファイルをめちゃくちゃにすることなく作業できるコピーを作成します.
構成ファイルを次のように変更します。
proto tcp-client
リモート8080
ポート1194
dev tun1
秘密のovpn.key
リダイレクトゲートウェイdef1
ifconfig 10.4.0.2 10.4.0.1
socks-proxy-retry
socks-proxy 127.0.0.1 10194
下部に2行が追加され、さらにリモート回線の最後にポート番号が追加されていることに注意してください。 Amazon EC2インスタンスのIPアドレスに置き換えます。 AmazonでエラスティックIPを設定していない限り、このアドレスはインスタンスを停止および起動するたびに変更されるため、必要に応じて変更することを忘れないでください。リモート回線では、ポート番号は予約されたポートの範囲外であれば何でもかまいません。ほとんどすべてのWebサーバーと互換性があるため、8080を使用していますが、OpenVPN wikiでは21194が推奨されています。ここに入力したものは、後でサーバー側で設定したものと一致する必要があることを覚えておいてください.
VPNプロバイダーが所有する事前構成されたサーバーに接続する場合、構成ファイルが提供されます(NordVPNユーザー用のステップ2フォルダー).
古い構成ファイルを上書きしないように、新しい構成ファイルを保存します。また、テキストエディタが.txtをファイル名に自動的に追加しないようにしてください。 .ovpnファイルである必要があります.
OpenVPNが構成されたので、Obfsproxyをインストールして実行する必要があります。これが、新しいPythonインストールの出番です。Windowsの検索バーに「コマンドプロンプト」と入力します。コマンドプロンプトアプリケーションを右クリックし、「管理者として実行」を押します。ターミナルで、次のコマンドを1行ずつ入力します。それぞれの後にEnterを押す.
cd C:\ Python27 \ Scripts
pip install –-upgrade pip
pip install obfsproxy
obfsproxy –log-min-severity = info obfs2 –shared-secret = socks 127.0.0.1:10194
2番目のコマンドの後、エラーまたは警告が表示される場合があります。今のところ無視してください.
ここで、選択したパスワードに置き換える必要があります。このパスワードは後で必要になるので、覚えておくか書き留めてください。 VPNサービスが提供する事前構成されたサーバーに接続している場合、このコマンドが提供されます.
最後の行の後、コマンドプロンプトは、スクリーンショットのように、obfsproxyトラフィックをリッスンしていることを示しているはずです。最初の試行で自分のパスワードを入力するのを忘れたスクリーンショットに注意してください.
Scriptsディレクトリに移動し(最初のコマンド)、Obfsproxyコマンドを入力し(最後のコマンド)、Obfsproxyを使用するときはいつでもコマンドプロンプトを開いたままにする必要があります。.
プロキシのセットアップ(オプション)
編集:この手順は、Obfsproxyが機能するために必要ではありませんが、Obfsproxy + VPN接続を使用して、米国外(またはVPNサーバーが存在する国)からNetflixやその他のストリーミングビデオサイトを視聴する場合に必要です。そうしないと、Netflixが誤った地域に設定されます.
クライアント側で最後に行う必要があるのは、プロキシ接続を設定することです。これはアプリケーションごとに異なります。 Windowsインターネット設定で設定できますが、アプリごとに設定したいです。インターネットを使用するネイティブアプリでは、通常、設定のどこかにプロキシを設定できます。フィールドは次のとおりです。
- SOCKSホスト:127.0.0.1
- ポート:8080(または、リモート回線のOpenVPN構成ファイルに指定したもの)
- SOCKSバージョン5(SOCKS5)
ブラウザでは、これを設定する最も簡単な方法はプロキシ拡張機能を使用することです。 ChromeでProxy Switchy Sharpを使用する方法を紹介します.
ProxySwitchy設定で、新しいプロファイルを作成します。 [手動構成]を選択した状態で、下の図のように上記の設定を入力します。好きな名前を付けてください。サーバーとの接続が確立されるまでこれをオンにしないので、しっかりと保持してください.
Linux EC2インスタンスでのobfsproxyサーバー構成
PCを接続する準備が整ったので、サーバーを準備する必要があります.
AWSセキュリティグループ
サーバーにobfsproxyをインストールして実行する前に、サーバーのセキュリティグループに新しいルールを追加して、EC2インスタンスのファイアウォールがトラフィックをブロックしないようにする必要があります。これを行うには、AWSアカウントにログインし、[EC2]をクリックします。 [ネットワークとセキュリティ]で、[セキュリティグループ]に移動します.
ここで、新しいセキュリティグループを作成してサーバーに追加するか、既存のセキュリティグループを変更するかを選択できます。ルールを右クリックして、「受信ルールの編集」を選択します。 [タイプ]で、すべてのTCPトラフィックを選択し(注:このチュートリアルを更新したため、スクリーンショットのカスタムカスタムルールを無視します)、ソースを[My IP]または接続するデバイスのIPに設定しますと。次に、右クリックして[送信ルールの編集]に移動します。[種類]で、[すべてのトラフィック]のドロップダウンオプションを選択します。
新しいセキュリティグループを作成した場合は、左側のサイドバーの[インスタンス]をクリックし、VPNインスタンスを右クリックし、[ネットワーク]まで下にスクロールして、[セキュリティグループの変更]をクリックします。新しいセキュリティグループを確認して[保存]をクリックします.
obfsproxyサーバーのセットアップ
PuTTyを使用して、SSH経由でサーバーに接続します。これを行う方法を覚えていない場合、またはプロファイルを保存しなかった場合は、以前のチュートリアルを参照してください。 Amazon Linux AMIサーバーディストリビューションでは、ユーザー名は「ec2-user」であることを忘れないでください。次のコマンドを使用してOpenVPNを実行します。
sudoサービスopenvpn開始
前のチュートリアルに従って、サーバー上のOpenVPN構成ファイル(etc / openvpn / openvpn.conf)でポート1194が開いていることを確認してください。.
Linux 14.04サーバーディストリビューションを使用している場合、Pythonは既にインストールされているはずです。 PuTTyターミナルで、次のコマンドを一度に1行ずつ入力し、それぞれの後にEnterキーを押します。
sudo yum install gcc
sudo pip install obfsproxy
obfsproxy –log-min-severity = info obfs2 –dest = 127.0.0.1:1194 –shared-secret = server 0.0.0.0:8080
最初のコマンドでは、Linuxの古いバージョンは「yum」の代わりに「apt-get」を使用する場合があります.
最後のコマンドで、クライアント側で使用したものと同じパスワードに置き換えることを忘れないでください.
この端末では、コマンドプロンプトと同様のメッセージが表示され、サーバーがobfsproxyトラフィックをポート8080でリッスンしていることを示します。.
Obfsproxyを介した接続
接続するように設定されています。ローカルマシン(コマンドプロンプト)とサーバー(PuTTy)の両方でObfsproxyが実行されている状態で、OpenVPN GUIを実行します。それを右クリックし、新しい設定を使用して接続します。 OpenVPNアイコンが緑色に変わり、割り当てられたIPの通知が表示されます。.
Netflixまたはその他のジオブロックされたコンテンツを視聴する場合は、アプリケーションでプロキシ設定を有効にします。 ChromeのProxy Switchyの場合、右上隅のアイコンをクリックして、上記のオプションセクションで作成したプロファイルを選択します。 Windowsインターネット設定でプロキシを追加することもできます.
おめでとう! Openfsトラフィックは、Obfsproxyのおかげで通常のHTTPトラフィックと区別できなくなりました.
プロセスを自動化する
結論付けたかもしれませんが、使用するたびにクライアント側でobfsproxyを実行すると、少し面倒になります。プロセスを自動化するために、1人のユーザーがObfsproxyを起動時に起動するサービスとして実行するWindowsインストーラーを作成しました。こちらからダウンロードして手順を確認できます.
「disguise-glasses.jpg」by r。 CC BY 2.0でライセンスされたnial bradshaw
バイスにアクセスする場合は、プロキシを設定する必要があります。 ProxySwitchy Sharpを使用して、プロキシを設定する方法を説明します。. ProxySwitchy Sharpをダウンロードしてインストールします。. Chromeの設定を開き、[拡張機能]を選択します。. ProxySwitchy Sharpを有効にします。. [オプション]を選択し、[新しいプロキシプロファイル]をクリックします。. プロファイル名を入力し、[SOCKS5]を選択します。. ホストに127.0.0.1を入力し、ポートに10194を入力します。. [保存]をクリックします。. Chromeのアドレスバーに「chrome://settings」と入力し、[詳細設定]をクリックします。. [ネットワーク]を選択し、[プロキシ設定の変更]をクリックします。. [手動でプロキシを設定する]を選択し、[SOCKS5]を選択します。. ホストに127.0.0.1を入力し、ポートに10194を入力します。. [保存]をクリックします。. これで、プロキシが設定されました。Netflixなどのストリーミングサイトにアクセスする場合は、ProxySwitchy Sharpを使用して、プロキシを有効にする必要があります。