PCと映画とテレビと、2nd(終)

web2web.eek.jp(2nd) から 引っ越し。 今後はmono-works.com/blog(3rd)へ

Categories
Archives
Selected Entries
Recent Comments
Recent Trackbacks
Other

squid + squidGuard でフィルタリング

PC参号機に、Ubuntu 9.10 を入れ、次男+三男坊に開放したのだが、「アクセス制限が必要じゃないか」という指摘をカミさんから受けた。
Windows機なら、インストールしているF-SecureのInternet Securityにそんな機能も搭載しているが、対象はUbuntuのデスクトップ機。

ネットで探して、しばし考え、我が家の現状では自鯖機のUbuntuでやるのが、一番手っ取り早く、安上がりと判断した。
前説

いろいろ解決策はあると思われる中、やはりLinuxを使うのが安上がりだ。 ましてや制限したい対象がUbuntuだからなおさらだ。
Linuxでの設定という事で、全くの初心者だと厳しいかもしれないが、そこは、いろいろネットの情報を元にやってきたので、第一のハードルは超えている。

使うのは squid + squidGuard。

squidとはプロキシサーバ、ウェブキャッシュのフリーソフトウェアで、Linuxの世界ではプロキシサーバでは定番的な存在。
そんな squid という名前は聞いたことはあったが、使ったことは一度もなかった。

squid だけでもある程度のフィルタリングはできるようだが、フィルタリング用のヘルパーアプリ(?)として squidGuard というものがあり、squidから起動されフィルタリング処理・動作するらしい。 squidではなく、squidGuardを使った時の良さ・違いは最初良く判らなかったが、考えるに。

  • squidでフィルタリング処理までやってしまうと、アップアップになってしまい、本業のプロキシ作業に支障をきたす、的なところだろう、多分。

  • squidGuard用にブラックリストの一覧が世の中に出回っていて、更にはメンテしてくれている方もいるらしい。

餅は餅屋、という事だな。
squidGuardはドメイン名、URLでのフィルタリングで、コンテンツでのフィルタリングまではしない。 なのでこのリスト(ブラックリスト)が肝となる。 幾つかメンテされているリストがあるらしいが、Shalla's blacklistsを利用する事にする。 商用利用じゃなければ無料で利用する事ができるらしい。

という事で、「squid + squidGuard」で逝くことにした。

幸いにもネットでは先人達が squid + squidGuard のセットアップを実践した結果を、日本語で記録として結構残していて、比較的簡単に設定する事ができた。(自分なりに壁にも当たったが)
この場を借りてお礼します。 m(_ _)m

手順

我が自鯖機は、Ubuntu 8.10 LTSのサーバーエディション。
自鯖機には基本的にモニタは接続していないので、(仮)メイン機のXPS M1210よりPoderosaでSSHでログインして作業を行う。

  1. squid、squidGuard のインストール
  2. squid の設定。(主にsquid.confの設定)
  3. クライアントPCのプロキシ設定・テスト
  4. squidGuard の設定。(squidGuard.conf、ブラックリストの設定)
  5. squid の起動(再起動)

の手順で行く。 ところどころ間違っているかもしれないが、自分なりにまとめとく。
(上記のうち 4、5は次章に飛ぶ)


1.squid、squidGuard のインストール

プロンプトより下記をタイプ
$ sudo apt-get install squid

・・・・いろいろな文字列が表示される。

$ sudo apt-get install squidGuard

・・・・いろいろな文字列が表示される。

上記でsquid, squidGuardに必要なモジュールがインストールされる。 インストールされたのは
$ sudo dpkg --list | grep squid
ii squid 2.6.18-1ubuntu3 Internet object cache (WWW proxy cache)
ii squid-common 2.6.18-1ubuntu3 Internet object cache (WWW proxy cache) - co
ii squidguard 1.2.0-8.2ubuntu2 filter, redirector and access controller plu

まとめると
モジュールインストール版最新版
squid2.6.183.1.0.14
squidGuard1.2.0-8.21.4

最新版からは、かなり遅れを取っているが、これはUbuntuが8.04 LTSというのが大きいだろう。 8.04 は2008年4月にリリースされた版でLTSはLong Term Supportの略。 サーバ版は6年 5年間のサポートが保証される。 (ここで言う「サポート」とはセキュリティ・バグフィックス等の更新などがあるという意味だと思う。 )
ソースからコンパイルとか、debパッケージを拾ってくれば入れられない事も無いかもしれないが、ちとメンドイので止めとく。 コンパイルとかすると無用なトラブルが発生しそうな気配あるし。
また、既にリリースされてから結構経つ、という事は結構枯れているという事を意味するし、セキュリティ・バグフィックスなどはサポートチームがメンテするだろうから、安定しているという意味では、こちらがいいかもしれない。


2.squid の設定。(主にsquid.confの設定)

squid をインストールすると、ディレクトリ /etc/squid が作成され、そこに squid.conf というsquidの所作を決める設定ファイルが格納される。 オリジナルのサイズは4500行にものぼる設定ファイルを全て理解するのはかなり困難なので、動かすのに必要な箇所をいぢっていく。
ただ4500行と言っても、コメントや解説もたくさんあるので、実際の設定行は1000行にも満たない、いや200,300行にも満たないんじゃないだろうか。

設定したパラメータ群
  • http_port
    http_port 8080
    プロキシサーバーのポート番号。 デフォルトは3128だが、一般的に使われる「8080」に。
    930行あたり。

  • cache_dir
    cache_dir ufs /var/spool/squid 500 16 256
    ディスクキャッシュの定義。 ディレクトリ名の後ろは最大サイズ。デフォルトは100MBだったのを500MBに変更。
    1850行あたり。

  • icp_port
    icp_port 0
    ICPはプロキシ同士でキャッシュを交換するためのUDPベースのプロトコル。 デフォルトでは「3130」が設定されているが、他にプロキシサーバーが無ければ「0」に。
    3610行あたり。

  • cache_mem
    cache_mem 16 MB
    キャッシュメモリ量。 デフォルトは「8MB」
    1640行あたり。

  • forwarded_for
    forwarded_for off
    アクセスする端末のIPアドレスをアクセス先Webサーバーに知られたくない場合の設定。 デフォルトは「on」
    4330行あたり。

  • アクセス制限
    squidにアクセスする対象を設定する。 デフォルトではlocalhostだけの許可になっているので、対象をサブネットに広げる。 locallanは任意名。 IPアドレスは自分の環境に合わせて記述する。
    acl locallan src 192.168.100.0/255.255.255.0
    http_access allow locallan
    645行あたり。

  • visible_hostname
    squidが生成するページに出るホスト名。 設定した方が幸せになるらしい。 取りあえず適当な値を設定。
    visible_hostname hogehage.com

    3070行あたり。

  • プロキシ経由でアクセスをアクセス先に知られないようにする
    header_access X-Forwarded-For deny all
    header_access Via deny all
    header_access Cache-Control deny all
    最下行に追加。

以上、設定後squid を起動してみる。
$ sudo /etc/init.d/squid start

/var/log/squid/access.log にログされるので、エラーが発生していたら、そちらを参照していろいろいぢってみるべし。


3.クライアントPCのプロキシ設定・テスト

アクセスするクライアントPCのブラウザのプロキシ設定を行う。

  • Internet Explorer
    メニューから「ツール」→「インターネットオプション」を選択。
    「接続」タブの「LANの設定」をクリック。
    「プロクシサーバー」の欄で、「LANにプロキシサーバーを使用する・・・」にチェックを入れ、その下にsquidが動作するサーバーのIPアドレスとポート(8080)を入力する。

  • Firefox
    メニューから「ツール」→「オプション」を選択。
    「詳細」タブを選択し、更に「ネットワーク」タブをクリック。
    「接続」欄の「接続設定」をクリック。
    「手動でプロキシを設定する」にチェックを入れ、
    「HTTPプロキシ」に squidが動作するサーバーのIPアドレスとポート(8080)を入力する。

これで設定終了。 この状態でYahoo 等にアクセスして問題なく表示できれば、ちゃんと squid が動作している事。

念のため、squidを停止してからアクセスしてみる。
$ sudo /etc/init.d/squid stop

でsquid停止後、クライアントからアクセス。
IE6 プロキシサーバダウンでアクセス不可

確かにアクセスできない。(IEの例)

続く

◆参照サイト:Shalla's blacklists

◆関連ログ:「squid + squidGuard」ネタ
デジタル的話 > Linux的話 | comments (0) | trackbacks (0)

COMMENTS

Comment Form

※本記事に関係ないと判断した COMMENTS はお断りしております。

TRACKBACKS

現在、TRACKBACKは停止させてもらってます。
Calendar
Amazon
トロン:レガシー [Blu-ray]
トロン:レガシー [Blu-ray]
ウォルト・ディズニー・ジャパン株式会社
重々しい音響が印象的
ハリー・ポッターと死の秘宝 PART 2 [Blu-ray]
ハリー・ポッターと死の秘宝 PART 2 [Blu-ray]
ワーナー・ホーム・ビデオ
2枚で3000円キャンペーン! (2012.7.13時点)