2018年11月14日

UbuntuServer18.10 PiHoleで悪質サイト・広告をブロッキング

pi-holeはdnsmasqを利用したDNSベースの広告ブロックソフトウェアらしい。
じゃあ前回dnsmasqでブロックの設定を行ったがそれと何が違うの?ってことだが、ウェブ管理機能からいろいろ確認・設定ができたりするっぽい。
とりあえず試しに入れてみる。


始める前に


既存のUbuntuServerにインストールしようとしたらエラーがでてインストールできなかった。
これはどうも、インストールウィザードでWEB管理画面は使用するけど、Pi-Holeがデフォルトで使用したいLighttpdはインストールしないよう選択したからっぽい。
上記のようにインストールするとなぜか途中でインストーラがこける。
Webサーバはnginxを使用したかったのだが。

次善の策としては
  1. nginxを停止
  2. インストーラでlighttpdインストール
  3. lighttpd停止・アンインストール
  4. nginxでPi-Hole使用設定
  5. nginx起動
みたいにすれば設定できるかも知れない。

が、今回はまっさらなUbuntuServerをVMwareで1台新規作成して導入してみた。

ほ、ほら、2台に分かれてれば
  • DNS制限する場合 PC → PiHoleサーバ → dnsmasqサーバ → インターネット
  • DNS制限しない場合 PC → dnsmasqサーバ → インターネット
みたいに切り替えて使用できるかもしれないし。。。

既存のサーバにはこっちのまっさらなほうで普通にインストールしてみて成功したら試すことにする。。。


インストール


公式にインストール用のスクリプトがある。 下記のように利用しろとのこと。
sudo curl -sSL https://install.pi-hole.net | bash

  1. しばらく待っているとインストーラが起動する。
    インストールするよ、というメッセージが表示されるので【了解】する。
    インストール

  2. ライセンスについて【了解】。
    ライセンスについて

  3. サーバは固定IPじゃないとダメだよ。
    固定になってない場合以降のページで設定できるよ。【了解】。
    サーバのIPアドレスについて

  4. 上位DNSの選択。
    今回は別に以前に構築したdnsmasqが動いているサーバを選択するため、Customを選択。
    上位DNS選択
    サーバのIPアドレスを入力し【了解】。
    上位DNSのIPアドレス入力
    入力内容の確認が表示されるので、間違ってないことを確認し【はい】。
    上位DNSの入力確認

  5. 必要パッケージの選択。
    とりあえずそのまま【了解】
    必要パッケージの選択

  6. 動作させるIPプロトコルの選択。
    そのまま【了解】
    IPプロトコルの選択

  7. このサーバに設定されているIPアドレスは固定IPですか?
    【はい】。
    固定IPの確認

  8. ルータのDHCPが別の機器にこのIPを割り当てて衝突してしまうことがあるかもしれません。
    でもまぁ大体のルータは頭いいので大丈夫ですよ、的な。【了解】
    DHCPの警告

  9. WEB管理画面を有効にするか。
    使いたいのでそのまま【了解】。
    WEB管理画面の使用有無

  10. Webサーバとしてlighttpdをインストールするかどうか。
    使用するためそのまま【了解】。
    Webサーバの使用

  11. ログを残すかどうかの選択。
    そのまま【了解】。
    ログの使用

  12. ここまで入力するとインストールが始まるので、しばらく待機。

  13. ファイアウォールが動いてるけど、Pi-HoleはHTTPとDNSのポートを使うよ。
    後で見直すとしてここではとりあえず【はい】。
    ファイアウォール設定

また、しばらく待つとインストールが完了する。 この画面にはWEB管理ページでログインするためのパスワードなどが書かれてるため、メモっておく。
インストール完了


ファイアウォール設定


サーバを再起動したらファイアウォールに阻まれるようになった。
どうもインストール時のファイアウォールへの穴開けは一時的なだけらしい。
というわけで設定。
sudo ufw allow from 192.168.XXX.XXX/24 to any port http
sudo ufw allow from 192.168.XXX.XXX/24 to any port domain
sudo ufw reload



WEB管理画面にアクセス


WEBブラウザから
http://サーバのIPアドレス/admin
と入力するとPi-Holeの管理画面が表示できる。
Web管理画面

左側にあるログインをクリックするとログイン画面が表示される。
ここにインストール完了時に表示されたパスワードを入力すると、設定画面に移動できる。
ログイン画面

ログインするとより詳細な情報の確認や設定を行える。
WEB管理画面
裏はdnsmasqが動いているので、dnsmasqで出来る設定はだいたいできる。
DHCPサーバも設定すれば動かせる。
WEBから設定も出来るし、dnsmasq設定したことがあるなら/etc/dnsmasq.confを直接いじってもいい。


Pi-Holeの使用


ローカルマシンでPi-Holeの恩恵にあずかるために参照するDNSサーバの設定を行っておく。
ローカルマシンに個別に割り当ててもいいし、DHCPサーバで割り振るようにしてもいい。
この辺りは個人の環境次第で。

自分は以前に別サーバに構築したdnsmasqのDHCPで配布するようにした。
ついでにそっちのサーバで指定していたブロック設定は解除。


ブラックリストの登録


Pi-Holeをデフォルトでいくつかのブラックリストが登録されているが、日本向けのものがないので、自分で登録する。
登録元は前回もお世話になった悪いインターネットのものを利用する。

【setting】→【Blocklists】と進むと現在登録されているブラックリストの一覧が表示される。
画面の下部にテキスト入力エリアが表示されるので、登録したいリストのアドレスを入力し、右下【Save and Update】ボタンを押下すると登録と最新版のリストの取得が行える。
20181114_17.png

海外サイトとか見ないなら元々あるやつとか消しても。
お好みで。


コマンド


コマンドからでも操作可能。
# アップデートの確認
sudo pihole -up --check-only
# アップデート
sudo pihole -up
# 登録ブロックリストの更新
sudo pihole updateGravity
cronにでも登録して週次辺りでまわしておくと吉。


終わり


Web画面からログを見てブラックリストに登録したり、ホワイトリストを登録できるのは普通にdnsmasqだけで運用してるより自由度が高くて便利。
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/184920122
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック