■私のはてなダイヤリーは「はてブ」のブックマーク問題に対応しています。
※オプトアウト版ではなく、ブックマーク自体を出来ないようにした。
はてなブログベータは同問題に対応する方法がありませんので、私のページも「bookmark_button.js」が埋め込まれています。
また、未対応の別のページにも対応するには、squidGuardを使います。
補足すると、w3mで見ている分には、JavaScriptを実行しないので、下位プロキシ用です。。。
ちなみに。以下のように「はてなサービス」を使っている方には告知されています。
あくまで、外部からはてブと連携している場合の問題です。
はてなサイト内での行動情報の収集は利用者に告知されている
http://d.hatena.ne.jp/mame-tanuki/20120311/privacypolicy
とはいえ、ここまで話が大きくなったものを言い分けしても仕方が無いので、
ユーザ(?)が出来る対応策を提示します。
なお、ブラウザの拡張機能の「はてブ」はFWのブロックログに引っかからないので、同jsを読み込んでいません。
また、今後読み込む場合でも、以下の設定でsquidGuardでブロックされます。
よって、私は今のところ、移行までは考えていません。
移行を考えている方は「はてな」の用意している日記のエクスポート以外に私のページのスクリプトがあります。
※はてなベータは上述した通り、「bookmark_button.js」が埋め込まれていますので、
対策を行うか、行動予測の規約に同意した上で閲覧して下さい。
はてなダイヤリーのテキストモードバックアップ
http://labunix.hateblo.jp/entry/2012/03/03/224721
■squidのブラックリストについて
※以下はWindows版Squidにおいて参考になった。
参考:squid で特定のサイトをアクセス拒否する
http://futuremix.org/2005/07/squid-access-deny
参考:SquidによるProxyサーバの構築
http://www2k.biglobe.ne.jp/~kuma/kuma_p/memo/linux_proxy/
参考:squidGuard
http://www.squidguard.org/blacklists.html
参考:コンテンツフィルタとの連携
http://www.server-world.info/query?os=Debian_5.0&p=squid&f=3
■今回は「DebianEdu」の公式ページをベースに行った。
参考:DebianEduHowToSquidGuard
http://wiki.debian.org/DebianEdu/HowTo/SquidGuard
■debian Lennyにsquidguardを導入
$ sudo apt-get install -y squidguard
■DBの場所とログ出力先を確認
$ grep var /etc/squid/squidGuard.conf
dbhome /var/lib/squidguard/db
logdir /var/log/squid
■ブラックリストファイルを準備
$ wget http://squidguard.mesd.k12.or.us/blacklists.tgz
$ sudo cp blacklists.tgz /var/lib/squidguard/db/
$ su root
■上記を設定ファイルに反映
※後述の「おまけ」参照
$ diff /etc/squid/squidGuard.conf /etc/squid/squidGuard.conf.org
55,126d54
< 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
< }
<
< 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
< }
<
<
<
151,152c79
< pass !ads !aggressive !audio-video !drugs !gambling !hacking !mail !porn !proxy
!redirector !spyware !suspect !violence !warez all
<
---
> pass local none
155,156d81
<
■オーナー、アクセス権限の設定
■squidGuardコマンドで設定を反映、「.db」ファイルを作成する
$ whereis -b squidGuard
squidGuard: /usr/bin/squidGuard
$ sudo /usr/bin/squidGuard --help
/usr/bin/squidGuard: invalid option -- -
Usage: squidGuard [-u] [-C block] [-t time] [-c file] [-v] [-d]
Options:
-v : show version number
-d : all errors to stderr
-c file : load alternate configfile
-t time : specify staruptime on format: yyyy-mm-ddTHH:MM:SS
-u : update .db files from .diff files
-C file|all : create new .db files from urls/domain files
specified in "file".
$ sudo -u proxy /usr/bin/squidGuard -d -C all
■squidのチェックをしましたが、「redirect_program」がありません。
※現状、正常に稼動していること、バージョンを確認
$ sudo grep redirect_program /etc/squid/squid.conf
$ sudo -u proxy /usr/sbin/squid -k check
$ /usr/sbin/squid -v | head -1
Squid Cache: Version 2.7.STABLE3
■「# ACCESS CONTROLS」の手前に挿入します。
参考:SQUID 2.7.STABLE3
http://www.spinics.net/lists/squid/msg45050.html
$ sudo cp -pi /etc/squid/squid.conf /etc/squid/squid.conf.20120311
$ sudo -u proxy vim /etc/squid/squid.conf
$ sudo diff /etc/squid/squid.conf /etc/squid/squid.conf.20120311
327,329d326
< redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
< redirect_children 8
< redirector_bypass on
■ブロック時のページを作成します。
※Webサーバが稼動している必要がある
$ su root -c 'echo \
"<html><head><title>Black</title></head><body><h1>Black</h1></body></html>" \
> /var/www/block.html'
■squidの再設定
※PIDがずれるようになった。これは「squidGuard.conf」と正しく連携される事で解消する。
$ sudo -u proxy /usr/sbin/squid -k reconfigure
$ sudo -u proxy /usr/sbin/squid -k check
squid: ERROR: Could not send signal 0 to process 15078: (3) No such process
$ ps -ef | grep squid | awk '{print $2}'
15170
■テスト
2012-03-11 19:58:59 [15381] squidGuard 1.2.0 started (1331463539.020)
2012-03-11 19:58:59 [15381] recalculating alarm in 14461 seconds
2012-03-11 19:58:59 [15381] squidGuard ready for requests (1331463539.035)
/var/www/block.html /- - -
2012-03-11 19:58:59 [15381] squidGuard stopped (1331463539.037)
■.dbファイル
$ sudo ls -l /var/lib/squidguard/db/*/*.db | awk '{print $3":"$4" "$8}'
proxy:proxy /var/lib/squidguard/db/ads/domains.db
proxy:proxy /var/lib/squidguard/db/ads/urls.db
proxy:proxy /var/lib/squidguard/db/aggressive/domains.db
proxy:proxy /var/lib/squidguard/db/aggressive/urls.db
proxy:proxy /var/lib/squidguard/db/audio-video/domains.db
proxy:proxy /var/lib/squidguard/db/audio-video/urls.db
proxy:proxy /var/lib/squidguard/db/drugs/domains.db
proxy:proxy /var/lib/squidguard/db/drugs/urls.db
proxy:proxy /var/lib/squidguard/db/gambling/domains.db
proxy:proxy /var/lib/squidguard/db/gambling/urls.db
proxy:proxy /var/lib/squidguard/db/hacking/domains.db
proxy:proxy /var/lib/squidguard/db/hacking/urls.db
proxy:proxy /var/lib/squidguard/db/mail/domains.db
proxy:proxy /var/lib/squidguard/db/porn/domains.db
proxy:proxy /var/lib/squidguard/db/porn/urls.db
proxy:proxy /var/lib/squidguard/db/proxy/domains.db
proxy:proxy /var/lib/squidguard/db/proxy/urls.db
proxy:proxy /var/lib/squidguard/db/redirector/domains.db
proxy:proxy /var/lib/squidguard/db/redirector/urls.db
proxy:proxy /var/lib/squidguard/db/spyware/domains.db
proxy:proxy /var/lib/squidguard/db/spyware/urls.db
proxy:proxy /var/lib/squidguard/db/suspect/domains.db
proxy:proxy /var/lib/squidguard/db/suspect/urls.db
proxy:proxy /var/lib/squidguard/db/violence/domains.db
proxy:proxy /var/lib/squidguard/db/violence/urls.db
proxy:proxy /var/lib/squidguard/db/warez/domains.db
proxy:proxy /var/lib/squidguard/db/warez/urls.db
■再設定
2012-03-11 20:01:06 [15483] squidGuard 1.2.0 started (1331463654.542)
2012-03-11 20:01:06 [15483] db update done
2012-03-11 20:01:06 [15483] squidGuard stopped (1331463666.025)
■initスクリプトを使い、squidとsquidGuardが連携する事で、
PIDがきちんと認識されるようになった。
squid: ERROR: Could not send signal 1 to process 15292: (3) No such process
■稼動チェック
/usr/sbin/squid -D -YC
(squid) -D -YC
(squidGuard) -c /etc/squid/squidGuard.conf
(squidGuard) -c /etc/squid/squidGuard.conf
(squidGuard) -c /etc/squid/squidGuard.conf
(squidGuard) -c /etc/squid/squidGuard.conf
(squidGuard) -c /etc/squid/squidGuard.conf
(squidGuard) -c /etc/squid/squidGuard.conf
(squidGuard) -c /etc/squid/squidGuard.conf
(squidGuard) -c /etc/squid/squidGuard.conf
grep squid
■アクセスチェック
※Blackでは無く、Blockだろうという突っ込みは置いといて。。。
$ w3m -dump -o use_proxy=http://192.168.188.188:3128 http://www.rotten.com
Black
■ヘッダの応答が変わる。
$ w3m -dump_head -no-proxy http://www.rotten.com
HTTP/1.1 200 OK
Date: Sun, 11 Mar 2012 11:49:14 GMT
Server: Apache/2.2.20 (Unix)
Last-Modified: Thu, 07 Jul 2011 08:31:09 GMT
ETag: "2750d-7a5e-4a77689ef8d40"
Accept-Ranges: bytes
Content-Length: 31326
Connection: close
Content-Type: text/html
$ w3m -dump_head -o use_proxy=http://192.168.188.188:3128 http://www.rotten.com
HTTP/1.0 200 OK
Date: Sun, 11 Mar 2012 11:50:08 GMT
Last-Modified: Sun, 11 Mar 2012 11:50:08 GMT
Accept-Ranges: bytes
Expires: Sat, 10 Mar 2012 11:50:08 GMT
Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html
Content-Encoding: gzip
Cache-Control: private
Content-Length: 26
X-Cache: MISS from xxx-debian-lenny
X-Cache-Lookup: MISS from xxx-debian-lenny:3128
Via: 1.1 xxx-debian-lenny:3128 (squid/2.7.STABLE3)
Connection: close
$ w3m -dump_head -o use_proxy=http://192.168.188.188:3128 http://www.labunix.net/block.html
HTTP/1.0 200 OK
Date: Sun, 11 Mar 2012 11:51:35 GMT
Last-Modified: Sun, 11 Mar 2012 11:51:35 GMT
Accept-Ranges: bytes
Expires: Sat, 10 Mar 2012 11:51:35 GMT
Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html
Content-Encoding: gzip
Cache-Control: private
Content-Length: 26
X-Cache: MISS from xxx-debian-lenny
X-Cache-Lookup: MISS from xxx-debian-lenny:3128
Via: 1.1 xxx-debian-lenny:3128 (squid/2.7.STABLE3)
Connection: close
■プロキシの設定
$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://192.168.188.188:3128/";
$ cat /etc/profile | tail -4
export http_proxy=http://192.168.188.188:3128
export ftp_proxy=http://192.168.188.188:3128
export HTTP_PROXY=http://192.168.188.188:3128
export FTP_PROXY=http://192.168.188.188:3128
■おまけ
以下のスクリプトを使うと、
個人用の「personal」ディレクトリを作成、「domains/urls」でカスタマイズする事が出来る。
★destルール生成スクリプト
echo -e "dest ${DIR} {\n\tdomainlist\t${DIR}/domains\n\turllist\t\t${DIR}/urls\n}\n"; \
done
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 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
}
★passルール生成スクリプト
pass !ads !aggressive !audio-video !drugs !gambling !hacking !mail !porn
!proxy !redirector !spyware !suspect !violence !warez all
★DebianEduのページの「Automatic Updates」は「TARGET」行を以下に変更する。
TARGET=/var/lib/squidguard/db
★問題になっているはてブのブラックリストの例
※正しく設定すると、直接アクセスしても「black」と出ます。
personal/domains:b.st-hatena.com
personal/urls:b.st-hatena.com/js/bookmark_button.js