近年,インターネットを利用した広告が重視され,目を引かれるものが多数存在しています。しかし,学校における生徒のコンピュータ実習等では,情報検索中にウェブサイトに表示されるこれらの広告に生徒の興味が向けられ,集中を妨げられるという問題もあります。
そこで,授業では不要なウェブ広告等の表示を制限する「コンテンツフィルタリング」を行うことで,生徒の集中力を維持し,授業の効率を上げる方法を研究しました。今回は,Linuxで多くの導入実績を持つフリーソフトウェアの「Squid(スキッド)」(Windows版)を使用し,フィルタリングを行うことを検討します。
コンテンツフィルタリングにはいろいろな種類がありますが,政府広報オンラインでは次の三つの方式が紹介されています。
ホワイトリスト方式 | 安全と思われるサイトのみにアクセスでき,それ以外のサイトへのアクセスを制限する方式 |
ブラックリスト方式 | 出会い系サイトやアダルトサイトなど,子どもにとって有害な特定のカテゴリのサイトへのアクセスを制限する方式 |
利用時間制限 | 子どもが一人で夜中にアクセスできないよう,夜間から早朝にかけてすべてのサイトへのアクセスを停止させる方法 |
出典:政府広報オンライン(http://www.gov-online.go.jp/useful/article/200903/1.html)
平成21年4月には,いわゆる「青少年インターネット環境整備法」が施行され,学校を初め,家庭でも携帯電話等のフィルタリングの普及により,有害な情報に子どもたちが接することなく,安全に安心してインターネットを利用できる環境の整備が推進されています。
本研究では,教育用ネットワークで実施されている既定のフィルタリングに加え,ウェブ広告の表示を制限し,いっそうの授業環境の整備を図るための手順を研究し,紹介します。
今回はSquidのWindows対応版を使い,実習用サーバに導入することで,実習時のインターネットを利用した情報検索の効率向上を目的とします。設定作業の流れは以下のとおりです。
ア 導入する環境の確認Squidを導入する環境を確認します。 本研究で利用する実習室の環境は以下のとおりです(図1)。Squidを導入するサーバの上位に既設のプロキシサーバが存在します。
図1 実習室構成
Squidは,linuxを含むUnix系OSで動作するプロキシサーバで,最新版はソースコードで公開されています。
URL1:http://www.squid-cache.org/また,Windowsで動作するSquidは,実行形式のファイルで公開されています。
URL2:http://squid.acmeconsulting.it/index.html今回導入するサーバは,Windows Server 2008であるため後者のURLからダウンロードします。
Windows版のダウンロードは「Acme Consultings」のトップページから「Production release」の「Squid 2.7 for Windows」から,「Squid download Page」の「mirror 1」ページへ進み,バージョン2.7系列の最新版である「2.7.STABLE8」をダウンロードします。(2013年1月現在)
Windows版Squidは,標準設定がC:\squidで実行されることを想定しているため,ダウンロードしたzipファイルを「C:」ドライブに展開します(図2,3)。
図2 Windows標準機能での展開の様子
図3 展開されたファイル
ア 「C:\squid\etc」にある以下の二つのもファイルをコピーし,ファイル名を変更します。
「squid.conf.default」をコピーし,ファイル名を「squid.conf」に変更
「mime.conf.default」をコピーし,ファイル名を「mime.conf」に変更
イ 「squid.conf」の以下の行番号の記述を変更,追記,確認をします。なお,行頭に#がついているものはコメント行です。
Squid標準のポートが3128であることを確認します。
1104行 | http_port 3128 |
デフォルトでは,プライベートIPアドレス(ローカルIPアドレス)のアクセスが可能になっています。
allowが許可,denyが拒否を表します。
601行〜611行 |
acl all src all acl manager proto cache_object acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 <省略> acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network |
上記の609〜611行がプライベートIPアドレスを示し,localnetの名前で設定されています。この行があることを確認します。
650行〜 |
http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports #http_access deny to_localhost http_access allow localnet # 667行 http_access deny all # 670行 |
上記の667行でプライベートIPアドレスを許可し,670行でその他の通信を拒否しています。
今回は,上位に既設のプロキシサーバ(192.168.x.x:8080)が存在するため,次の設定を追記します(追記部分太字)。
変更前 1601行〜 |
#Default: # none |
変更後 1601行〜 |
#Default: # none cache_peer 192.168.x.x parent 8080 7 no-query never_direct allow all |
キャッシュデータを作成しないと,Squidが実行できないので,次のコマンドをコマンドプロンプトで実行します。
c:\>cd \Squid\sbin c:\Squid\sbin>Squid -z |
図4 キャッシュデータの作成
Squidは,「c:\squid\sbin」の「squid.exe」を実行することで動作します。ただし,自動開始や異常停止などに対応するためには,Windowsサービスに登録をします。なお,サーバのユーザーアカウント制御 (UAC)が有効の場合,正しく登録されないことがあります。
次のコマンドを実行すると,「Squid」名でサービスが登録されます。
c:\>cd c:\squid\sbin c:\Squid\sbin>squid -i |
図5 Squidをサービスに登録
なお,サービスを削除する場合は,次のコマンドを実行します。
c:\>cd c:\squid\sbin c:\squid\var>squid -r |
Squidを実行するには,「サービス」の一覧から「Squid」を選択し,(開始ボタン)ボタンをクリックします。なお,サーバを再起動しても,実行することができます(図6)。
図6 Squidサービスの様子
クライアントの生徒用コンピュータで「インターネットのプロパティ」にある「ローカルエリアネットワーク(LAN)の設定」に実習用サーバのアドレスとポート"3128"をプロキシサーバに設定します。
図7 生徒用コンピュータ(クライアント)の設定例
今回は,Squidのフィルタリング部分であるアクセスコントロールの例を挙げて説明します。
以下の設定は,すべて「C:\squid\etc」フォルダの「squid.conf」に追記をします。ただし,適用するためには,Squidのサービスを再起動する必要があります。
ドメイン全体を禁止する場合は次のように記述します。
672行からの#行(コメント行)の後に追記 |
acl 設定名 dstdomain アクセス禁止したいドメイン http_access2 deny 設定名 |
<設定例> エースネットを禁止します。 |
acl denylist dstdomain
aichi-c http_access2 deny denylist |
アクセスを禁止したサイトにクライアントからアクセスすると,squidが次のようなメッセージを表示します。
図8 禁止されたアドレスへのアクセス
授業で接続が想定されるウェブページのソースを確認し,広告等(一般的にはソースの中でbannarやadの文字列が使われる)の文字列や制限したい対象が決まっている場合は,特定のアドレスで禁止することもできます。
672行からの#行(コメント行)の後に追記 |
acl 設定名 url_regex 正規表現のアドレス http_access2 deny 設定名 |
<設定例> 特定の広告を止める。 |
acl denyurl url_regex /bannar/ http_access2 deny denyurl |
上記設定例は,ウェブページに表示される広告(アドレスでは/bannar/xx.jpg)にアクセスできないように設定しています。設定前と後の状態を図9に示します。
図9 ウェブページの広告の停止例(設定前(左)と設定後(右))
Squidは,強力なアクセス制限機能をもっているため,ほかにもさまざまな設定が可能です。
アクセス制限やその他の設定については,「Squid アクセス制限」のキーワードで検索すると,多数の情報を日本語で確認することができるため,今回は省略します。
今回は,Squidという汎用のプロキシサーバを用いてフィルタリングを実現しました。同様の機能は他のプロキシサーバソフトウェアにも存在します。ただ,今回,複数のソフトウエアを確認してみた結果,Squidでは安定して実行できることが分かりました。また,Squidの設定ファイルは大きなファイルですが,特定の部分を修正,追記するだけで容易に設定変更できることが確認できました。今回の研究で利用した設定以外についても研究を進めることで,より多くの機能を利用することができると思います。
本研究では,生徒の実習環境の整備を目的に進めてきました。今後はフィルタリングの抽出方法についてより精度よく有効になるように研究を進めていきたいと思います。