Pi-hole

提供: ArchWiki
2024年8月15日 (木) 13:40時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (Category:ドメインネームシステム)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

GitHub の Pi-hole の README.md より:

Pi-Hole™ は広告を排除する DNS ウェブサーバーです。広告ドメインに問い合わせがきた場合、広告の代わりに小さなウェブページや GIF が返されるようになります。
gravity.sh によって多数のソースから広告のドメインを取得して1600万以上のエントリからなるリストが作られます (mahakala リストを使用した場合)。スクリプトは pihole コマンドで制御できます。pihole でどのようなコマンドが実行できるのか確認するには pihole -h を実行してください。

この wiki ページではメインプロジェクトで公式にサポートされていない Arch Linux で Pi-hole を動作させるための設定や使用方法を説明します。バグや問題については、サーバーパッケージは pi-hole-server の AUR ページ を、スタンドアロンパッケージは pi-hole-standalone の AUR ページ を参照してください。

Pi-hole サーバー

インストール

pi-hole-ftlAURpi-hole-serverAURインストールしてください。

初期設定

Dnsmasq

dnsmasq を設定することで DNS クエリを解決して pi-hole で直接広告を管理することができます。

dnsmasq を既に使っている場合: /etc/dnsmasq.conf を編集して最後の行をコメントアウトして /etc/dnsmasq.d ディレクトリに存在する pi-hole の設定ファイルを指定してください:

# sed -i 's|#conf-dir=/etc/dnsmasq.d/,\*.conf|conf-dir=/etc/dnsmasq.d/,\*.conf|' /etc/dnsmasq.conf

dnsmasq を使ったことがない場合: 元の設定ファイルを pi-hole-server に含まれているファイルに置き換えてください:

# cp /etc/pihole/configs/dnsmasq.main /etc/dnsmasq.conf

必要であれば、dnsmasq.service有効化して再起動してください。Pi-hole を LAN の DNS とする必要があります。ルーターを DNS として使っている場合、Pi-hole が動作しているマシンの IP アドレスを使うようにルーターの DNS を再設定してください。ルーターの設定についてはこの記事では扱いませんが、必須の作業です。

ウェブサーバー

Pi-hole のウェブインターフェイスとしてウェブサーバーを使うことができます。

ノート: Pi-hole は必ずしもウェブインターフェイスを必要としません。様々なコマンドが CLI インターフェイスから使うことができます。

上流では公式に lighttpd をサポートしており設定ファイルを用意しています。AUR パッケージには nginx の設定ファイルも含まれており、すぐに使うことができます。他のウェブサーバーでも webUI を使うことはできますが、サポートはされていません。

どのウェブサーバーを使うにせよ以下の設定を編集して sockets 拡張を有効にする必要があります:

/etc/php/php.ini
[...]
extension=sockets.so
[...]
Lighttpd

lighttpdphp-cgiインストールしてください。元の設定ファイルをバックアップして pi-hole の設定ファイルをコピーしてください:

# cp /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.orig
# cp /etc/pihole/configs/lighttpd.conf /etc/lighttpd/lighttpd.conf

必要であれば lighttpd.service起動有効化してください。

Nginx

nginx または nginx-mainlinephp-fpmインストールしてください。

/etc/php/php-fpm.d/www.conf を編集して listen ディレクティブを以下のように変更してください:

listen = 127.0.0.1:9000  

/etc/nginx/nginx.conf を編集して http セクションに以下を記述してください:

gzip            on;
gzip_min_length 1000;
gzip_proxied    expired no-cache no-store private auth;
gzip_types      text/plain application/xml application/json application/javascript application/octet-stream text/css;
include /etc/nginx/conf.d/*.conf;

パッケージに含まれている pi-hole の設定をコピー:

# mkdir /etc/nginx/conf.d
# cp /etc/pihole/configs/nginx.pi-hole.conf /etc/nginx/conf.d/

必要であれば nginx.servicephp-fpm.service起動有効化してください。

設定のアップデート

ヒント: アップデートしたときに dnsmasq やウェブサーバーの設定ファイルが変わっていない場合、このセクションの手順を実行する必要はありません。

dnsmasq の設定ファイルをアップデート:

# [ -f /etc/dnsmasq.orig ] && cp /etc/pihole/configs/dnsmasq.main /etc/dnsmasq.conf

lighttpd の設定ファイルをアップデート:

# [ -f /etc/lighttpd/lighttpd.orig ] && cp /etc/pihole/configs/lighttpd.conf /etc/lighttpd/lighttpd.conf

nginx の設定ファイルをアップデート:

# cp /etc/pihole/configs/nginx.pi-hole.conf /etc/nginx/conf.d/

ウェブインターフェイス

Pi-hole ウェブインターフェイスを使うことで、dnsmasq を様々に設定したり、Pi-hole のコマンドを実行したり、ホワイトリスト・ブラックリストを制御したり、広告フィルタリングを監視したりすることができます。ウェブインターフェイスに接続:

http://<IP/Hostname of Pi-hole machine>/admin/

または:

http://pi.hole/admin

FTL

FTL は Pi-hole プロジェクトのひとつで、Pi-hole の DNS クエリのログのフロントエンドとなるデータベースのようなラッパーあるいは API です。FTL は /etc/pihole/pihole-FTL.conf で設定できます。詳しくは プロジェクトドキュメント を読んでください。

Pi-hole スタンドアロン

Arch Linux の Pi-hole スタンドアロン版はモバイル端末で pi-hole サービスを使うために生まれました。Sky-hole の記事 も参照。

インストール

pi-hole-standaloneAUR パッケージをインストールしてください。

初期設定

Dnsmasq

上の #Dnsmasq セクションと同じように設定してください。

Openresolve

/etc/resolvconf.conf を編集して name_servers 行をアンコメントして resolvconf を更新してください:

# sed -i 's|#name_servers=127.0.0.1|name_servers=127.0.0.1|' /etc/resolvconf.conf
# resolvconf -u

ホストネームの解決でローカルホストに問い合わせて dnsmasq が使われるようになります。

設定のアップデート

ヒント: アップデートしたときに dnsmasq の設定ファイルが変わっていない場合、このセクションの手順を実行する必要はありません。

dnsmasq の設定ファイルをアップデート:

# [ -f /etc/dnsmasq.orig ] && cp /etc/pihole/configs/dnsmasq.main /etc/dnsmasq.conf

参照