Qnap 第7回: 「Privoxy」を利用した広告ブロックを使う
せっかくのホームサーバ的な機能が使えるのでもう少し進めてみます。 Qnapではパッケージ管理ソフトとして qpkgという機能がありますがもっとlinuxライクに使うために ipkgというものがあります。(これもQpkgから導入出来ます)
このiPkgを使用することでさらに機能を増やすことができます。
家で利用するにあたって子どもたちに有害なサイトを見せなくしたり、また同じサイトへのアクセスを高めるためにキャッシュを利用したりということができます。残念がら ipkgに入っているソフトでは出来ないのですがオンラインでのウィルススキャンなども可能になります。セキュリティなども問題になる昨今ですのでいずれは設定しておきたいですね。
今回は、ipkgがすでに用意されている広告ブロック(Privoxy)をコンテンツフィルタ(dansguardian)について設定をしてみたいと思います。本来はコンテンツフィルタからウィルス検知も出来たり squidとURLフィルタリングを組み合わせたりすることもできます。
準備
QPKGからまずはOptware-ipkgを導入します。これでパッケージ管理ソフトのipkgコマンドを利用することができるようになります。あまり高機能ではありませんがひと通りのことができます。
ipkg update ipkg list ipkg install (pakage name)
上記のような感じで使っていけば問題ないです。
広告ブロック (Privoxy)
このソフトウェア自体は、単体でデーモンとして動作します。ユーザからのリクエストをPrivoxyで受信してその後後方のProxyサーバ(squid)へ転送するという流れです。Squidは必須ではありませんが若干でもキャッシュの有効性を信じて利用します。
正確には広告ブロックではなくて、Webのコンテンツ情報を書き換えるフィルタリングソフトです。フィルタの機能を利用して広告などの情報をブロックするのに利用します。コンテンツを参照した際、URLが *.action ファイルの定義にマッチすると該当するフィルタ *.filter が適応されてブラウザに返答します。この処理部分は正規表現で記載できるのが便利です。
Privoxyの導入/設定
# ipkg install privoxy
これで導入ができます。導入されたモジュールは /opt 以下に導入されています。設定ファイルは /opt/etc/privoxy/conifg に該当します。
listen-address 192.168.2.245:8118 buffer-limit 8192 forward / 127.0.0.1:2345 forward 192.168.2.245 .
基本、そのままで動くのですがIPアドレス(これはローカルアクセスがディフォルトなので外部から接続できるように変更します。また後方のproxyにつなげるために forwardを追加します。2つ目のforwardは、仮にsquidが停止していた場合、qnapの管理画面にアクセスができなくなるのを防ぐために記載しています。
自動起動の設定
Qnapの自動起動は若干複雑です。他のサイトにも乗っていますが /tmp/config/autorun.sh という箇所に記載することになります。この際、この/tmp/configという場所に特定のデバイスが使用されるので注意します
今回の機種は 219のため記事を参考にすると
mount -t ext2 /dev/mtdblock5 /tmp/config vi /tmp/config/autorun.sh chmod +x /tmp/config/autorun.sh umount /tmp/config
という感じで行うことになります。起動させるのは /opt/sbin/privoxy となります。
設定を追加する
実際にどのようになるのか追加してやってみます。したの画像はiPhoneでまとめサイトにアクセスした際に表示されています。これをフィルタリングしてみます。
設定の仕方は色々ありますが簡単な方法で user.action に追加してみましょう
{ +block } *.livede55.com* *.bbchat.tv* *.microad.jp* *.maido3.* *.accesstrade.net* *.yicha.jp*
このようなブロックアクションを追加してみてください。広告自体のURLをしらなければいけないのが注意です。その他色々な広告のURLなどはネットに情報として上がっているので探してみるのともいいかと思います。
再度アクセスするとこのような感じで広告が消えているのがわかります。
長くなるので一旦広告ブロックの Privoxyだけで終わっておきます。別のエントリーでコンテンツフィルタについても書きたいと思います。 子供がある程度大きくなった場合など有害なサイトをブロックする意味でも導入しておきたい機能です。
今回は Privoxy とバックエンドで Squid を併用していますが iOSなどブラウザでタブが移動するとリロードになる感じのはそれなりに恩赦を感じるのではないでしょうか?
目次