前書き

オンライン広告は刺激的なだけでなく、デバイス上のマルウェアの潜在的なソースでもあります。 アプリケーションごと/デバイスごとに広告をブロックするように設計されたプラグインがありますが、https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-andで広告を停止します-concepts [DNS level]は、すべてのアプリケーションとデバイスを一度に使用するより完全なソリューションを提供します。

Pi-hole-https://www.raspberrypi.org/[Raspberry Piシングルボードコンピューター]で使用するために作成されたDNSサーバー-広告へのリクエストを除外します-ドメインの提供、広告のブロック、ネットワークパフォーマンスの改善。 Pi-holeを使用すると、ネットワークで行われたすべてのDNS要求をアクティブに監視し、その場で要求をブロックできます。 この機能はWebブラウザーを超えて拡張されており、適切なDNSクエリをターゲットにすることで、他のアプリケーション内の広告を除外できます。

Pi-holeは、https://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols#networking-glossary [Virtual Privateネットワーク](VPN)。 VPNは、_tunnels_を介して接続を確立および維持します。これは、クライアントとサーバー間の論理ネットワーク接続です。 さらに、VPNがhttps://www.digitalocean.com/community/tutorials/openssl-essentials-working-with-ssl-certificates-private-keys-and-csrs[Secure Socket Layer](SSL)をサポートしている場合、トランザクションは暗号化され、データ送信用の安全なリンクを提供します。

このチュートリアルでは、OpenVPNとPi-holeをインストールして構成し、ネットワークに接続されているすべてのデバイスに対して、独自のネットワーク全体のDNSベースの広告ブロックフィルターとして機能するようにします。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • このhttps://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04[Ubuntu 16.04初期サーバーセットアップチュートリアル]に従ってセットアップされた2 GBのメモリを搭載した1つのUbuntu 16.04サーバーsudoの非rootユーザーとファイアウォールが含まれます。

  • このhttps://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04[Ubuntu 16.04のOpenVPNサーバーガイド]に従ってインストールおよび構成されたOpenVPN 。

ステップ1-ネットワーク情報の収集

インストールを開始する前に、Pi-holeがVPNとの通信に使用するネットワーク情報を収集する必要があります。 Pi-holeのインストールプロセスがターミナルセッションを引き継ぐため、開始前にこの情報を手元に置いておくことで、プロセス全体がよりスムーズに進みます。

最初に、「+ addr 」および「 show 」サブコマンドとともに「 ip 」コマンドを使用して、「 tun0 +」、https://www.digitalocean.com/community/tutorials/an-introductionのIPアドレスを特定します-to-networking-terminology-interfaces-and-protocols#interfaces [network interface] VPNトンネルがアクティブになっています。

ip addr show tun0

出力は、インターフェイスに関する詳細な情報を提供します。

Output from ip addr show tun01: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
   link/none
   inet  peer 10.8.0.2/32 scope global tun0
      valid_lft forever preferred_lft forever

すなわち:

  • 最初の行は、インターフェース名 `+ tun0 +`を示し、その後にネットワークソケットの特性を説明する一連のフラグが続きます。

  • 2行目は、現時点ではhttps://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols#network-layers[link layer]デバイスが利用できないことを示していますインタフェース。

  • 3行目には、このネットワークインターフェイスのIPアドレス値が含まれています。

  • 4行目は、インターフェースのIPv6有効期間と優先リース期間が両方とも「+ forever +」に設定されていることを報告しています。 この場合、IPアドレスのリース時間は変更されません。これは、アドレスがVPNのインストール中にインターフェイスに明確に割り当てられたためです。

これはVPNサーバーのアドレスであるため、「+ inet +」に続くIPアドレスをメモします。 Pi-holeをインストールするときにこれを知る必要があります。

VPNサーバーのIPアドレスに加えて、Pi-holeはIPv4トラフィックに使用する_gateway_も知っている必要があります。 ゲートウェイは、異なるネットワーク間のアクセスポイントと考えることができます。

サーバーのルーティングテーブル情報を取得するには、今度は + route`および + show s`サブコマンドとともに `+ ip`コマンドを再度使用します。 https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-io-redirection#pipes [ルーティングテーブル情報をパイプ処理]から `+ grep `にhttps://www.digitalocean.com / community / tutorials / using-grep-regular-expressions-to-search-for-text-patterns-in-linux [出力の解析と検索]で文字列 ` default `を検索します。 ` default +`は、サーバーが使用するデフォルトゲートウェイを示します。

ip route show | grep default

次の例では、デフォルトゲートウェイのIPアドレスが「198.51.100.1」であること、ゲートウェイが「+ eth0 」インターフェースで到達可能であること、およびゲートウェイの「 onlink +」オプションがオンになっていることを示しています。これは、トンネル接続のデフォルトです。

Output from ip r | grep defaultdefault via  dev eth0 onlink

これはサーバーのデフォルトゲートウェイアドレスであるため、「+ via +」に続くIPアドレスをメモします。 Pi-holeをインストールするときにこれを知る必要があります。

ネットワーク情報を入手したら、Pi-holeをダウンロードしてインストールする準備ができました。

ステップ2-Pi-holeのダウンロード

https://github.com/pi-hole/pi-hole#alternative-semi-automated-install-methods [公式インストール手順]に従って、Gitを使用してhttps://github.com/pi-hole/のクローンを作成しますpi-hole [GitHubのPi-holeリポジトリ]を `〜/ Pi-hole +`にコピーします。これは、クローン作成プロセス中に自動的に作成されます。 `-depth 1 +`オプションを使用して、履歴を最後のリビジョンまで切り捨てたクローンを作成します。これにより、余分な履歴の修正なしで最新バージョンのPi-holeが得られます。

ホームディレクトリに移動し、リポジトリを複製します。

cd ~
git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole

出力は、クローン先の場所を確認し、Gitがコピーすると予想されるオブジェクトの数や、実際にコピーした数など、プロセスのリアルタイムレポートを提供します。

Output from git cloneCloning into 'Pi-hole'...
remote: Counting objects: 65, done.
remote: Compressing objects: 100% (56/56), done.
remote: Total 65 (delta 5), reused 26 (delta 1), pack-reused 0
Unpacking objects: 100% (65/65), done.
Checking connectivity... done.

次に、新しく作成された `+ Pi-hole / automated \ install / +`ディレクトリに移動して、Pi-holeのインストールスクリプトを見つけます。

cd Pi-hole/automated\ install/

インストールスクリプトを開いて、スクリプトの動作に満足していることを確認するか、必要に応じて変更します。

nano basic-install.sh

ファイルを保存して閉じ、続行します。

これで、Pi-holeの最新バージョンのコピーがあり、潜在的な問題について自動インストールスクリプトを調べました。 Pi-holeをインストールして構成します。

手順3-インストールスクリプトの実行

Pi-holeのインストールと構成は、ターミナルベースのウィザードを使用して行われます。 次のコマンドでウィザードを開始します。

bash basic-install.sh

最初に、インストールスクリプトは、* Installing packages *であり、インストールに必要な追加ファイルを取得していることを通知します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-1.png [ステップ1:Pi-holeインストールスクリプト]

次の画面は、ネットワーク全体の広告ブロッカーをインストールすることを通知する* Pi-hole自動インストーラー*からのメッセージです。

続行するには、「+ ENTER」を押します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-2.png [ステップ2:Pi-holeインストールスクリプト]

次に、インストールウィザードは、Pi-holeが*無料でオープンソース*であることを通知し、Pi-holeプロジェクトに寄付する方法を通知します。

`+ ENTER`を押してインストールを続行します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-3.png [ステップ3:Pi-holeインストールスクリプト]

インストールスクリプトは、サービスが正常に機能するために*静的IPアドレス*が必要であることを通知します。

繰り返しますが、続行するには `+ ENTER`を押してください。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-4.png [ステップ4:Pi-holeインストールスクリプト]

次の画面では、Pi-holeがリッスンする*インターフェイスを選択*するように求められます。 VPNのネットワークインターフェースを監視するにはPi-holeが必要なので、キーボードの矢印キーを使用して* tun0 *を強調表示し、「+ SPACE 」を押して選択します。 次に、 ` TAB `を押して、画面下部のオプションにジャンプします。 * <Ok> *を強調表示した状態で、 ` ENTER +`を押して設定を保存し、続行します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-5.png [ステップ5:Pi-holeインストールスクリプト]

ウィザードでは、アップストリームDNSプロバイダー*を指定するように求められます。 これはPi-holeがhttps://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts#how-dns-works [ドメイン名の解決]に使用するサービスです。 簡単にするために、この設定をデフォルト値 Google *のままにしておくことができます。

+ TAB`を押して画面の一番下にジャンプし、* <Ok> *が強調表示されたら + ENTER`を押します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-6.png [ステップ6:Pi-holeインストールスクリプト]

次の画面で、Pi-holeはフィルタリングするhttps://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols#protocols [インターネットプロトコル]を選択するように求めます。 プロトコル(IPv4やIPv6など)は、パケットの技術的な形式と、コンピューターがネットワーク上で通信するためのアドレス指定スキームを指定します。 IPv4は、デバイスをネットワークに接続するために最も広く採用されているインターネットプロトコルです。

Pi-holeを効果的に実行するにはIPv4とIPv6の両方のフィルタリングが必要であるため、両方のプロトコルを選択したまま「+ TAB 」を押して画面下部のオプションにジャンプします。 * <Ok> *を選択し、 ` ENTER`を押します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-7.png [ステップ7:Pi-holeインストールスクリプト]

Pi-holeは、現在のネットワーク設定を*静的IPアドレス*として使用するかどうかを尋ねます。 VPNを使用するにはPi-holeが必要なので、次の画面でこの情報を手動で入力します。

矢印キーを使用して* <No> *を選択し、 `+ ENTER`を押します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-8.png [ステップ8:Pi-holeインストールスクリプト]

Pi-holeは、* IPv4アドレス*の入力を求めます。 ここにVPNサーバーのアドレスを入力します。 これはlink:#step-1-%E2%80%94-gathering-network-information [Step 1]からのIPアドレスです。これは、最初に `+ ip + `コマンド。

リンクのhttps://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04[Ubuntu 16.04のOpenVPNサーバーガイド]を参照した場合:#preresquites [前提条件]の場合、IPアドレスは次のスクリーンショットのIPアドレスと同じである必要があります。 IPアドレスの末尾に「+ / 24 +」を追加して、VPNのhttps://www.digitalocean.com/community/tutorials/understanding-ip-addresses-subnets-and-cidr-notation-for-networking#を指定します# netmasks-and-subnets [サブネットマスク]。

  • <Ok> *を選択し、 `+ ENTER +`を押して続行します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-9.png [ステップ9:Pi-holeインストールスクリプト]

次の画面では、Pi-holeがインターネットにアクセスするために使用する* IPv4ゲートウェイ(ルーター)*を入力する必要があります。 サーバーのデフォルトゲートウェイのIPアドレスをここに入力します。 これはlink:#step-1-%E2%80%94-gathering-network-information [Step 1]からのIPアドレスです。これは、2回目に `+ ip + `コマンド。

  • <Ok> *を選択し、情報を入力した後、「+ ENTER +」を押します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-10.png [ステップ10:Pi-holeインストールスクリプト]

次の画面で、Pi-holeの構成に適用される前に、* IPアドレス*と*ゲートウェイ*が正しいことを確認します。 変更する必要がある場合は、* <No> を選択して、 `+ ENTER`を押します。 それ以外の場合は、 <Yes> *を選択し、 `+ ENTER +`を押してインストールを続行します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-11.png [ステップ11:Pi-holeインストールスクリプト]

コマンドラインインターフェースに加えて、* Web管理インターフェース*を使用してPi-holeを管理することもできます。 ウェブインターフェースの主な利点の1つは、ライブDNSクエリとブロック統計を表示できることです。

デフォルトでは、* web admin interface On *に設定されています。 これは、リンクの推奨設定であり、必須です:#step-7-%E2%80%94-filtering-with-block-lists [ステップ7]およびlink:#step-8-%E2%80%94-filtering -with-blacklists-and-whitelists [ステップ8]このチュートリアル。

このチュートリアルではWebインターフェースを使用してPi-holeを管理しますが、開発中にプロジェクトのさまざまなブランチをチェックアウトしたい場合、または単にターミナルセッションで作業したい場合は、Pi-holeのコマンドの詳細をご覧ください-line interface https://discourse.pi-hole.net/t/the-pihole-command-with-examples/738 [この公式FAQ]

+ TAB`を使用して* <Ok> *を選択し、 + ENTER`を押します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-12.png [ステップ12:Pi-holeインストールスクリプト]

*ウェブ管理インターフェースの機能を使用して、ライブDNSクエリとブロック統計を表示するには、クエリを*ログに記録するようにPi-holeを設定する必要があります。

これはデフォルト設定と推奨設定の両方であるため、 `+ TAB `を使用して* <Ok> *を選択し、 ` ENTER +`を押します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-13.png [ステップ13:Pi-holeインストールスクリプト]

この時点で、Pi-holeはブロックリストとブラックリストのデフォルトデータとともに残りの依存関係をダウンロードしてインストールします。 そこから、Pi-holeは前の画面で入力したすべてのネットワーク構成設定を適用します。

このステップで、Pi-holeは*使用中の*ファイアウォールがあることを通知し、インストーラーはサービスが適切に機能するために必要なファイアウォール設定を受け入れるように促します。

+ TAB`を使用して* <Yes> *を選択し、 + ENTER`を押します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-14.png [ステップ14:Pi-holeインストールスクリプト]

ここから、Pi-holeは単独でインストールを続行します。 完了すると、ダイアログのタイトルが* Installation Complete!*に変わり、Pi-holeが自動的に開始され、ネットワーク上のすべてのDNSクエリのフィルタリングが開始されます。

`+ ENTER`を押してインストールウィザードを終了します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/step-15.png [ステップ15:Pi-holeインストールスクリプト]

Pi-holeのインストールと構成は完了しましたが、先に進む前に、すべてが期待どおりに機能していることをテストしましょう。

ステップ4-DNSフィルタリングのテスト

OpenVPNとPi-holeの両方が完全にセットアップされて連携すると、ネットワークで行われたすべてのDNS要求がPi-holeに転送され、要求されたドメインがブロックリストまたはブラックリスト。 その場合、フィルターはドメインを完全に削除します。そうでない場合、フィルターはドメインの通過を許可します。

Pi-holeはOpenVPNで動作するようにまだ構成されていませんが、サーバーから広告配信ドメインをフィルタリングするPi-holeの機能をテストすることにより、現在のインストールを確認できます。

テストを実行するには、「+ host 」コマンドを使用して「 google.com 」でDNSルックアップを実行し、クエリするネームサーバーとしてデフォルトゲートウェイ「+10.8.0.1」を指定します。 これにより、リクエストがPi-holeのフィルターを通過します。

host google.com 10.8.0.1

出力にはドメインのパブリックIPアドレスが含まれているため、「+ google.com +」がブロックリストまたはブラックリストのどのドメインとも一致しなかったことがわかります。

Output from host google.com 10.8.0.1...
google.com has address
...

ここで、 + host`コマンドを再試行します。今回は、既知の広告配信ドメインである + pagead2.googlesyndication.com + `を渡します。

host pagead2.googlesyndication.com 10.8.0.1

ドメインのパブリックIPアドレスではなく、今回はデフォルトゲートウェイのアドレスを取得します。 これは、Pi-holeが広告配信ドメインを正常に識別し、リクエストをドロップして応答したことを意味します。

Output from host pagead2.googlesyndication.com 10.8.0.1...
pagead2.googlesyndication.com has address
...

出力にデフォルトゲートウェイのアドレスが表示されない場合は、クエリするネームサーバーとして「10.8.0.1」が含まれていることを再確認し、インストールまたは起動のいずれかに問題があることを示すメッセージがないか端末を確認しますパイホール。

Pi-holeが正しくインストールされ、リクエストがフィルタリングされるようになったため、OpenVPNを設定してDNSリクエストがPi-holeを指すようにします。

ステップ5-OpenVPNの構成

OpenVPNは現在、リンクでインストール中に指定したDNSサーバーにすべてのDNSトラフィックを転送するように構成されています:#preresquites [前提条件]。 広告ブロッカーとしてPi-holeを使用するには、代わりにOpenVPNを再構成してDNSトラフィックをPi-holeに向ける必要があります。

まず、OpenVPNのメイン構成ファイルを編集用に開きます。

sudo nano /etc/openvpn/server.conf

次の行を見つけます。

/etc/openvpn/server.conf

...
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
...

これらの設定により、DNS設定を含むDHCPオプションをVPNに接続されたクライアントにプッシュできます。

+ server.conf`に含まれる2つの + dhcp-option`設定はデフォルトでコメント化されているため、将来それらを参照する必要がある場合に備えてそのままにしておきます。

ここで、すべてのDNS要求に対して「10.8.0.1」にあるPi-holeを使用するようクライアントに指示するようOpenVPNに指示する新しい設定を追加します。

/etc/openvpn/server.conf

...
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"

...

ファイルを保存して閉じ、続行します。

変更を適用するには、OpenVPNをリロードします。

sudo systemctl restart [email protected]

最後に、OpenVPNが正常にバックアップされたことをテストします。

sudo systemctl status [email protected]

すべてがうまくいった場合、出力はOpenVPNが `+ active(running)+`であることを示します。

Output from systmctl...
Active:  since Mon 2017-11-27 22:08:43 UTC; 1 day 23h ago
...

サービスの開始に失敗した場合は、前の手順に戻って問題を解決してください。

OpenVPNは現在、DNS要求をPi-holeに送信するように構成されていますが、ファイアウォールを調整してすべてを機能させる必要があります。

ステップ6-ファイアウォールルールの調整

Pi-holeとOpenVPNの両方が構成されて実行されているので、ポート `+ 53 +`を開いて、Pi-holeのフィルターを通過したDNS要求がアップストリームDNSサーバーに継続できるようにします。

sudo ufw allow 53

Webブラウジングが正常に機能するには、HTTPおよびHTTPSトラフィックのファイアウォールを開きます。

sudo ufw allow http
sudo ufw allow https

次に、ポート「53」の「+ 10.8.0.0 / 24 」から「+10.8.0.1」のIP範囲で発生するすべての「+ udp 」および「 tcp +」の送信を許可するようUFWに指示します。 これにより、VPNのIP範囲からのDNSクエリがフィルタリングのためにPi-holeに渡されます。

sudo ufw allow proto udp from 10.8.0.0/24 to 10.8.0.1 port 53
sudo ufw allow proto tcp from 10.8.0.0/24 to 10.8.0.1 port 53

同様に、IP範囲「+ 10.8.0.0 / 24 」で発生するWebトラフィックが、ポート「+80」の「10.8.0.1」でVPNサーバーを通過できるようにします。

sudo ufw allow proto tcp from 10.8.0.0/24 to 10.8.0.1 port 80

変更を適用するには、UFWをリロードします。

sudo ufw reload

成功すると、出力は次のようになります。

Output from ufw reloadFirewall reloaded

問題が発生した場合は、画面上のメッセージに従って問題を解決してください。

ファイアウォールがOpenVPNとPi-hole用に構成されたので、Web管理インターフェースにログインして、Pi-holeのフィルタリング機能を調べることができます。

手順7-ブロックリストを使用したフィルタリング

Pi-holeには、プロジェクトの開発チームが管理するデフォルトのブロックリストのセットが付属しています。ただし、これらのリストだけでは必ずしも十分ではありません。 理想的には、特定の閲覧習慣と使用するアプリケーションに合わせてブロックリストを調整する必要があります。 Pi-holeの管理ウェブインターフェースでブロックリストなどを管理できます。

WebインターフェースでPi-holeを管理するには、https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04#stepが必要です-12-install-the-client-configuration [OpenVPNネットワークに接続]最初に。 接続したら、Webブラウザーを操作して、 `+ http:/// admin +`にあるWebインターフェースのデフォルトのホームページに移動します。

過去24時間にブロックされたクエリの数、過去24時間にクエリされたクエリの数*、過去24時間にブロックされたクエリの数*、およびブロックリストの*ドメインの数を報告するウィジェットを含む画面が表示されます。 また、過去24時間のクエリ*のグラフ、Pi-hole *ステータス*インジケータ、およびPayPalの*ダッシュボード、*ログイン*画面、および*寄付*ページのナビゲーションオプションも表示されます。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/widnli.png [ログインしていないWebインターフェイスダッシュボード]

[ログイン]をクリックして、完全なインターフェースにアクセスします。 プロンプトが表示されたら、最後のPi-holeインストール画面で受け取ったパスワードをリンク:#step-3-%E2%80%94-running-the-installation-script [ステップ3]に入力します。

ログイン後、インターフェースの一般的なレイアウトは同じままですが、画面の左側にメニューオプションが追加され、*一定期間にわたるクエリタイプ*および*一定期間にわたる宛先の転送*の追加ウィジェットが含まれるようになります。 。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/widli.png [ログインしたWebインターフェイスダッシュボード]

追加のブロックリストをPi-holeに追加する前に、プロジェクトのメンテナーから公式のブロックリストデータを更新する必要があります。最新の更新には、手動で追加するデータソースの一部またはすべてが含まれている可能性があります。

画面の左側で、*ツール*をクリックしてナビゲーションメニューを展開し、*リストの更新*を選択します。

次の画面で、画面の中央にある青色の[リストの更新]ボタンをクリックして、公式ブロックリストソースの最新バージョンを取得します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/wiuload.png [広告配信ドメインのリストを更新するWebインターフェイス]

Pi-holeが更新を実行すると、リストデータを取得するソース、前回の更新以降ソースが変更されているかどうか、インストールにデータがインポートされたかどうかが表示されます。 完了すると、画面上部の緑色のバーに* Success!*と表示されます。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/wiuload2.png [Webインターフェースの広告配信ドメインのリストを更新]

公式のブロックリストデータが更新されたら、独自のブロックリストを追加できます。

Pi-holeの主な設定オプションについては、画面の左側にあるナビゲーションメニューの[設定]をクリックします。

次の画面で、* Pi-Hole’s Block Lists というラベルの付いたボックスの + *記号をクリックして、現在のブロックリストデータを表示します。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/wiaabl.png [追加のブロックリストを追加するWebインターフェイス]

デフォルトでは、Pi-holeはフィルタリングに次のブロックリストを使用します。

新しいリストをインストールに追加するには、ペインの下部にある入力フィールドにリストのソースURLを入力し、[保存して更新]ボタンを押して追加を保存し、[リストの更新]機能を再実行します。 これにより、新しいブロックリストソースに関連付けられたデータが自動的に取り込まれます。

疑わしいリスト、広告リスト、追跡およびテレメトリリストなどのカテゴリに分類された追加のブロックリストについては、https://wally3k.github.io/ [The Big Blocklist Collection]を参照してください。

デフォルトのブロックリストを更新し、手動でさらに追加する方法を学習したので、ブラックリストとホワイトリストを使用したリクエストのフィルタリングを見てみましょう。

ステップ8-ブラックリストとホワイトリストを使用したフィルタリング

Pi-holeがDNS要求をフィルタリングするために使用するブロックリストに加えて、ブラックリストで個々のドメインをターゲットにすることもできます。 ブラックリストは、特定のドメインとの間で送受信されるリクエストを自動的にドロップします。 これは、仕事に適していないコンテンツやウイルスやその他のマルウェアをホストしていることが知られているコンテンツを含むドメインをブロックする必要がある企業やその他の組織にとって特に役立ちます。

ドメインをブラックリストに登録するには、画面左側のメインナビゲーションで[ブラックリスト] *をクリックします。

次の画面で、* exact または wildcard *ブロッキングをドメインに追加できます。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/wibs.png [Webインターフェイスブラックリスト画面]

*完全*ブロックでは、*ドメインの追加*入力フィールドに入力した値と完全に一致するドメインのみがブロックされます。 つまり、入力フィールドに「+ example.com 」と入力すると、「 example.com 」との間のリクエストはブロックされますが、「 www.example.com +」との間のリクエストはブロックされません。

*ワイルドカード*ブロックでは、入力したドメインと関連するhttps://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts#domain-terminology[subdomains]の両方ブロックされます。 この場合、それは `+ example.com `と ` www.example.com +`の両方がブロックされることを意味します。

「ドメインを追加」入力フィールドに「+ pi-hole.net +」と入力してブラックリスト機能をテストし、「追加(正確)」ボタンをクリックします。 * pi-hole.net *は、*ブラックリスト*画面の*完全ブロック*の下にリストされています。

画像:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/wibp.png [Web Interface Blacklisting pi-hole.net]

`+ pi-hole.net `に対するリクエストは、Pi-holeのブラックリストフィルターによってブロックされます。 Webブラウザを ` https:// pi-hole.net +`に移動してみてください。 エラーメッセージはブラウザごとに異なりますが、このアドレスに到達することはできなくなります。

*完全ブロック*から「+ pi-hole.net +」を削除するには、ドメインの右側にある白いゴミ箱アイコンの付いた赤いボタンをクリックします。

スペクトルの反対側では、ホワイトリストはPi-holeに、特定のドメインとの間のすべてのリクエストが常にフィルターを通過できるように指示します。 ホワイトリストは、正当なドメインが使用中のブロックリストに含まれる場合、または広告ベースのコンテンツと広告以外のコンテンツが混在するドメインへのトラフィックを許可する場合に役立ちます。

ドメインをホワイトリストに登録するには、画面の左側のメインナビゲーションで[ホワイトリスト]をクリックします。

次の画面で、ホワイトリストに登録する新しいドメインを追加し、どのドメインがすでにホワイトリストに登録されているかを確認できます。

image:http://assets.digitalocean.com/articles/block-ads-using-pi-hole/widws.png [Webインターフェイスのデフォルトのホワイトリスト画面]

自分でドメインをまだホワイトリストに登録していない場合でも、デフォルトでは、Pi-holeはブロックリストの更新に使用するドメインをホワイトリストに登録します。 これは、あるブロックリストが別のブロックリストをブロックしないようにするためです。

さらに、ワイルドカードでブロックされたドメインのサブドメインをホワイトリストに登録できないことを説明する*注*に注意してください。 これは、「+ example.com 」に既にワイルドカードブロックがある場合、「 www.example.com 」をホワイトリストに登録してもサブドメインにアクセスできないことを意味します。 「 example.com 」をブラックリストに登録し、「 www.example.com 」をホワイトリストに登録するには、代わりに「 example.com +」に正確なブロックを適用する必要があります。

ドメインをホワイトリストに登録するには、[ドメインの追加]入力フィールドにドメインを入力し、[追加]ボタンを押します。 Pi-holeは、「ホワイトリストに追加中…」というメッセージを1回短く点滅させ、続いて「成功! リストが更新されます*。 両方のメッセージが消え、ホワイトリストに登録されたドメインのリストに入力したドメインが含まれます。

ホワイトリストからドメインを削除するには、ホワイトリストに登録したくないドメインの右側にある白いゴミ箱アイコンの付いた赤いボタンをクリックします。

最後に、インストールのブラックリスト機能およびホワイトリスト機能をテストするには、Pi-holeの公式リストhttps://pi-hole.net/pages-to-test-ad-blocking-performance/ [セットアップの広告ブロックをテストするページパフォーマンス]。

結論

これで、ネットワーク上のDNS要求をフィルタリングするシンプルで効果的な方法が得られましたが、個人のブラウジングの習慣に合わせてブロックリストを少し調整する必要がある場合があることに注意してください。

Pi-holeを実行する別の方法については、https://github.com/diginc/docker-pi-hole [Pi-holeをDockerコンテナに配置するこのプロジェクト]を参照してください。

または、ネットワークセキュリティをさらに強化するために、現在のPi-holeインストールでhttps://github.com/pi-hole/pi-hole/wiki/DNSCrypt[enable DNSCrypt]を実行してプライベートで安全なhttpsを作成する方法を見つけてください。 ://www.digitalocean.com/community/tutorials/how-to-create-an-intranet-with-openvpn-on-ubuntu-16-04 [イントラネット]。

一般的な情報やその他の質問については、https://discourse.pi-hole.net/latest [公式のPi-holeディスカッションフォーラム]にアクセスしてください。