Armoris日記 Pi-holeで不審なドメインを遮断編

このブログは、数年前にN高等学校を卒業し株式会社 Armoris にやってきたアルバイト Kaepi が書いています。

あるもりすぶろぐの内容は個人の意見です。

概要

今回はPi-holeの導入と設定方法、使い方を紹介しようと思います。
Pi-holeはDNSシンクホール(DNSサーバーの一種)で、不審なドメインを遮断することができます。 DNSシンクホールとは、問い合わせがあったドメインブラックリストに登録されていた場合に、指定したIPアドレス (127.0.0.1など)を返すことで正常に名前解決をできないようにして、本来の通信を阻止するというものです。

Pi-holeを使うメリットは

  • マルウェアなどをホストしている不審なドメインを事前にブラックリストに登録しておくことでセキュリティの向上につながる
  • LAN内にキャッシュサーバーがあることで通信速度が若干早くなる

などがあります。

以下はPi-hole導入時の動作イメージです

f:id:Armoris:20210831140014p:plain
Pi-holeの動作イメージ

環境

f:id:Armoris:20210831123821p:plain

セットアップ

  1. インストールの手順
  2. DNSの設定

インストール

  • docker-pi-holeのインストール
$ git clone https://github.com/pi-hole/docker-pi-hole.git
$ cd docker-pi-hole
$ mv docker-compose.yml.example docker-compose.yml
  • 起動
$ docker-compose up -d
  • パスワードの設定
$ sudo pihole -a -p
  • 管理画面にアクセス
    Pi-holeを起動したサーバーのipをブラウザで開いてログイン
    f:id:Armoris:20210826145557p:plain

DNSの設定(windows)

  • コントロールパネルからネットワークと共有センターを開きます。
  • 画面右側の接続からプロパティを開き、インターネットプロトコル バージョン4(TCP/IPv4)をクリックするとDNSの設定画面が見れます。
    f:id:Armoris:20210826145623p:plain
  • 次のDNSサーバーのアドレスを使うをクリックして先ほど用意したサーバーのIPアドレスを設定します。
    f:id:Armoris:20210826145628p:plain

DNSの設定(iOS)

iOSの設定方法も紹介しておきます。
* 接続しているWiFiの右側にある青いボタンをタップします。

f:id:Armoris:20210826152833p:plain
* 下から2番目のDNSの設定を開きます。
f:id:Armoris:20210826152830p:plain
* Manualを選択して最初からあるIPアドレスを消してPi-holeのIPアドレスを設定します。
f:id:Armoris:20210826152825p:plain

ルーターDNS設定を変更する場合は端末ごとに設定する必要はありません。

ブラックリストの追加

これで設定は完了ですが、最初から用意されているブラックリストではあまり効果がないのでブラックリストの追加をします。

f:id:Armoris:20210826145601p:plain
今回は悪いインターネット様のリストを使わさせていただきました。
左側のメニューのGroup ManagementのAdlistsを開き、Address:に先ほどのサイトからコピーしてきたホストファイルのリンクをペーストします。
追加が終わったら

$ pihole -g

を実行することでリストが更新されます。

まとめ

インストール作業がCLIだったり24時間稼働できるパソコンが必要だったりとちょっとハードルは高いPi-holeですが、各種設定はブラウザからできて機能も豊富なのでとても便利です。
今回はお試しだったのでWindowsのDocker Desktopで動かしましたが、Pi-holeの名前の通りraspberry Piでサーバーを建てておくのを想定されてるっぽいので時間があるときにraspberry Piを買って試してみようとおもいます。