Debian8でOpenVPNを使用してインターネットを安全に閲覧する3つの方法
序章
より多くのプライバシーでインターネットを閲覧する理由は、それを達成する方法と同じくらい異なります。
このチュートリアルでは、サーバー上に仮想プライベートネットワーク(VPN)をセットアップして、インターネットブラウジングエクスペリエンスの3つの重要なコンポーネントを保護する方法について詳しく説明します。
- 暗号化されていないトラフィックを保護し、Cookieやその他のトラッカーを防止し、ローカルコンピューターのIPアドレスをマスクすることにより、Webトラフィックをプライベート化します。
- VPNからGoogleのDNSサーバーに直接送信することにより、ローカルISPがDNSクエリをログに記録しないようにします
- ウイルスや悪意のあるアプリケーションをスキャンしてアクセスを防止します
商用のVPNサーバーを使用するのではなく、独自のVPNサーバーを実行することで、閲覧履歴のログ記録を回避することもできます(選択しない限り)。 最後に、物理的な場所を選択できるため、遅延を最小限に抑えることができます。 ただし、VPNの使用は通常、直接インターネット接続を使用するよりも遅くなります。
これを行うには、Debian8サーバーに次のアプリケーションをインストールして構成します。
-
ClamAV は、トロイの木馬、ウイルス、マルウェア、その他の悪意のある脅威を検出するためのオープンソースのウイルス対策エンジンです。
-
Dnsmasq は、DNS(およびその他のいくつかの)サービスを提供するソフトウェアパッケージです。 DNSキャッシュとしてのみ使用します
-
HAVP HTTPアンチウイルスプロキシは、アンチウイルスフィルターを備えたプロキシです。 コンテンツをキャッシュまたはフィルタリングしません。 サードパーティのウイルス対策エンジンを使用してすべてのトラフィックをスキャンします。 このチュートリアルでは、
HAVP
を透過プロキシとして使用し、HAVP
とPrivoxy
をチェーンします。 -
OpenVPN CommunityEditionは人気のあるVPNサーバーです。 信頼できるサーバーへの安全な接続を提供し、DNSサーバーの設定をクライアントにプッシュすることもできます。 このチュートリアルでは、OpenVPNという用語がVPNサーバーの名前の短縮形として使用されます
-
Privoxy は、公式Webサイトから、プライバシーを強化し、WebページデータとHTTPヘッダーを変更し、アクセスを制御し、広告やその他の不快なインターネットジャンクを削除するための高度なフィルタリング機能を備えた非キャッシュWebプロキシです。
このチュートリアルを完了すると、次のようなプライバシーゲートウェイが作成されます。
- パブリックWiFiスポットを使用するときに接続を保護します
- Webサイトからの広告と追跡機能をブロックします
- サーバー側のDNS応答をキャッシュすることにより、Webページの読み込み時間を短縮します
- アクセスしたページとダウンロードしたファイルをスキャンして、既知のウイルスを探します
使い方
次の図は、このチュートリアルで設定するVPNを介してWebリクエストがたどるパスを示しています。
背景が緑色のレーンは、VPNサーバーのコンポーネントです。 緑のボックスは要求ステップを表し、青と赤のボックスは応答ステップを表します。
コンピューターとプライバシーサーバー間のトラフィックは、VPNトンネルを通過します。 ブラウザでWebページを開くと、リクエストがVPNサーバーに転送されます。 VPNサーバーでは、リクエストはHAVPにリダイレクトされ、続いてPrivoxyにリダイレクトされます。
Privoxyは、URLをパターンのデータベースと照合します。 URLが一致すると、URLがブロックされ、有効であるが空の応答が返されます。
URLがブロックされていない場合、Privoxyは非キャッシュプロキシサーバーとして機能し、DNSにクエリを実行してURLのコンテンツを取得します。 DNSクエリは、Dnsmasqによって処理およびキャッシュされます。
HAVPはPrivoxyからコンテンツを受信し、ClamAVを介してウイルススキャンを実行します。 ウイルスが見つかった場合は、エラーページが返されます。
前提条件
次の前提条件を満たしていることを確認してください。
- 1GBのRAMを搭載したDebian8ドロップレット
- Debian8でのサーバーの初期設定
- Debian8でOpenVPNサーバーをセットアップする方法
システム要求
構成するサーバーは、CPU、RAM、およびディスク容量が簡単です。 少なくとも1GBのRAMを備え、ブラウジングのニーズに対応するのに十分な帯域幅を提供するドロップレットを選択してください。
このチュートリアルで選択するオペレーティングシステムはDebian8です。 また、Ubuntuのような他のDebianベースのLinuxディストリビューションでもほぼ同じように機能するはずです。
ライセンス
このチュートリアルで使用されるすべてのソフトウェアは、Debianリポジトリから入手可能であり、Debianポリシーの対象となります。
安全
このサーバーは、すべてのHTTPリクエストをインターセプトします。 このサーバーを制御する誰かが中間者として機能し、すべてのHTTPトラフィックを監視したり、DNS要求をリダイレクトしたりする可能性があります。 サーバーを保護する必要があります
ステップ1—OpenVPNおよびその他の前提条件のインストール
OpenVPNをまだインストールしていない場合は、今すぐインストールしてください。
チュートリアルDebian8でOpenVPNサーバーをセットアップする方法に従うことができます。
次の手順では、いくつかのパッケージをインストールします。 パッケージインデックスが最新であることを確認するには、次のコマンドを実行してください。
- sudo apt-get update
UFWファイアウォールの設定でssh
をまだ有効にしていない場合は、次のコマンドを使用して有効にしてください。
- sudo ufw allow ssh
- 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
という名前のファイルに保存されます。
次のコマンドを使用して、現在のネームサーバー構成を確認します。
- cat /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
をインストールします。
- sudo apt-get install dnsmasq
パッケージがインストールされたら、構成を再度確認してください。
- cat /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が実行されるローカルインターフェイスです。
次のコマンドを使用して、インストールをテストできます。 出力のクエリ時間に注意してください。
- dig digitalocean.com @localhost
出力:
Output. . .
;; Query time: 20 msec
;; SERVER: 127.0.0.1#53(127.0.0.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とそのスキャナーデーモンをインストールします。
- sudo apt-get install clamav clamav-daemon
ウイルスデータベースの更新
ClamAVは、インストール直後にデータベースを更新し、1時間ごとに更新を確認します。
ClamAVは、データベースの更新ステータスを/var/log/clamav/freshclam.log
に記録します。 このファイルをチェックして、自動更新がどのように処理されているかを確認できます。
次に、自動更新が完了するまで待ちます。 そうしないと、スキャンプロキシ(HAVP)が文句を言い、起動しません。
- sudo tail -f /var/log/clamav/freshclam.log
更新の進行中、現在のステータスが画面に書き込まれます。
OutputFri 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の構成セクションに進むことができます。
(オプション)トラブルシューティング
ウイルスの更新に時間がかかりすぎる場合は、手動で呼び出すことができます。 これは通常の状況では必要ありません。
自動更新サービスを停止します。
- sudo service clamav-freshclam stop
アップデータを手動で呼び出し、完了するのを待ちます。 ダウンロードの進行状況はパーセンテージで表示されます。
- sudo freshclam
自動更新サービスを開始します。
- sudo service clamav-freshclam start
ClamAVを構成する
次に、他のグループがClamAVにアクセスできるようにします。 これが必要なのは、次の手順でClamAVを使用するようにウイルススキャンプロキシ(HAVP)を構成するためです。
ClamAV設定ファイルclamd.conf
をお気に入りのテキストエディタで編集します。
- sudo vi /etc/clamav/clamd.conf
以下のパラメータをtrue
に設定してください。
AllowSupplementaryGroups true
構成を保存して終了します。
clamav-daemon
を再起動します
- sudo service clamav-daemon restart
ステップ4—HAVPのインストール
HAVPはウイルススキャンプロキシサーバーです。 アクセスしたページのすべてのアイテムをスキャンし、悪意のあるコンテンツをブロックします。 HAVPにはウイルススキャナーエンジンは含まれていませんが、かなりの数のサードパーティエンジンを使用できます。 このチュートリアルでは、ClamAVを使用して構成します。
DebianリポジトリからHAVPをインストールします。
- sudo apt-get install havp
ClamAVライブラリに十分なメモリがない場合、HAVPが起動しない可能性があります。 このエラーは(今のところ)無視して、セットアップを続行できます。
インストールには時間がかかりますので、しばらくお待ちください。
構成ファイルの編集
HAVPの構成ファイルをお気に入りのエディターにロードします。
- sudo vi /etc/havp/havp.config
ClamAVデーモンでHAVPを実行するには、いくつかの構成オプションを設定する必要があります。
HAVPは、ClamAVライブラリ(デフォルト)またはClamAVデーモンと連携できます。 ライブラリモードでは、デーモン(ソケットスキャナー)モードよりもはるかに多くのRAMが必要です。 ドロップレットに4GB以上のRAMがある場合は、ENABLECLAMLIB
をtrue
に設定して、ライブラリモードを使用できます。
それ以外の場合は、構成ファイルの下部にあるこれらの設定を使用します。
ENABLECLAMLIB false
. . .
ENABLECLAMD true
HAVPのデフォルト構成は、一部のビデオストリーミングサイトに干渉する可能性があります。 HTTP範囲リクエストを許可するには、次のパラメーターを設定します。
RANGE true
インターネット上のコンテンツの多くは画像で構成されています。 画像をベクトルとして使用するエクスプロイトがいくつかありますが、画像をスキャンしない方が多かれ少なかれ安全です。
SCANIMAGES
をfalse
に設定することをお勧めしますが、HAVPで画像をスキャンする場合は、この設定をtrue
のままにしておくことができます。
SCANIMAGES false
画像、ビデオ、およびオーディオのMIMEタイプを持つファイルをスキャンしないでください。 この設定により、パフォーマンスが向上し、ストリーミングビデオコンテンツを視聴できるようになります(VPN全体に十分な帯域幅がある場合)。 この行のコメントを解除して有効にします。
SKIPMIME image/* video/* audio/*
変更するパラメータがもう1つあります。
このパラメータは、成功したリクエストを/var/log/havp/access.log
のログファイルに記録しないようにHAVPに指示します。 アクセスログをチェックしてHAVPが機能しているかどうかを確認する場合は、デフォルト値(true
)のままにします。 本番環境では、パフォーマンスとプライバシーを向上させるために、このパラメーターをfalse
に設定します。
LOG_OKS false
変更を保存してファイルを終了します。
ユーザー構成
他のグループがアクセスできるようにClamAVを設定したときのことを覚えていますか?
次に、clamavユーザーをhavpグループに追加し、HAVPがClamAVにアクセスできるようにします。 次のコマンドを実行します。
- sudo gpasswd -a clamav havp
出力:
OutputAdding user clamav to group havp
グループへの変更を有効にするには、clamav-daemon
を再起動する必要があります。
- sudo service clamav-daemon restart
HAVPを構成したので、次のコマンドで開始できます。
- sudo service havp restart
サービス再開コマンドはサイレントに完了する必要があります。 コンソールにメッセージが表示されないはずです。
ログの確認
HAVPは、ログファイルを/var/log/havp
ディレクトリに保存します。 エラーおよび初期化メッセージはerror.log
ファイルに入ります。 このファイルを確認することで、HAVPのステータスを確認できます。
- sudo tail /var/log/havp/error.log
tail
コマンドは、ファイルの最後の数行を表示します。 HAVPが正常に開始されると、次のような出力が表示されます。 もちろん、日付と時刻はシステムのものになります。
Output17/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テストファイルをダウンロードします。
- wget http://www.eicar.org/download/eicar.com -O /tmp/eicar.com
サーバーは文句なしにファイルをダウンロードします。
Outputconverted '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アドレスとポートに設定します。
- http_proxy=127.0.0.1:8080 wget http://www.eicar.org/download/eicar.com -O /tmp/eicar.com
出力:
Outputconverted '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アーカイブ内のファイルをスキャンすることをテストできます。
- http_proxy=127.0.0.1:8080 wget http://www.eicar.org/download/eicarcom2.zip -O /tmp/eicarcom2.zip
出力:
Outputconverted '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をインストールします。
- sudo apt-get install privoxy
Privoxyの構成はファイル/etc/privoxy/config
にあります。 Privoxyの使用を開始する前に、2つのパラメーターを設定する必要があります。
お気に入りのエディターで構成ファイルを開きます。
- sudo vi /etc/privoxy/config
コメントを外して、次の2つのパラメータを設定します。
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を再起動します。
- sudo service privoxy restart
ステップ7—HAVPをPrivoxyにチェーンする
HAVPとPrivoxyはどちらも本質的にHTTPプロキシサーバーです。 これで、これら2つのプロキシをチェーンして、クライアントがHAVPからWebページを要求したときに、この要求をPrivoxyに転送するようにします。 Privoxyは、要求されたWebページを取得し、プライバシーの脅威と広告を削除します。その後、HAVPは応答をさらに処理し、ウイルスと悪意のあるコードを削除します。
HAVP構成ファイルをお気に入りのテキストエディタにロードします。
- sudo vi /etc/havp/havp.config
次の行のコメントを解除し(行の先頭にある#
文字を削除)、以下に示すように値を設定します。 PrivoxyはIP127.0.0.1
とポート8118
で動作します。
PARENTPROXY 127.0.0.1
PARENTPORT 8118
変更を保存してファイルを終了します。
変更を有効にするには、HAVPを再起動します。
- sudo service havp restart
Use parent proxy: 127.0.0.1:8118
メッセージに注意して、HAVPのエラーログを確認してください。
- sudo tail /var/log/havp/error.log
出力:
Output17/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ウイルステストでもう一度テストしてみましょう。
- 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サーバーの構成ファイルをテキストエディターにロードします。
- 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サーバーをバイパスできます。)
このセクションは次のようになります。
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "register-dns"
push "block-ipv6"
複数のクライアントが同じovpnファイルに接続できるようにする場合は、次の行のコメントを解除します。 (これは便利ですが、より安全ではありません!)
duplicate-cn
変更を有効にするには、OpenVPNサービスを再起動します。
- sudo service openvpn restart
ステップ9—透過プロキシの構成
次に、クライアント(ブラウザ)とインターネット間のHTTPトラフィックを傍受するようにプライバシーサーバーを設定します。
パケット転送を有効にする
サーバーがHTTPトラフィックをプロキシサーバーに転送するには、パケット転送を有効にする必要があります。 OpenVPNセットアップチュートリアルですでに有効になっているはずです。
次のコマンドを使用して構成をテストします。
- sudo sysctl -p
変更されたパラメータは以下のように表示されます。 そうでない場合は、OpenVPNチュートリアルに再度アクセスしてください。
Outputnet.ipv4.ip_forward = 1
UFWを設定する
OpenVPNクライアントから発信されたHTTPパケットをHAVPに転送する必要があります。 この目的のためにufw
を使用します。
まず、OpenVPNクライアントから発信されるトラフィックを許可する必要があります
- sudo ufw allow in on tun0 from 10.8.0.0/24
OpenVPNチュートリアルでは、/etc/ufw/before.rules
ファイルを変更し、OpenVPNのいくつかのルールを追加する必要があります。 次に、同じファイルに再度アクセスして、透過プロキシのポートリダイレクトを構成します。
- sudo vi /etc/ufw/before.rules
以下に示すように、OpenVPN構成で追加した行を変更します。 赤の線を追加します。
# 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
ファイアウォール構成をリロードします。
- sudo ufw reload
UFWのステータスを確認します。
- sudo ufw status
出力:
OutputStatus: 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
をそのように構成する必要があります。
- sudo vi /etc/havp/havp.config
次のパラメータを設定します。
TRANSPARENT true
HAVPサービスを再起動します。
- 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
ステップ11—トラブルシューティング
このセクションは、いくつかの一般的な問題のトラブルシューティングに役立ちます。
ビデオを見たり、私のお気に入りのサイトを使用したりできません
Privoxyは、読み込みが遅すぎるサイトではそれほど厳しくないように構成できます。 この動作は、user.action
構成ファイルで構成されます。
お気に入りのテキストエディタにユーザーアクションファイルをロードします。
- sudo vi /etc/privoxy/user.action
ファイルの最後に移動し、必要な追加のサイトアドレスを含む次のコンテンツを追加します。
{ fragile -deanimate-gifs }
.googlevideo.com
.youtube.com
.imgur.com
.example.com
これらの変更後、Privoxyを再起動する必要はありません。 ただし、ブラウザのキャッシュをクリアして、数回更新する必要があります。
それでも問題が発生する場合は、ホワイトリストに登録されたドメインをHAVPホワイトリストファイルに追加してください。 HAVPはこのファイルをチェックし、ホスト名が一致する場合はウイルススキャンを実行しません。
- vi /etc/havp/whitelist
ファイルの最後にサイトを追加します。
# Whitelist Windowsupdate, so RANGE is allowed too
*.microsoft.com/*
*.windowsupdate.com/*
*.youtube.com/*
インターネットを多用しているとブラウザが応答しなくなる
一度に複数のWebページを開く場合、サーバーのメモリがHAVPがすべての要求をスキャンするのに十分でない可能性があります。
ドロップレットのRAMを増やしたり、スワップメモリを追加したりすることができます。 VPS で仮想メモリ(スワップファイル)を構成する方法の記事を参照してください。
ほとんどの場合、ブラウジングエクスペリエンスにVPNを追加すると、遅延が発生することに注意してください。
結論
このチュートリアルを実行すると、プライバシーとセキュリティを閲覧することでVPNの使用を次のレベルに引き上げることができます。