/

Zimablade上で動くCasaOSにPi-holeを入れ、DNSとして動かす

Zimablade上で動くCasaOSにPi-holeを入れ、DNSとして動かす方法です。

Pi-holeは名前に"Pi"と入っていますがRaspberry Pi上でのみ動くものではなくLinuxもしくはdocker環境で動きます。

また、CasaOSがすでにインストールされている前提です。

なお、CasaOSに入れるとしていますが正しくはZimablade上で動くDebianに既にdockerが入っているので、Pi-holeはDebian上でdokcerコンテナとして動きます。

CasaOS上からはPi-holeの起動や設定を行なえるだけでCasaOS上で動くわけではありません。

Pi-holeのインストール

CasaOSの動いているマシンのネットワーク上のIPは192.168.1.100として話を進めます。 また、Pi-holeではhone-choko.comのみallow domainとする設定を行います。(whitelistにhone-choko.comのみが入っていて、それ以外のドメインは許可されていない)

  1. CasaOSのホーム画面から"App Store"をクリックします
  2. 検索窓に"Pi-hole"と入力するとPi-holeが表示されるのでinstallを選びます
  3. installが完了したらホームにPi-holeのアプリアイコンが表示されるので、右上の...をクリックして設定(settings)を選びます
  4. ネットワークがhostであるのを確認します、hostではない場合はhostを選んで保存し再起動を待ち、それから次に進みます
    設定画面
    設定画面
  5. CasaOSのWebUIのポートを81に変えます。なお80以外のポートであれば問題ありません。画面が見られなくなるはずなのでCasaOSの画面のブラウザのURLを192.168.1.100:81に変えて再度表示します。
    CasaOSの設定画面
    CasaOSの設定画面
  6. 設定画面の上の方にターミナルアイコン(xボタンの左 ホバーするとTerminalとログと出る)があるのでそれをクリックするとターミナルが立ち上がるので下記$ sudo pihole setpasswordを叩き、パスワードを設定します
  7. Pi-holeのアプリアイコン右上の...をクリックして設定(settings)を選びWebUIのポート部分を:80に変えて保存し再起動するのを待ちます
  8. Pi-holeアイコンをクリックし、設定したパスワードでログインして管理画面WebUIを開きます
  9. Domainsをクリックし、Regex filterを選択し、.*を入れて"add to denied domains"をクリックします。
  10. 次にDomainを選択し、hone-choko.comを入れて"add to allowed domains"をクリックします。
    Pi-hole
    Pi-hole 管理画面
  11. 同ネットワーク内の別のマシンで下記を確認
# 返ってきたらOK
$ nslookup hone-choko.com 192.168.1.100`
# 返ってこなかったらOK
$ nslookup google.com 192.168.1.100

Linuxマシン(Ubuntu Pi-holeのDNSを使うマシン)でのDNS設定

DNSとして192.168.1.100だけを見るようにします。

# /etc/systemd/resolved.conf.d/dns_servers.confの作成
$ sudo mkdir -p /etc/systemd/resolved.conf.d
$ sudo vim /etc/systemd/resolved.conf.d/dns_servers.conf
[Resolve]
DNS=192.168.1.100
Domains=
DNSStubListener=no

$ sudo vim /etc/NetworkManager/NetworkManager.conf
# mainに dns=no を追加
[main]
dns=none

# resolv.confの変更
$ sudo rm /etc/resolv.conf
$ echo "nameserver 192.168.1.100" | sudo tee /etc/resolv.conf
$ sudo chattr +i /etc/resolv.conf

# systemd-resolvedの再起動
$ sudo systemctl restart systemd-resolved

# networkmanagerの再起動
$ sudo systemctl restart NetworkManager

# google.comで返ってこないのを確認
$ curl google.com
curl: (7) Failed to connect to google.com port 80 after 9 ms: Couldn't connect to server

以上。


更新履歴

  • 2025/6/14 Pi-holeの起動方法とDNSの設定方法を変更