Debian etch on 玄箱: squidGuard
- 公開日: 2008/11/02(日) 15:04[JST]
- 更新日: 2021/02/13(土) 18:53[JST]
玄箱の設定は終わった、かと思ったが、squidGuardの設定でちとつまづいたのでメモっておく。
FreeBSDだと標準でブラックリストがインストールされているのだけど、Debianだと自分でインストールしなきゃならない。そこで、sourceforge.jpのsquidGuardの記事を参考に、ブラックリストをインストールしてみた。
aptでsquigGuardをインストールしたら、次はShalla Secure Servicesからブラックリストを取得して適当なフォルダに解凍(ちなみに、wgetがまだインストールされていないことにこの時気づいた)。解凍すると、BLディレクトリができるので、その下の全てのディレクトリを /var/lib/squidguard/db/ にコピー(BLディレクトリ自身はコピーしない)。続いて、コピーしたディレクトリとその下のファイルの所有者を squid:squid に変更。
そして、 /etc/squid/squidGuard を編集。ブラックリストは、まず``/var/lib/squidguard/db/`` の下に項目名のディレクトリがずらずらっとならんでいて、そのディレクトリの下に domains と urls という、ブラックリストのドメインとURLが記録されたテキストファイルが保存されている。このファイルをBerkley DB形式に変換したものを、squidGuardは読み取って使用する。
そのために、まず domains と urls をBerkley DB形式に変換する必要がある。変換は、変換対象の項目名を /etc/squid/squidGuard.conf に登録して、 squidGuard -C all を実行すればよい。うちの場合、フィルタリングするのは、downloads, drugs, gamble, hacking porn, sex, spyware, tracker, violence, warezくらいなので、以下のように squidGuard.conf を設定した。xxx.xxx.xxx.xxx/yyは適当にLANのネットワークアドレスとサブネットマスクに置き換えてください。
# # CONFIG FILE FOR SQUIDGUARD # dbhome /var/lib/squidguard/db logdir /var/log/squid # # SOURCE ADDRESSES: # source sample-clients { ip xxx.xxx.xxx.xxx/yy } # # DESTINATION CLASSES: # dest downloads { domainlist downloads/domains urllist downloads/urls } dest drugs { domainlist drugs/domains urllist drugs/urls } dest gamble { domainlist gamble/domains urllist gamble/urls } dest hacking { domainlist hacking/domains urllist hacking/urls } dest porn { domainlist porn/domains urllist porn/urls } dest sex { domainlist sex/lingerie/domains urllist sex/lingerie/urls } dest spyware { domainlist spyware/domains urllist spyware/urls } dest tracker { domainlist tracker/domains urllist tracker/urls } dest violence { domainlist violence/domains urllist violence/urls } dest warez { domainlist warez/domains urllist warez/urls } acl { sample-clients { pass !downloads !drugs !gamble !hacking !porn !sex !spyware !tracker !violence !warez any } else { pass any } default { pass none redirect http://admin.foo.bar.no/cgi/blocked?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%s+t argetclass=%t+url=%u } }