■前回はLennyにsquidGuardを導入した。
Debian Lenny にsquidGuardを導入
http://d.hatena.ne.jp/labunix/20120311
■Squeeze版squidGuardの導入(squidは事前に導入、設定済み)
$ sudo apt-get install -y squidguard
■ブラックリストの準備
$ wget http://squidguard.mesd.k12.or.us/blacklists.tgz
$ tar zxvf blacklists.tgz
$ sudo mv blacklists/* /var/lib/squidguard/db/
$ su
personal/domains:b.st-hatena.com
personal/urls:b.st-hatena.com/js/bookmark_button.js
■ブラックリストのDB化
2012-03-12 21:58:57 [2504] New setting: dbhome: /var/lib/squidguard/db
2012-03-12 21:58:57 [2504] New setting: logdir: /var/log/squid
2012-03-12 21:58:57 [2504] destblock good missing active content, set inactive
2012-03-12 21:58:57 [2504] destblock local missing active content, set inactive
2012-03-12 21:58:57 [2504] squidGuard 1.4 started (1331557137.380)
2012-03-12 21:58:57 [2504] db update done
2012-03-12 21:58:57 [2504] squidGuard stopped (1331557137.380)
■squidGuardのACL設定
echo -e "dest ${DIR} {\n\tdomainlist\t${DIR}/domains\n\turllist\t\t${DIR}/urls\n}\n"; \
done | wc -l
75
pass !ads !aggressive !audio-video !drugs !gambling !hacking !mail !personal !porn
!proxy !redirector !spyware !suspect !violence !warez all
52,127d51
dest ads {
domainlist ads/domains
urllist ads/urls
}
dest aggressive {
domainlist aggressive/domains
urllist aggressive/urls
}
dest audio-video {
domainlist audio-video/domains
urllist audio-video/urls
}
dest drugs {
domainlist drugs/domains
urllist drugs/urls
}
dest gambling {
domainlist gambling/domains
urllist gambling/urls
}
dest hacking {
domainlist hacking/domains
urllist hacking/urls
}
dest mail {
domainlist mail/domains
urllist mail/urls
}
dest personal {
domainlist personal/domains
urllist personal/urls
}
dest porn {
domainlist porn/domains
urllist porn/urls
}
dest proxy {
domainlist proxy/domains
urllist proxy/urls
}
dest redirector {
domainlist redirector/domains
urllist redirector/urls
}
dest spyware {
domainlist spyware/domains
urllist spyware/urls
}
dest suspect {
domainlist suspect/domains
urllist suspect/urls
}
dest violence {
domainlist violence/domains
urllist violence/urls
}
dest warez {
domainlist warez/domains
urllist warez/urls
}
155,156c79
pass !ads !aggressive !audio-video !drugs !gambling !hacking !mail !personal
!porn !proxy !redirector !spyware !suspect !violence !warez all
---
> pass local none
159d81
redirect http://www.labunix.net/block.html
■「squid.conf」の事前チェック
Squid Cache: Version 2.7.STABLE9
■「# ACCESS CONTROLS」の手前に挿入します。
330,332d329
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
redirect_children 8
redirector_bypass on
■apache等webサーバが稼動しているならローカルサーバに配置。
そうでなければ、外部Webサーバのブロックページを参照する。
■ブロック時のページを作成します。
※Webサーバが稼動している必要がある
$ su root -c 'echo \
"<html><head><title>Black</title></head><body><h1>Black</h1></body></html>" \
> /var/www/block.html'
■squidとsquidGuardの連携
※初回は「tail」に渡さずログをチェック。
存在しないファイルは、「touch」して空のファイルを作成しておく。
2012-03-12 22:19:20 [2721] destblock local missing active content, set inactive
2012-03-12 22:19:20 [2721] squidGuard 1.4 started (1331558352.272)
2012-03-12 22:19:20 [2721] db update done
2012-03-12 22:19:20 [2721] squidGuard stopped (1331558360.659)
■squidの再設定
■テスト
$ echo "http://www.rotten.com / - - GET" | squidGuard -d 2>&1 | tail -5
2012-03-12 22:22:10 [2744] squidGuard ready for requests (1331558530.643)
2012-03-12 22:22:10 [2744] source not found
2012-03-12 22:22:10 [2744] no ACL matching source, using default
http://www.labunix.net/block.html /- - -
2012-03-12 22:22:10 [2744] squidGuard stopped (1331558530.644)
$ w3m -dump http://www.rotten.com
Black
$ w3m -dump http://b.st-hatena.com/js/bookmark_button.js
Black
■余談
どのくらいのブラックリストが用意されているのか。
53420
1099058
ただし、各ログには、どのルールに引っかかってブロックされているのか分からない。
アクセスログでさえ、リダイレクトによって、「200」を返す。
上記をキーワードに検索するにしても時間がかかる。
以下にはPerl/CGIが用意されているので、時間があれば試してみる。
$ ls /usr/share/doc/squidguard/examples/
RobotUserAgent.pm squidGuard-simple.cgi.gz squidGuardRobot.in.gz
sample.conf squidGuard.cgi.gz
squidGuard-simple-de.cgi.gz squidGuardRobot.gz
■「DebianEdu」の公式ページのスクリプトによるアップデート手順は同じ。
「TARGET」行を以下に変更する。
TARGET=/var/lib/squidguard/db
参考:DebianEduHowToSquidGuard
http://wiki.debian.org/DebianEdu/HowTo/SquidGuard