Pi-hole
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-ftlAUR と pi-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 のウェブインターフェイスとしてウェブサーバーを使うことができます。
上流では公式に lighttpd をサポートしており設定ファイルを用意しています。AUR パッケージには nginx の設定ファイルも含まれており、すぐに使うことができます。他のウェブサーバーでも webUI を使うことはできますが、サポートはされていません。
どのウェブサーバーを使うにせよ以下の設定を編集して sockets 拡張を有効にする必要があります:
/etc/php/php.ini
[...] extension=sockets.so [...]
Lighttpd
lighttpd と php-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-mainline と php-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.service
と php-fpm.service
を起動・有効化してください。
設定のアップデート
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 の設定ファイルをアップデート:
# [ -f /etc/dnsmasq.orig ] && cp /etc/pihole/configs/dnsmasq.main /etc/dnsmasq.conf