さっしーブログ

埼玉県在住のシステムエンジニアです。基本的には技術的な内容を中心に発信していきます。

SquidGuardを利用してURLフィルタリングを設定する方法

目次

 

1.squidGuardとは?

squidというプロキシサーバーソフトにコンテンツフィルタリングを導入できるソフトウェア。
 

2.URLフィルタリングとは?

特定のURLやドメインに対してINとOUTのアクセス制限を行うことが可能となる。
 

3.設定手順

コマンドはroot権限で実施
 

3-1.squid, squidGuardのインストールする

以下のコマンドを実行(squidも同時にインストールされる)
$ apt-get install -y squidguard
 

3-2.squid.confファイルを修正する

ファイルパス:/etc/squid3/squid.conf
 squidの設定ファイルに対して、以下の変更・追加を行う
 ・acl localnetの有効 (700-704行目のコメントアウトを解除)
 
 ・http_access allow localnetの有効(840行目のコメントアウトを解除)
 
 ・匿名サーバー化(3450行目に
  request_header_access Referer deny all
  request_header_access X-Forwarded-For deny all
  request_header_access Via deny all
  request_header_access Cache-Control deny all
  を追加)
 
 ・IPの非表示(5542行目に 'forwarded_for off'を追加))
 
 ・squidguard の有効化(2933行目に'url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf'を追加)
 

3-3.squidguard.confを設定する

 ・/etc/squidguard.confの記述(ファイルの新規作成。元のファイルはsquidguard.conf.bkとして残しておく)
 
dbhome /var/lib/squidguard/db ・・・・①
logdir /var/log/squidguard ・・・・②
dest whitelist { ・・・・③
  domainlist whitelist/domains
  urllist whitelist/urls
}
 
dest blacklist { ・・・・④
  domainlist blacklist/domains
  urllist blacklist/urls
}
 
acl { ・・・・⑤
  default {  ・・・・⑥
  pass whitelist !blacklist none ・・・・⑦
  log /var/log/squidguard/block.log
  }
}
 
 ・whiteリスト(domain,urls)の作成
 
  対象ドメイン全体を指定する場合に使用
  現状:local環境に展開しているadidasのドメインのみ許可している
  /var/lib/squidguard/db/whitelist/domain
 
  筆者は下記のように設定
  localhost
  127.0.0.1
  192.168.1.10 ← 自身の仮想環境のIPアドレスを追加
 
  特定のURLを指定する場合に使用
  例:www.yahoo.co.jp/
  /var/lib/squidguard/db/whitelist/urls
 
 ・blackリストの作成
 
  対象ドメイン全体を指定する場合に使用
  /var/lib/squidguard/db/blacklist/domain
 
  特定のURLを指定する場合に使用
  例:www.yahoo.co.jp/
  /var/lib/squidguard/db/blacklist/urls
 
・squidguard アクセス拒否時のリダイレクトページの設定
 サンプルの解凍 のため以下のコマンドを実行
$ cd /usr/share/doc/squidguard/examples/
$ gunzip squidGuard-simple.cgi.gz
 
・配置
$ cp squidGuard-simple.cgi /usr/lib/cgi-bin/
 
・権限変更
$ chmod 777 /usr/lib/cgi-bin/squidGuard-simple.cgi
 
・apache再起動(cgi反映のため。)
$ service apache2 restrat
 
・リストをBerkeley DB形式に変更
以下のコマンドを実行
$ squidGuard -C all
※このsquidGuardコマンドがかなり重め。処理完了するのに少々時間がかかりますのでご注意を。
 
・dbファイルのユーザ、グループを変更
$ chown -R proxy. /var/lib/squidguard/db/
 

3-4.squidサーバを再起動する

$ service squid3 restart
 

3-5.ブラウザのプロキシを設定する

以下Google Chromeで設定を行う場合。
※設定は仮想マシンのブラウザで行う。
1. ツールバーの [ Chromeメニュー ] ボタンをクリック
2. [ 設定 ] をクリック
3. [ 設定 ] タブが表示されたら、[ 詳細設定を表示 ] をクリック
4. システムの「プロキシ設定を開く」をクリック
5. 「LANの設定」をクリック
6. 「ローカル エリア ネットワーク(LAN)の設定」画面にてプロキシサーバーのチェックボックスにチェックを入れ、詳細設定をクリック
7. 「プロキシの設定」画面にて、種類「HTTP」の使用するプロキシのアドレス欄に「127.0.0.1」を入力し、ポート欄に「3128」を入力する
 

3-6.動作確認をする

下記のURLへアクセスを行い、正常にアクセスできることと、アクセス拒否画面にリダイレクトされることを確認する。
 
・whitelistのサイトへのアクセスが正常
 
・whitelist外のサイトへのアクセスがアクセス拒否画面にリダイレクト
 
 
以上