squidGuard

妻より「家庭内LANからインターネットへの接続制限をして欲しい。
子供たちがヘンなサイトを見始めている。
技術者なんだから出来るわよね???」
と言われ、
”安心ネット”もどきを、Squid で構築しようと思った。

はじめは、 SuSEfirewall, もしくはiptables で表現しようとして悩んでいた。
 が、SquidGuard を使うとカンタンに出来るようだ。


/* 参照 */
Proxy サーバ構築ガイド

SquidGuardインストール
SuSE9 でフルインストールを選択した場合、デフォルトで以下がインストールされている。
squidGuard-1.2.0-373.1
squid-2.5.STABLE5-42.13

基本コマンド

chkconfig squid on
/etc/init.d/squid start

squid がスタートする。(悩むことなくカンタン!)
プロキシは localhost に使用されデフォルトポートは 3128 である。
初期設定だと外部クライアントはアクセスを拒否されるので、
/etc/squid/squid.confのカスタマイズが必要である。

/usr/sbin/rcsquid reload オプションのリロード
/usr/sbin/rcsquid restart 再起動
/usr/sbin/rcsquid status スタータス確認

Squidの設定
/etc/squid/squid.conf

主要オプション
http_port 3128
Squid がクライアントリクエストをリスニングするポート番号
cache_peer
ISPのプロキシを使用する親プロキシなどを入力。
cache_mem 8MB
Squid でキャッシュされるメモリ。デフォルト8MB
cache_dir ufs /var/cache/squid/ 100 16 256
すべてのオブジェクトを格納するディレクトリ。
末尾の数字は
1) 使用される最大ディスク領域(単位MB)
2) 第一レベルディレクトリ数
3) 第2レベルディレクトリ数
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
メッセージログのパス

などなどあるが、重要なのはACL設定。

プロキシサーバへの接続は

http_access allow localhost
http_access allow family
acl family src 192.168.1.0/255.255.255.0

とする。「family」は家庭内LANのことだ。

エラーログ
/var/squid/logs/cache.log


クライアント側の設定
IE

[ツール]-[インターネットオプション]
[接続]-[LANの設定]ボタン
[プロキシサーバ]の設定で、
アドレス 192.168.1.1
ポート 3128

を設定すると、 /var/log/squid/access.logにログが記されるようになる
squidが正常に起動し始めた!

SquidGuard でブラックリストを作成する。
さて、いよいよクライアント(妻)依頼の有害サイトブロック設定の実装だ。

/etc/squid/squid.conf に

redirect_program /usr/sbin/squidGuard

を記述する。
/var/lib/squidGuard/db/blacklist ディレクトリ以下に
ブラックリストを設定する

ユーザローカル定義は
/var/lib/squidGuard/db/blacklist/duka_local
などに記述すればよいらしい。非常にカンタンである。
また、
/etc/squidguard.conf を編集する必要がある!

ブラックリストも定期的に更新・配布されているようであった。
/* squidGuard ブラックリスト */
===========================
※フィルタリング参照ページ
===========================
http://ozu.cc.kochi-u.ac.jp/~fuchu/f-net/filter.html


▼squidGuard ローカル blacklist 編集

Apache2の設定。

DocumentRoot などは
/etc/apache2/default-server.conf
を編集する。


参照
http://www.aconus.com/~oyaji/suse/apache_suse.htm

squid の purge
/usr/local/squid/bin/client -m purge http://www.ruby-lang.org/ja/index.html