この記事では Pi-hole を使って以下のような感じで自宅のネットワークの状態を確認できるようにします。うん、カッコいい!しかも実用性もちゃんとあります。
Pi-holeとは?
Pi-hole は広告ブロック機能がついた DNS サーバ兼 DHCP サーバです。自宅ネットワークのルータ等についている既存の DNS サーバや DHCP サーバを置き換える形で設置することで、ネットワーク内のすべての端末に広告ブロック効果をもたらしてくれます。端末ごとに広告ブロッカーを入れなくてもよいわけです。また上の画像ように項目が豊富でイカした管理画面がついており、状況を確認したり設定を変更したりなどの作業が簡単に行えます。
注意
- この記事では最初の導入方法しか扱いません。それ以上のことは別の記事を見たり、管理画面からいじってみたりしてください。
- ネットワークの構成を変えることによってネットに繋がらない等のトラブルになる可能性があります。設定後に様子がおかしかったら、手順の最後「既存の DNS サーバ、DHCP サーバの停止」の作業を取り消して復活させ、Pi-hole を停止してください。その際、操作している端末の再起動を行わないまま作業を完了するようにすれば問題なく戻せると思います。
導入手順
準備
デフォルトゲートウェイと DNS サーバと DHCP サーバの IP アドレスを調べておく必要があります。一般的な家庭のネットワークならそれらはすべてブロードバンドルータが担っているのでルータのアドレスを調べます。わからなければシェルから ping -t1 -c1 google.com
とかして調べます。
$ ping -t1 -c1 google.com
PING google.com (142.251.42.142) 56(84) bytes of data.
From gateway (192.168.10.1) icmp_seq=1 Time to live exceeded
--- google.com ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
上の場合、192.168.10.1
がルータのアドレスです。
Docker インストール
ここでは Docker 上に立てるので Docker と Docker Compose をインストールします。Ubuntuなら以下。
$ sudo apt install docker.io docker-compose
起動ファイル作成
Docker Compose で使う compose.yaml
ファイルを以下の中身で作成します。7行目の hogehoge
の部分は好きなパスワードに置き換えます。8行目の 192.168.10.2
の部分はこのファイルを置いているサーバの IP アドレスに置き換えます。
services:
pihole:
image: pihole/pihole
network_mode: host
environment:
TZ: 'Asia/Tokyo'
WEBPASSWORD: hogehoge
FTLCONF_LOCAL_IPV4: 192.168.10.2
WEB_PORT: 8100
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
cap_add:
- NET_ADMIN
restart: unless-stopped
起動
以下のコマンドで起動します。
$ sudo docker-compose up -d
ちなみに停止したい時は以下。
$ sudo docker-compose down
管理画面を開く
Web ブラウザで Pi-hole の管理画面にアクセスします。ポート番号は compose.yaml
の WEB_PORT: 8100
で指定した8100番です。気に入らなければそこから変えられますし、その行を消せば標準の80番になります。
http://192.168.10.2:8100/
ログイン画面が出るので設定したパスワードを入力し、ログインします。
管理画面で設定
サイドバーの「Settings」、上部のタブ「DHCP」を順に選び「DHCP server enabled」にチェックを入れます。「Router (gateway) IP address」に最初に調べたルータの IP アドレスを入れます。他は今すぐ必要な設定ではなかったり、よしなに設定されているはずなのでこれで一番下の「Save」ボタンを押します。
既存の DNS サーバ、DHCP サーバの停止
ルータのアドレスを Web ブラウザのアドレスバーに打ち込んでルータの管理画面を開きます。
http://192.168.10.1/
ここからは製品によりますが、管理画面から DNS サーバと DHCP サーバの設定を見つけてそれぞれ停止させてください。
おめでとう!これで君も スーパーハカー だ!!!