序章

より多くのプライバシーでインターネットを閲覧する理由は、それを達成する方法と同じくらい異なります。

このチュートリアルでは、サーバー上に仮想プライベートネットワーク(VPN)をセットアップして、インターネットブラウジングエクスペリエンスの3つの重要なコンポーネントを保護する方法について詳しく説明します。

  • 暗号化されていないトラフィックを保護し、Cookieやその他のトラッカーを防止し、ローカルコンピューターのIPアドレスをマスクすることにより、Webトラフィックをプライベート化します。
  • VPNからGoogleのDNSサーバーに直接送信することにより、ローカルISPがDNSクエリをログに記録しないようにします
  • ウイルスや悪意のあるアプリケーションをスキャンしてアクセスを防止します

商用のVPNサーバーを使用するのではなく、独自のVPNサーバーを実行することで、閲覧履歴のログ記録を回避することもできます(選択しない限り)。 最後に、物理的な場所を選択できるため、遅延を最小限に抑えることができます。 ただし、VPNの使用は通常、直接インターネット接続を使用するよりも遅くなります。

これを行うには、Debian8サーバーに次のアプリケーションをインストールして構成します。

  • ClamAV は、トロイの木馬、ウイルス、マルウェア、その他の悪意のある脅威を検出するためのオープンソースのウイルス対策エンジンです。

  • Dnsmasq は、DNS(およびその他のいくつかの)サービスを提供するソフトウェアパッケージです。 DNSキャッシュとしてのみ使用します

  • HAVP HTTPアンチウイルスプロキシは、アンチウイルスフィルターを備えたプロキシです。 コンテンツをキャッシュまたはフィルタリングしません。 サードパーティのウイルス対策エンジンを使用してすべてのトラフィックをスキャンします。 このチュートリアルでは、HAVP透過プロキシとして使用し、HAVPPrivoxyをチェーンします。

  • OpenVPN CommunityEditionは人気のあるVPNサーバーです。 信頼できるサーバーへの安全な接続を提供し、DNSサーバーの設定をクライアントにプッシュすることもできます。 このチュートリアルでは、OpenVPNという用語がVPNサーバーの名前の短縮形として使用されます

  • Privoxy は、公式Webサイトから、プライバシーを強化し、WebページデータとHTTPヘッダーを変更し、アクセスを制御し、広告やその他の不快なインターネットジャンクを削除するための高度なフィルタリング機能を備えた非キャッシュWebプロキシです。

このチュートリアルを完了すると、次のようなプライバシーゲートウェイが作成されます。

  • パブリックWiFiスポットを使用するときに接続を保護します
  • Webサイトからの広告と追跡機能をブロックします
  • サーバー側のDNS応答をキャッシュすることにより、Webページの読み込み時間を短縮します
  • アクセスしたページとダウンロードしたファイルをスキャンして、既知のウイルスを探します

使い方

次の図は、このチュートリアルで設定するVPNを介してWebリクエストがたどるパスを示しています。

背景が緑色のレーンは、VPNサーバーのコンポーネントです。 緑のボックスは要求ステップを表し、青と赤のボックスは応答ステップを表します。

Flow chart of web request through VPN server

コンピューターとプライバシーサーバー間のトラフィックは、VPNトンネルを通過します。 ブラウザでWebページを開くと、リクエストがVPNサーバーに転送されます。 VPNサーバーでは、リクエストはHAVPにリダイレクトされ、続いてPrivoxyにリダイレクトされます。

Privoxyは、URLをパターンのデータベースと照合します。 URLが一致すると、URLがブロックされ、有効であるが空の応答が返されます。

URLがブロックされていない場合、Privoxyは非キャッシュプロキシサーバーとして機能し、DNSにクエリを実行してURLのコンテンツを取得します。 DNSクエリは、Dnsmasqによって処理およびキャッシュされます。

HAVPはPrivoxyからコンテンツを受信し、ClamAVを介してウイルススキャンを実行します。 ウイルスが見つかった場合は、エラーページが返されます。

前提条件

次の前提条件を満たしていることを確認してください。

システム要求

構成するサーバーは、CPU、RAM、およびディスク容量が簡単です。 少なくとも1GBのRAMを備え、ブラウジングのニーズに対応するのに十分な帯域幅を提供するドロップレットを選択してください。

このチュートリアルで選択するオペレーティングシステムはDebian8です。 また、Ubuntuのような他のDebianベースのLinuxディストリビューションでもほぼ同じように機能するはずです。

ライセンス

このチュートリアルで使用されるすべてのソフトウェアは、Debianリポジトリから入手可能であり、Debianポリシーの対象となります。

安全

このサーバーは、すべてのHTTPリクエストをインターセプトします。 このサーバーを制御する誰かが中間者として機能し、すべてのHTTPトラフィックを監視したり、DNS要求をリダイレクトしたりする可能性があります。 サーバーを保護する必要があります。 保護の初期レベルとしてsudoアクセスとファイアウォールを設定するには、このセクションの冒頭で説明したチュートリアルを参照してください。

ステップ1—OpenVPNおよびその他の前提条件のインストール

OpenVPNをまだインストールしていない場合は、今すぐインストールしてください。

チュートリアルDebian8でOpenVPNサーバーをセットアップする方法に従うことができます。

次の手順では、いくつかのパッケージをインストールします。 パッケージインデックスが最新であることを確認するには、次のコマンドを実行してください。

  1. sudo apt-get update

UFWファイアウォールの設定でsshをまだ有効にしていない場合は、次のコマンドを使用して有効にしてください。

  1. sudo ufw allow ssh
  2. sudo ufw enable

ステップ2—Dnsmasqをインストールする

このステップでは、Dnsmasqをインストールして構成します。 プライバシープロキシサーバーは、Dnsmasqを使用してDNSクエリを高速化および保護します。

Webページに接続するたびに、コンピューターはDNS(ドメインネームシステム)サーバーに問い合わせて、そのサーバーのインターネットアドレスを解決しようとします。 コンピュータはデフォルトでISPのDNSサーバーを使用します。

独自のDNSサーバーを使用することには、次の利点があります。

  • ISPは、接続先のホスト名を認識していません。
  • ISPは、検閲の主な方法の1つである他のサーバーにリクエストをリダイレクトできません。
  • DNSルックアップ速度が向上します

選択したDNSサーバーは、ユーザーがサーバーに対して行うすべてのDNS要求を認識し、この情報を使用して、閲覧の習慣をプロファイリングしたり、検索を独自のエンジンにリダイレクトしたり、未承認のWebサイトへのアクセスを防止したりできます。 DNSサーバーを賢く選択してください。 OpenDNSおよびGoogleDNSサーバーは、一般的に安全であると見なされています。

Debianシステムでは、ネームサーバーの設定は/etc/resolv.confという名前のファイルに保存されます。

次のコマンドを使用して、現在のネームサーバー構成を確認します。

  1. cat /etc/resolv.conf

出力:

/etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4

ご覧のとおり、このシステムのデフォルトのネームサーバーはGoogleのDNSサーバーに設定されています。

次に、次のコマンドを使用してdnsmasqをインストールします。

  1. sudo apt-get install dnsmasq

パッケージがインストールされたら、構成を再度確認してください。

  1. cat /etc/resolv.conf

出力:

/etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1

デフォルトのネームサーバーは127.0.0.1に設定されています。これは、Dnsmasqが実行されるローカルインターフェイスです。

次のコマンドを使用して、インストールをテストできます。 出力のクエリ時間に注意してください。

  1. dig digitalocean.com @localhost

出力:

Output
. . . ;; Query time: 20 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) . . .

次に、同じコマンドを再度実行して、クエリ時間を確認します。

  1. dig digitalocean.com @localhost

出力:

Output
. . . ;; Query time: 1 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) . . .

2番目のクエリは、キャッシュからdnsmasqによって応答されます。 応答時間は20ミリ秒から1ミリ秒に短縮されました。 システムの負荷にもよりますが、キャッシュされた結果は通常1ミリ秒以内に返されます。

ステップ3—ClamAVのインストール

VPNが既知の悪意のあるダウンロードから私たちを保護するように、ウイルス対策スキャナーをインストールしましょう。

ClamAVをインストールします

ClamAVは、広く使用されているオープンソースのウイルス対策スキャナーです。

ClamAVとそのスキャナーデーモンをインストールします。

  1. sudo apt-get install clamav clamav-daemon

ウイルスデータベースの更新

ClamAVは、インストール直後にデータベースを更新し、1時間ごとに更新を確認します。

ClamAVは、データベースの更新ステータスを/var/log/clamav/freshclam.logに記録します。 このファイルをチェックして、自動更新がどのように処理されているかを確認できます。

次に、自動更新が完了するまで待ちます。 そうしないと、スキャンプロキシ(HAVP)が文句を言い、起動しません。

  1. sudo tail -f /var/log/clamav/freshclam.log

更新の進行中、現在のステータスが画面に書き込まれます。

Output
Fri Jun 19 12:56:03 2015 -> ClamAV update process started at Fri Jun 19 12:56:03 2015 Fri Jun 19 12:56:12 2015 -> Downloading main.cvd [100%] Fri Jun 19 12:56:21 2015 -> main.cvd updated (version: 55, sigs: 2424225, f-level: 60, builder: neo) Fri Jun 19 12:56:28 2015 -> Downloading daily.cvd [100%] Fri Jun 19 12:56:34 2015 -> daily.cvd updated (version: 20585, sigs: 1430267, f-level: 63, builder: neo) Fri Jun 19 12:56:35 2015 -> Downloading bytecode.cvd [100%] Fri Jun 19 12:56:35 2015 -> bytecode.cvd updated (version: 260, sigs: 47, f-level: 63, builder: shurley) Fri Jun 19 12:56:41 2015 -> Database updated (3854539 signatures) from db.local.clamav.net (IP: 200.236.31.1) Fri Jun 19 12:56:55 2015 -> Clamd successfully notified about the update. Fri Jun 19 12:56:55 2015 -> --------------------------------------

赤でマークされたテキストClamd successfully notified about the update.が表示されるまで待ちます。

キーボードのCTRL+Cを押して、テールを終了します。 これにより、コマンドプロンプトに戻ります。

すべてが正常に行われた場合は、ClamAVの構成セクションに進むことができます。

(オプション)トラブルシューティング

ウイルスの更新に時間がかかりすぎる場合は、手動で呼び出すことができます。 これは通常の状況では必要ありません。

自動更新サービスを停止します。

  1. sudo service clamav-freshclam stop

アップデータを手動で呼び出し、完了するのを待ちます。 ダウンロードの進行状況はパーセンテージで表示されます。

  1. sudo freshclam

自動更新サービスを開始します。

  1. sudo service clamav-freshclam start

ClamAVを構成する

次に、他のグループがClamAVにアクセスできるようにします。 これが必要なのは、次の手順でClamAVを使用するようにウイルススキャンプロキシ(HAVP)を構成するためです。

ClamAV設定ファイルclamd.confをお気に入りのテキストエディタで編集します。

  1. sudo vi /etc/clamav/clamd.conf

以下のパラメータをtrueに設定してください。

/etc/clamav/clamd.conf
AllowSupplementaryGroups true

構成を保存して終了します。

clamav-daemonを再起動します

  1. sudo service clamav-daemon restart

ステップ4—HAVPのインストール

HAVPはウイルススキャンプロキシサーバーです。 アクセスしたページのすべてのアイテムをスキャンし、悪意のあるコンテンツをブロックします。 HAVPにはウイルススキャナーエンジンは含まれていませんが、かなりの数のサードパーティエンジンを使用できます。 このチュートリアルでは、ClamAVを使用して構成します。

DebianリポジトリからHAVPをインストールします。

  1. sudo apt-get install havp

ClamAVライブラリに十分なメモリがない場合、HAVPが起動しない可能性があります。 このエラーは(今のところ)無視して、セットアップを続行できます。

インストールには時間がかかりますので、しばらくお待ちください。

構成ファイルの編集

HAVPの構成ファイルをお気に入りのエディターにロードします。

  1. sudo vi /etc/havp/havp.config

ClamAVデーモンでHAVPを実行するには、いくつかの構成オプションを設定する必要があります。

HAVPは、ClamAVライブラリ(デフォルト)またはClamAVデーモンと連携できます。 ライブラリモードでは、デーモン(ソケットスキャナー)モードよりもはるかに多くのRAMが必要です。 ドロップレットに4GB以上のRAMがある場合は、ENABLECLAMLIBtrueに設定して、ライブラリモードを使用できます。

それ以外の場合は、構成ファイルの下部にあるこれらの設定を使用します。

/etc/havp/havp.config
ENABLECLAMLIB false

. . .

ENABLECLAMD true

HAVPのデフォルト構成は、一部のビデオストリーミングサイトに干渉する可能性があります。 HTTP範囲リクエストを許可するには、次のパラメーターを設定します。

/etc/havp/havp.config
RANGE true

インターネット上のコンテンツの多くは画像で構成されています。 画像をベクトルとして使用するエクスプロイトがいくつかありますが、画像をスキャンしない方が多かれ少なかれ安全です。

SCANIMAGESfalseに設定することをお勧めしますが、HAVPで画像をスキャンする場合は、この設定をtrueのままにしておくことができます。

/etc/havp/havp.config
SCANIMAGES false

画像、ビデオ、およびオーディオのMIMEタイプを持つファイルをスキャンしないでください。 この設定により、パフォーマンスが向上し、ストリーミングビデオコンテンツを視聴できるようになります(VPN全体に十分な帯域幅がある場合)。 この行のコメントを解除して有効にします。

/etc/havp/havp.config
SKIPMIME image/* video/* audio/*

変更するパラメータがもう1つあります。

このパラメータは、成功したリクエストを/var/log/havp/access.logのログファイルに記録しないようにHAVPに指示します。 アクセスログをチェックしてHAVPが機能しているかどうかを確認する場合は、デフォルト値(true)のままにします。 本番環境では、パフォーマンスとプライバシーを向上させるために、このパラメーターをfalseに設定します。

/etc/havp/havp.config
LOG_OKS false

変更を保存してファイルを終了します。

ユーザー構成

他のグループがアクセスできるようにClamAVを設定したときのことを覚えていますか?

次に、clamavユーザーをhavpグループに追加し、HAVPがClamAVにアクセスできるようにします。 次のコマンドを実行します。

  1. sudo gpasswd -a clamav havp

出力:

Output
Adding user clamav to group havp

グループへの変更を有効にするには、clamav-daemonを再起動する必要があります。

  1. sudo service clamav-daemon restart

HAVPを構成したので、次のコマンドで開始できます。

  1. sudo service havp restart

サービス再開コマンドはサイレントに完了する必要があります。 コンソールにメッセージが表示されないはずです。

ログの確認

HAVPは、ログファイルを/var/log/havpディレクトリに保存します。 エラーおよび初期化メッセージはerror.logファイルに入ります。 このファイルを確認することで、HAVPのステータスを確認できます。

  1. sudo tail /var/log/havp/error.log

tailコマンドは、ファイルの最後の数行を表示します。 HAVPが正常に開始されると、次のような出力が表示されます。 もちろん、日付と時刻はシステムのものになります。

Output
17/06/2015 12:48:13 === Starting HAVP Version: 0.92 17/06/2015 12:48:13 Running as user: havp, group: havp 17/06/2015 12:48:13 --- Initializing Clamd Socket Scanner 17/06/2015 12:48:22 Clamd Socket Scanner passed EICAR virus test (Eicar-Test-Signature) 17/06/2015 12:48:22 --- All scanners initialized 17/06/2015 12:48:22 Process ID: 3896

ステップ5—HAVPのテスト

このセクションでは、HAVPが実際にウイルスをブロックしていることを確認します。

上記のログには、EICAR virus testと呼ばれるものが記載されています。

初期化時に、HAVPは、特別に構築されたウイルス署名を使用してウイルススキャナーエンジンをテストします。 すべてのウイルススキャナーソフトウェアは、この(無害な)シグネチャを含むファイルをウイルスとして検出します。 EICARの詳細については、EICARの使用目的ページを参照してください。

EICARファイルを使用して独自の手動テストを実行し、HAVPとClamAVがそれをブロックすることを確認しましょう。

wgetコマンドラインユーティリティを使用して、EICARWebページからファイルをダウンロードします。

まず、プロキシを使用せずにEICARテストファイルをダウンロードします。

  1. wget http://www.eicar.org/download/eicar.com -O /tmp/eicar.com

サーバーは文句なしにファイルをダウンロードします。

Output
converted 'http://www.eicar.org/download/eicar.com' (ISO-8859-1) -> 'http://www.eicar.org/download/eicar.com' (UTF-8) --2015-06-16 13:53:41-- http://www.eicar.org/download/eicar.com Resolving www.eicar.org (www.eicar.org)... 188.40.238.250 Connecting to www.eicar.org (www.eicar.org)|188.40.238.250|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 68 [application/octet-stream] Saving to: '/tmp/eicar.com' /tmp/eicar.com 100%[=====================>] 68 --.-KB/s in 0s 2015-06-16 13:53:41 (13.7 MB/s) - '/tmp/eicar.com' saved [68/68]

ご覧のとおり、wgetは、ウイルス署名を含むテストファイルを文句なしにダウンロードしました。

次に、新しく構成したプロキシを使用して同じファイルをダウンロードしてみましょう。 環境変数http_proxyをHAVPアドレスとポートに設定します。

  1. http_proxy=127.0.0.1:8080 wget http://www.eicar.org/download/eicar.com -O /tmp/eicar.com

出力:

Output
converted 'http://www.eicar.org/download/eicar.com' (ISO-8859-1) -> 'http://www.eicar.org/download/eicar.com' (UTF-8) --2015-06-25 20:47:38-- http://www.eicar.org/download/eicar.com Connecting to 127.0.0.1:8080... connected. Proxy request sent, awaiting response... 403 Virus found by HAVP 2015-06-25 20:47:39 ERROR 403: Virus found by HAVP.

プロキシはダウンロードを正常に傍受し、ウイルスをブロックしました。

EICARは、ZIP圧縮ファイル内に隠されたウイルス署名ファイルも提供します。

次のコマンドを使用して、HAVPがZIPアーカイブ内のファイルをスキャンすることをテストできます。

  1. http_proxy=127.0.0.1:8080 wget http://www.eicar.org/download/eicarcom2.zip -O /tmp/eicarcom2.zip

出力:

Output
converted 'http://www.eicar.org/download/eicarcom2.zip' (ISO-8859-1) -> 'http://www.eicar.org/download/eicarcom2.zip' (UTF-8) --2015-06-25 20:48:28-- http://www.eicar.org/download/eicarcom2.zip Connecting to 127.0.0.1:8080... connected. Proxy request sent, awaiting response... 403 Virus found by HAVP 2015-06-25 20:48:28 ERROR 403: Virus found by HAVP.

HAVP(ClamAVを使用)はウイルスを再び検出しました。

ステップ6—Privoxyをインストールする

これまで、Webページをスキャンしてウイルスを検出するようにプロキシサーバーを構成してきました。 広告とトラッキングCookieはどうですか? このステップでは、Privoxyをインストールして構成します。

広告をブロックすることは、運用コストをカバーするために広告に依存しているWebサイトにとって有害です。 信頼できる頻繁なサイトに例外を追加することを検討してください。

次のコマンドを使用して、Privoxyをインストールします。

  1. sudo apt-get install privoxy

Privoxyの構成はファイル/etc/privoxy/configにあります。 Privoxyの使用を開始する前に、2つのパラメーターを設定する必要があります。

お気に入りのエディターで構成ファイルを開きます。

  1. sudo vi /etc/privoxy/config

コメントを外して、次の2つのパラメータを設定します。

/ etc / privoxy / config
listen-address  127.0.0.1:8118

. . .

hostname your_server

パラメータlisten-addressは、どのIPとポートのprivoxyを実行するかを決定します。 デフォルト値はlocalhost:8118です。 これを127.0.0.1:8118に変更します。

パラメータhostnameは、Privoxyが実行されログに記録されるホストを指定します。 これをサーバーのホスト名またはDNSアドレスに設定します。 任意の有効なホスト名にすることができます。

次に、新しい構成でPrivoxyを再起動します。

  1. sudo service privoxy restart

ステップ7—HAVPをPrivoxyにチェーンする

HAVPとPrivoxyはどちらも本質的にHTTPプロキシサーバーです。 これで、これら2つのプロキシをチェーンして、クライアントがHAVPからWebページを要求したときに、この要求をPrivoxyに転送するようにします。 Privoxyは、要求されたWebページを取得し、プライバシーの脅威と広告を削除します。その後、HAVPは応答をさらに処理し、ウイルスと悪意のあるコードを削除します。

HAVP構成ファイルをお気に入りのテキストエディタにロードします。

  1. sudo vi /etc/havp/havp.config

次の行のコメントを解除し(行の先頭にある#文字を削除)、以下に示すように値を設定します。 PrivoxyはIP127.0.0.1とポート8118で動作します。

/etc/havp/havp.config
PARENTPROXY 127.0.0.1
PARENTPORT 8118

変更を保存してファイルを終了します。

変更を有効にするには、HAVPを再起動します。

  1. sudo service havp restart

Use parent proxy: 127.0.0.1:8118メッセージに注意して、HAVPのエラーログを確認してください。

  1. sudo tail /var/log/havp/error.log

出力:

Output
17/06/2015 12:57:37 === Starting HAVP Version: 0.92 17/06/2015 12:57:37 Running as user: havp, group: havp 17/06/2015 12:57:37 Use parent proxy: 127.0.0.1:8118 17/06/2015 12:57:37 --- Initializing Clamd Socket Scanner 17/06/2015 12:57:37 Clamd Socket Scanner passed EICAR virus test (Eicar-Test-Signature) 17/06/2015 12:57:37 --- All scanners initialized 17/06/2015 12:57:37 Process ID: 4646

これでプロキシサーバーの構成が完了しました。 EICARウイルステストでもう一度テストしてみましょう。

  1. http_proxy=127.0.0.1:8080 wget http://www.eicar.org/download/eicarcom2.zip -O /tmp/eicarcom2.zip

構成が適切であれば、ERROR 403: Virus found by HAVPメッセージが再度表示されます。

ステップ8—OpenVPNサーバーのDNSオプションを設定する

OpenVPNサーバーのデフォルト構成は私たちのニーズには十分ですが、もう少し改善することも可能です。

OpenVPNサーバーの構成ファイルをテキストエディターにロードします。

  1. sudo vi /etc/openvpn/server.conf

OpenVPNは、デフォルトでOpenDNSのサーバーを使用するように構成されています。 GoogleのDNSサーバーを使用するように変更する場合は、dhcp-option DNSパラメーターを次のように変更します。

新しい行push "register-dns"を追加します。これは、一部のWindowsクライアントがDNSサーバーを使用するために必要になる場合があります。

また、VPNに接続しているときにIPv6をブロックするために、新しい行push "block-ipv6"を追加します。 (IPv6トラフィックはVPNサーバーをバイパスできます。)

このセクションは次のようになります。

/etc/openvpn/server.conf
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "register-dns"
push "block-ipv6"

複数のクライアントが同じovpnファイルに接続できるようにする場合は、次の行のコメントを解除します。 (これは便利ですが、より安全ではありません!)

/etc/openvpn/server.conf
duplicate-cn

変更を有効にするには、OpenVPNサービスを再起動します。

  1. sudo service openvpn restart

ステップ9—透過プロキシの構成

次に、クライアント(ブラウザ)とインターネット間のHTTPトラフィックを傍受するようにプライバシーサーバーを設定します。

パケット転送を有効にする

サーバーがHTTPトラフィックをプロキシサーバーに転送するには、パケット転送を有効にする必要があります。 OpenVPNセットアップチュートリアルですでに有効になっているはずです。

次のコマンドを使用して構成をテストします。

  1. sudo sysctl -p

変更されたパラメータは以下のように表示されます。 そうでない場合は、OpenVPNチュートリアルに再度アクセスしてください。

Output
net.ipv4.ip_forward = 1

UFWを設定する

OpenVPNクライアントから発信されたHTTPパケットをHAVPに転送する必要があります。 この目的のためにufwを使用します。

まず、OpenVPNクライアントから発信されるトラフィックを許可する必要があります

  1. sudo ufw allow in on tun0 from 10.8.0.0/24

OpenVPNチュートリアルでは、/etc/ufw/before.rulesファイルを変更し、OpenVPNのいくつかのルールを追加する必要があります。 次に、同じファイルに再度アクセスして、透過プロキシのポートリダイレクトを構成します。

  1. sudo vi /etc/ufw/before.rules

以下に示すように、OpenVPN構成で追加した行を変更します。 赤の線を追加します。

/etc/ufw/before.rules
 # START OPENVPN RULES
 # NAT table rules
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# transparent proxy
-A PREROUTING -i tun+ -p tcp --dport 80 -j REDIRECT --to-port 8080
 # Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
 # END OPENVPN RULES

ファイアウォール構成をリロードします。

  1. sudo ufw reload

UFWのステータスを確認します。

  1. sudo ufw status

出力:

Output
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 1194/udp ALLOW Anywhere Anywhere on tun0 ALLOW 10.8.0.0/24 22 ALLOW Anywhere (v6) 1194/udp ALLOW Anywhere (v6)

HAVPの透過モードを有効にする

前の手順では、すべてのHTTPパケットがHAVPを通過するように強制しました。 この構成は、透過プロキシと呼ばれます。

HAVPをそのように構成する必要があります。

  1. sudo vi /etc/havp/havp.config

次のパラメータを設定します。

/etc/havp/havp.config
TRANSPARENT true

HAVPサービスを再起動します。

  1. sudo service havp restart

これで、サーバーを使用する準備が整いました。

ステップ10—クライアント構成のテスト

クライアント(Windows、OS X、タブレットなど)で、クライアントをOpenVPNサーバーに接続します。 元のOpenVPNチュートリアルと同じ.ovpnファイルを使用できることに注意してください。 すべての変更はサーバー側にあります。

OpenVPNクライアントの詳細なセットアップ手順については、Ubuntu14.04チュートリアルのクライアントプロファイルのインストールを参照してください。

VPN接続が確立されると、OpenVPNクライアントログに優先DNS設定が表示されます。 次のサンプルは、IOSクライアントから取得したものです。

DNS Servers
	8.8.8.8
	8.8.4.4
Search Domains:

Tunnelblickを使用すると、次のような行が表示される場合があります。

Changed DNS ServerAddresses setting from '8.8.8.8 208.67.222.222 8.8.4.4' to '8.8.8.8 8.8.4.4'

構成をテストするには、ブラウザの EICARテストページに移動し、EICARテストファイルのダウンロードを試みます。 HAVP-AccessDeniedページが表示されます。

  • http://www.eicar.org/download/eicarcom2.zip
  • http://www.eicar.org/85-0-Download.html

HAVP - Access Denied

ステップ11—トラブルシューティング

このセクションは、いくつかの一般的な問題のトラブルシューティングに役立ちます。

ビデオを見たり、私のお気に入りのサイトを使用したりできません

Privoxyは、読み込みが遅すぎるサイトではそれほど厳しくないように構成できます。 この動作は、user.action構成ファイルで構成されます。

お気に入りのテキストエディタにユーザーアクションファイルをロードします。

  1. sudo vi /etc/privoxy/user.action

ファイルの最後に移動し、必要な追加のサイトアドレスを含む次のコンテンツを追加します。

/etc/privoxy/user.action
{ fragile -deanimate-gifs }
.googlevideo.com
.youtube.com
.imgur.com
.example.com

これらの変更後、Privoxyを再起動する必要はありません。 ただし、ブラウザのキャッシュをクリアして、数回更新する必要があります。

それでも問題が発生する場合は、ホワイトリストに登録されたドメインをHAVPホワイトリストファイルに追加してください。 HAVPはこのファイルをチェックし、ホスト名が一致する場合はウイルススキャンを実行しません。

  1. vi /etc/havp/whitelist

ファイルの最後にサイトを追加します。

/ etc / havp / whitelist
# Whitelist Windowsupdate, so RANGE is allowed too
*.microsoft.com/*
*.windowsupdate.com/*

*.youtube.com/*

インターネットを多用しているとブラウザが応答しなくなる

一度に複数のWebページを開く場合、サーバーのメモリがHAVPがすべての要求をスキャンするのに十分でない可能性があります。

ドロップレットのRAMを増やしたり、スワップメモリを追加したりすることができます。 VPS で仮想メモリ(スワップファイル)を構成する方法の記事を参照してください。

ほとんどの場合、ブラウジングエクスペリエンスにVPNを追加すると、遅延が発生することに注意してください。

結論

このチュートリアルを実行すると、プライバシーとセキュリティを閲覧することでVPNの使用を次のレベルに引き上げることができます。