Skip to main content

Using squid as a content filter for kids.

子ども用の MacBook Air に Squid をセットアップした。

その背景は、ペアレンタルコントロール機能に含まれる Safari のアクセス許可機能で、ウェブサイトによっては何度もアクセス許可ダイアログが出て煩わしかったため。

Squid のセットアップは簡単で、homebrew で Squid をインストールして squid.conf を以下のように書き換えて、起動するだけ。sites.whitelist.txt にホワイトリストに含めるドメインを記述する。

# http_access allow localhost
# http_access allow localnet

acl whitelist dstdomain "/usr/local/etc/squid/sites.whitelist.txt"
http_access allow whitelist

ネットワークのプロキシ設定で Squid の URL を指定すれば、ホワイトリストに含まれるサイトのみ閲覧できるようになる。

一点、運用が煩雑なのは、CDN など、ウェブサイトが使用する外部ドメインも含めて、すべてホワイトリストに追加する必要がある点。ドメインの追加作業はある程度自動化できそうな気もするが頻繁に発生するものでもないので、このままでもよさそう。

セットアップは簡単と書いたが、実は、最初に管理者アカウントでセットアップしたため、pid や log ファイルのパーミッションが足りないことに気づかず、時間を食ってしまった。brew services からのサービス起動は、起動に成功したかどうかがいまいち伝わりづらい。brew services run や brew doctor を実行して気がついた。そもそも homebrew 自体が、複数ユーザを使い分ける Mac でのユースケースには向いていないかも。