squidGuard検証

検証

目次

1.blacklistインストール・設定

2.サードパーティ製ブラックリストの使用方法

1.blacklistの設定とsquidへの紐づけ

ブラックリストは下記ディレクトリに格納されます。
# ls /var/squidGuard/
blacklists.tar.gz

※上記ディレクトリをblacklistsのホームディレクトリに設定すると、コンフィグレーション時に「Segmentation fault」エラーが発生しますので、新たにディレクトリを作成し、blacklistsを移動します。
※「Segmentation fault」になる現象はCentOS公式でBugであることが確認されています。
>https://bugzilla.redhat.com/show_bug.cgi?id=1050096

# mkdir -p /var/lib/squidGuard/db
# mv blacklists.tar.gz /var/lib/squidGuard/db

解凍し、中身を確認します。
# cd /var/lib/squidGuard/db
# tar zxvf blacklists.tar.gz

./blacklists/ads/urls
./blacklists/aggressive/urls
./blacklists/audio-video/urls
./blacklists/drugs/urls
./blacklists/gambling/urls
./blacklists/hacking/urls
./blacklists/porn/urls
./blacklists/proxy/urls
./blacklists/redirector/urls
./blacklists/violence/urls
./blacklists/warez/urls
./blacklists/ads/domains
./blacklists/aggressive/domains
./blacklists/audio-video/domains
./blacklists/drugs/domains
./blacklists/gambling/domains
./blacklists/hacking/domains
./blacklists/mail/domains
./blacklists/porn/domains
./blacklists/porn/urls
./blacklists/proxy/domains
./blacklists/proxy/urls
./blacklists/redirector/domains
./blacklists/violence/domains
./blacklists/warez/domains
./blacklists/spyware/domains
./blacklists/spyware/urls
./blacklists/suspect/domains
./blacklists/suspect/urls

どのような内容が記載されているのか、一例として、「hacking」のurlの一部を確認します。
# head hacking/urls
195.154.205.178
208.180.68.131/bo2k
209.151.231.90/bo
216.136.171.196/projects/bo2k
216.218.249.82/pt=xsw626
217.172.160.232/blackbook
24-7-search.com/poc/good.wmf
4smartpromos.com/cp/scripts/ads.wmf
64.89.20.160/pt=xsw626
66.28.56.34/cgi-bin
# cat hacking/urls |wc -l
72
72個エントリ-されています。
「spyware」のdomainsを見てみます。
# head domains
66.45.255.251
66.33.0.35
ads.7days.ae
cracks.am
ads.angop.ao
banners.bannerlandia.com.ar
smartad.mercadolibre.com.ar
ads.pagina12.com.ar
traff.asia
ad.adworx.at
# cat domains |wc -l
9918
9918個エントリ-されています。

対象となるドメインやURLは定義されたファイルに1行につき1つ記入していきます。

手動で登録するためのマイブラックリストとホワイトリストを作成します。
※今回はブラックリスト方式を採用するため、ホワイトリストは作成しません。

# cd /var/squidGuard/blacklists
# mkdir good bad
# cd bad
例としてITセキュリティ研究所のHP(https://www.itseclab.jp/)とyahoo(http://www.yahoo.co.jp)を登録
# echo "itseclab.jp" > domains
# echo "yahoo.co.jp" > domains
# echo "www.itseclab.jp" > urls
# echo "www.yahoo.co.jp" > urls

設定ファイルに定義づけを行っていきます。
ここでは、例としてbadとadultのみ定義していきます。
# cd /etc/squid/
# cp -p squidGuard.conf squidGuard.conf.org
# vi squidGuard.conf

#
# CONFIG FILE FOR SQUIDGUARD
#
###dbhome=ブラックリスト格納先 logdir=ログファイル格納先
dbhome /var/lib/squidGuard/db
logdir /var/log/squidGuard

#
# TIME RULES:
# abbrev for weekdays:
# s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat
###時間指定はしない
#time workhours {
#       weekly mtwhf 08:00 - 16:30
#       date *-*-01  08:00 - 16:30
#}

#
# REWRITE RULES:
#

#rew dmz {
#       s@://admin/@://admin.foo.bar.de/@i
#       s@://foo.bar.de/@://www.foo.bar.de/@i
#}

#
# SOURCE ADDRESSES:
#
###管理用IPレンジ設定
src admin {
        ip              192.168.12.0/24
#       user            root foo bar
#       within          workhours
}
###接続先IPレンジ設定
src localnet {
        ip              192.168.11.0/24
}
###接続先IPレンジ設定(部署別)
src marketing {
        ip              192.168.11.100-192.168.11.120
}

#src foo-clients {
#       ip              172.16.2.32-172.16.2.100 172.16.2.100 172.16.2.200
#}

#src bar-clients {
#       ip              172.16.4.0/26
#}

#
# DESTINATION CLASSES:
#
###ホワイトリスト
dest good {
        domainlist      blacklists/good/domains
        urllist         blacklists/good/urls
}
###ブラックリスト
dest bad {
        domainlist      blacklists/bad/domains
        urllist         blacklists/bad/urls
        redirect        http://192.168.11.17/block.html?caddr=%a
        log             /var/log/squidGuard/block.log
}

#dest local {
#}
###アダルトサイト
dest adult {
        domainlist      blacklists/porn/domains
        urllist         blacklists/porn/urls
#       expressionlist  blacklists/porn/expressions
        redirect        http://192.168.11.17/block.html?caddr=%a
        log             /var/log/squidGuard/block.log
}

###ACL設定
###管理者はすべてパス
acl {
        admin {
                pass     any
        }
###接続先IPユーザはbadとadultはブロックし、それ以外はパス
        localnet {
                pass    !bad !adult all
                redirect        http://192.168.11.17/block.html?caddr=%a
                log             /var/log/squidGuard/block.log
        }
###marketingユーザはadultをブロックし、それ以外はパス
        marketing {
                pass    !adult all
                redirect        http://192.168.11.17/block.html?caddr=%a
                log             /var/log/squidGuard/block.log
        }
#       foo-clients within workhours {
#               pass     good !in-addr !adult any
#       } else {
#               pass any
#       }

#       bar-clients {
#               pass    local none
#       }
###それ以外の接続はすべてブロック
        default {
                pass    !bad !adult !good all
                redirect        http://192.168.11.17/block.html?caddr=%a
                log             /var/log/squidGuard/block.log
        }
}

 

併せて、ブラックリストホームディレクトリをsquidユーザ・グループに設定します。
# chown -R squid:squid /var/lib/squidGuard/db/

設定した内容をdb化します。
# squidGuard -C all

※プロンプトが帰ってこない場合、不整合を起こしてハングしていることがあります。
下記コマンドでログ(/var/log/squid/squidGuard.log)を確認しながら実行してください。

  • 正常終了ログ
    2017-02-11 03:45:52 [18024] squidGuard 1.4 started (1486752352.932)
    2017-02-11 03:45:52 [18024] db update done
    2017-02-11 03:45:52 [18024] squidGuard stopped (1486752352.943)

     

  • エラーログ
    2017-02-11 03:41:59 [18016] Going into emergency mode

     

設定が正常にされているか、以下コマンドでテストをします。
echo "https://www.itseclab.jp/ 192.168.11.17/ - - GET" | squidGuard -c /etc/squid/squidGuard.conf -d

正常に終了していれば、以下のログが出力されます。

2017-02-13 12:57:18 [12153] New setting: dbhome: /var/lib/squidGuard/db
2017-02-13 12:57:18 [12153] New setting: logdir: /var/log/squidGuard
2017-02-13 12:57:18 [12153] init domainlist /var/lib/squidGuard/db/blacklists/good/domains
2017-02-13 12:57:18 [12153] loading dbfile /var/lib/squidGuard/db/blacklists/good/domains.db
2017-02-13 12:57:18 [12153] init urllist /var/lib/squidGuard/db/blacklists/good/urls
2017-02-13 12:57:18 [12153] loading dbfile /var/lib/squidGuard/db/blacklists/good/urls.db
2017-02-13 12:57:18 [12153] init domainlist /var/lib/squidGuard/db/blacklists/bad/domains
2017-02-13 12:57:18 [12153] loading dbfile /var/lib/squidGuard/db/blacklists/bad/domains.db
2017-02-13 12:57:18 [12153] init urllist /var/lib/squidGuard/db/blacklists/bad/urls
2017-02-13 12:57:18 [12153] loading dbfile /var/lib/squidGuard/db/blacklists/bad/urls.db
2017-02-13 12:57:18 [12153] init domainlist /var/lib/squidGuard/db/blacklists/porn/domains
2017-02-13 12:57:18 [12153] loading dbfile /var/lib/squidGuard/db/blacklists/porn/domains.db
2017-02-13 12:57:18 [12153] init urllist /var/lib/squidGuard/db/blacklists/porn/urls
2017-02-13 12:57:18 [12153] loading dbfile /var/lib/squidGuard/db/blacklists/porn/urls.db
2017-02-13 12:57:18 [12153] squidGuard 1.4 started (1486958238.123)
2017-02-13 12:57:18 [12153] squidGuard ready for requests (1486958238.124)
2017-02-13 12:57:18 [12153] no ACL matching source, using default
2017-02-13 12:57:18 [12153] Request(default/bad/-) https://www.itseclab.jp/ 192.168.11.17/- - - REDIRECT
http://localhost/block.html 192.168.11.17/- - -
2017-02-13 12:57:18 [12153] squidGuard stopped (1486958238.124)

※Requestとなり、ブロックページへリダイレクトされていますので、正常に処理されています。
続いて、192.168.12.0/24セグメントのadminユーザの場合を確認しておきます。

# echo "https://www.itseclab.jp/ 192.168.12.2/ - - GET" | squidGuard -c /etc/squid/squidGuard.conf -d

2017-02-13 13:00:13 [12156] New setting: dbhome: /var/lib/squidGuard/db
2017-02-13 13:00:13 [12156] New setting: logdir: /var/log/squidGuard
2017-02-13 13:00:13 [12156] init domainlist /var/lib/squidGuard/db/blacklists/good/domains
2017-02-13 13:00:13 [12156] loading dbfile /var/lib/squidGuard/db/blacklists/good/domains.db
2017-02-13 13:00:13 [12156] init urllist /var/lib/squidGuard/db/blacklists/good/urls
2017-02-13 13:00:13 [12156] loading dbfile /var/lib/squidGuard/db/blacklists/good/urls.db
2017-02-13 13:00:13 [12156] init domainlist /var/lib/squidGuard/db/blacklists/bad/domains
2017-02-13 13:00:13 [12156] loading dbfile /var/lib/squidGuard/db/blacklists/bad/domains.db
2017-02-13 13:00:13 [12156] init urllist /var/lib/squidGuard/db/blacklists/bad/urls
2017-02-13 13:00:13 [12156] loading dbfile /var/lib/squidGuard/db/blacklists/bad/urls.db
2017-02-13 13:00:13 [12156] init domainlist /var/lib/squidGuard/db/blacklists/porn/domains
2017-02-13 13:00:13 [12156] loading dbfile /var/lib/squidGuard/db/blacklists/porn/domains.db
2017-02-13 13:00:13 [12156] init urllist /var/lib/squidGuard/db/blacklists/porn/urls
2017-02-13 13:00:13 [12156] loading dbfile /var/lib/squidGuard/db/blacklists/porn/urls.db
2017-02-13 13:00:13 [12156] squidGuard 1.4 started (1486958413.338)
2017-02-13 13:00:13 [12156] squidGuard ready for requests (1486958413.339)

2017-02-13 13:00:13 [12156] squidGuard stopped (1486958413.340)

 

ブロックページへリダイレクトされないため、正常に処理されていることが確認できました。

テストが正常に終了したら、最後にsquid.confに対してsquidGuardの設定を反映します。

# echo "url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf" >> /etc/squid/squid.conf
# echo "url_rewrite_bypass on" >> /etc/squid/squid.conf

※url_rewrite_bypass
リダイレクトできなくなった場合に無視するかどうかを指定します。このオプションをOnに設定しなかった場合、squidGuardがクラッシュまたは過負荷状態になると、異常終了します。

また、各ディレクトリをsquidユーザに変更してください。
# chown -R squid:squid /etc/squid/
# chown -R squid:squid /var/lib/squidGuard/
# chown -R squid:squid /var/log/squid/

サービス再起動して、実際にブラウザから確認します。
# systemctl restart squid

 

  • http通信のブロック(yahoo.co.jp)
  • https通信のブロック(ITセキュリティ研究所HP)
    ※squidフォーラムで言及されていますが、https通信はプロトコルのデザイン上、あらゆる干渉を受けないため、ブロックページにリダイレクトされず、下記のように表示されてしまいます。
    主要な有償製品でも、https通信は通常このように表示されます。

ログ上でもブロックされていることが確認できました。
# tail -f /var/log/squidGuard/block.log

2017-02-14 13:00:43 [12301] Request(localnet/bad/-) http://www.yahoo.co.jp/ 192.168.11.7/192.168.11.7 - GET REDIRECT
2017-02-14 13:01:37 [12301] Request(localnet/bad/-) www.itseclab.jp:443 192.168.11.7/192.168.11.7 - CONNECT REDIRECT

 

 

2.サードパーティ製ブラックリストの使用方法

 

公式HPによると、squidGuardをインストールした際に使用するテスト用ブラックリストでの運用は、本番での利用は推奨されていません。
他にもクオリティの高い無償のサードパーティ製ブラックリストが提供されています。
http://www.squidguard.org/blacklists.html

Shella Secure Serviceは最も規模が大きく現在170万のリストがエントリーされています。
公式HP:http://www.shallalist.de/
例として、このブラックリストを使用する方法をご紹介します。
※通常の商用利用にはShalla Secure Serviceへメールでコンタクトし、使用承諾書への署名が必要です。詳細は下記URLに記載されています。
http://www.shallalist.de/licence.html

下記コマンドでダウンロードし、tarで展開します。
# wget http://www.shallalist.de/Downloads/shallalist.tar.gz
# tar zxvf shallalist.tar.gz

BLというディレクトリ配下に各カテゴリに分けらたリストが格納されていますので、dbhomeにコピーします。
# cp -rp BL /var/lib/squidGuard/db/
find . -type f /var/lib/squidGuard/db/BL

./updatesites/urls
./updatesites/domains
./military/urls
./military/domains
./webtv/urls
./webtv/domains
./anonvpn/urls
./anonvpn/domains
./adv/urls
./adv/domains
./global_usage
./religion/urls
./religion/domains
./sex/education/urls
./sex/education/domains
./sex/lingerie/urls
./sex/lingerie/domains
./news/urls
./news/domains
./dynamic/urls
./dynamic/domains
./forum/urls
./forum/domains
./science/chemistry/urls
./science/chemistry/domains
./science/astronomy/urls
./science/astronomy/domains
./COPYRIGHT
./porn/urls
./porn/domains
./porn/domains.db
./porn/urls.db
./tracker/urls
./tracker/domains
./jobsearch/urls
./jobsearch/domains
./costtraps/urls
./costtraps/domains
./ringtones/urls
./ringtones/domains
./movies/urls
./movies/domains
./searchengines/urls
./searchengines/domains
./government/urls
./government/domains
./library/urls
./library/domains
./automobile/bikes/urls
./automobile/bikes/domains
./automobile/boats/urls
./automobile/boats/domains
./automobile/cars/urls
./automobile/cars/domains
./automobile/planes/urls
./automobile/planes/domains
./hacking/urls
./hacking/domains
./hobby/games-misc/urls
./hobby/games-misc/domains
./hobby/pets/urls
./hobby/pets/domains
./hobby/games-online/urls
./hobby/games-online/domains
./hobby/cooking/urls
./hobby/cooking/domains
./hobby/gardening/urls
./hobby/gardening/domains
./podcasts/urls
./podcasts/domains
./education/schools/urls
./education/schools/domains
./socialnet/urls
./socialnet/domains
./downloads/urls
./downloads/domains
./shopping/urls
./shopping/domains
./models/urls
./models/domains
./music/urls
./music/domains
./violence/urls
./violence/domains
./isp/urls
./isp/domains
./webmail/urls
./webmail/domains
./radiotv/urls
./radiotv/domains
./webradio/urls
./webradio/domains
./weapons/urls
./weapons/domains
./spyware/urls
./spyware/domains
./fortunetelling/urls
./fortunetelling/domains
./homestyle/urls
./homestyle/domains
./webphone/urls
./webphone/domains
./warez/urls
./warez/domains
./urlshortener/urls
./urlshortener/domains
./alcohol/urls
./alcohol/domains
./aggressive/urls
./aggressive/domains
./hospitals/urls
./hospitals/domains
./recreation/sports/urls
./recreation/sports/domains
./recreation/travel/urls
./recreation/travel/domains
./recreation/martialarts/urls
./recreation/martialarts/domains
./recreation/wellness/urls
./recreation/wellness/domains
./recreation/restaurants/urls
./recreation/restaurants/domains
./recreation/humor/urls
./recreation/humor/domains
./politics/urls
./politics/domains
./redirector/urls
./redirector/domains
./finance/moneylending/urls
./finance/moneylending/domains
./finance/other/urls
./finance/other/domains
./finance/realestate/urls
./finance/realestate/domains
./finance/insurance/urls
./finance/insurance/domains
./finance/trading/urls
./finance/trading/domains
./finance/banking/urls
./finance/banking/domains
./gamble/urls
./gamble/domains
./chat/urls
./chat/domains
./drugs/urls
./drugs/domains
./dating/urls
./dating/domains
./remotecontrol/urls
./remotecontrol/domains
./imagehosting/urls
./imagehosting/domains
./good/domains.db
./good/urls.db
./good/domains
./good/urls
./bad/domains.db
./bad/urls.db
./bad/domains
./bad/urls

 

※global_usageに各カテゴリの解説が記載されています。

ここで設定ファイルに変更点(blacklistsとBLの置換)が出ましたので、変更します。
# vi /etc/squid/squidGuard.conf
:%s/blacklists/BL/gc(すべてyを選択)

goodとbadもコピーします。
cp -rp good/ /var/lib/squidGuard/db/BL
# cp -rp bad/ /var/lib/squidGuard/db/BL

DB化して完了です。
# squidGuard -C all

テストを実行します。
URLにはadultカテゴリリストのあったものを選択しています。
# echo "http://001radiostorm.com/stream/hardrock.asx/ 192.168.11.17/ - - GET" |squidGuard -c /etc/squid/squidGuard.conf -d

2017-02-14 14:44:22 [12598] New setting: dbhome: /var/lib/squidGuard/db
2017-02-14 14:44:22 [12598] New setting: logdir: /var/log/squidGuard
2017-02-14 14:44:22 [12598] init domainlist /var/lib/squidGuard/db/BL/good/domains
2017-02-14 14:44:22 [12598] loading dbfile /var/lib/squidGuard/db/BL/good/domains.db
2017-02-14 14:44:22 [12598] init urllist /var/lib/squidGuard/db/BL/good/urls
2017-02-14 14:44:22 [12598] loading dbfile /var/lib/squidGuard/db/BL/good/urls.db
2017-02-14 14:44:22 [12598] init domainlist /var/lib/squidGuard/db/BL/bad/domains
2017-02-14 14:44:22 [12598] loading dbfile /var/lib/squidGuard/db/BL/bad/domains.db
2017-02-14 14:44:22 [12598] init urllist /var/lib/squidGuard/db/BL/bad/urls
2017-02-14 14:44:22 [12598] loading dbfile /var/lib/squidGuard/db/BL/bad/urls.db
2017-02-14 14:44:22 [12598] init domainlist /var/lib/squidGuard/db/BL/porn/domains
2017-02-14 14:44:22 [12598] loading dbfile /var/lib/squidGuard/db/BL/porn/domains.db
2017-02-14 14:44:22 [12598] init urllist /var/lib/squidGuard/db/BL/porn/urls
2017-02-14 14:44:22 [12598] loading dbfile /var/lib/squidGuard/db/BL/porn/urls.db
2017-02-14 14:44:22 [12598] logfile not allowed in acl other than default
2017-02-14 14:44:22 [12598] squidGuard 1.4 started (1487051062.916)
2017-02-14 14:44:22 [12598] squidGuard ready for requests (1487051062.917)
2017-02-14 14:44:22 [12598] Request(localnet/adult/-) http://001radiostorm.com/stream/hardrock.asx/ 192.168.11.17/- - - REDIRECT
http://192.168.11.17/block.html?caddr=192.168.11.17 192.168.11.17/- - -
2017-02-14 14:44:22 [12598] squidGuard stopped (1487051062.918)

ブロックされていることを確認できました。

リストのUpdateが必要になった場合は、下記URLにupdate用のスクリプトがあります。
http://www.shallalist.de/helpers.html

例として、shalla_update.v2.shを確認すると、インストール方法の違いや、OS環境により変更点がありますので、これらを適時変更し、このスクリプトをcronで定期的に実行することで、最新化することができます。

変更点
tarpath="/usr/bin/tar"
chownpath="//usr/bin/chown"
dbhome="/var/lib/squidGuard/db"
squidGuardowner="squid:squid"
workdir="/var/lib/squidGuard/db/tmp"
httpget="/usr/bin/wget" #追記
wgetlogdir="/var/tmp" #追記

#!/bin/sh
#
# shalla_update.sh, v 0.3.1 20080403
# done by kapivie at sil.at under FreeBSD
# without any warranty
# updated by Len Tucker to create and use diff
# files to reduce load and increase speed.
# Added Checks for required elements
# Added output info for status of script
# Modified by Chris Kronberg: included loop; added some more
# checks; reduced the diff files to the necessary content.
#
#--------------------------------------------------
# little script (for crond)
# to fetch and modify new list from shallalist.de
#--------------------------------------------------
#
# *check* paths and squidGuard-owner on your system
# try i.e. "which squid" to find out the path for squid
# try "ps aux | grep squid" to find out the owner for squidGuard
#     *needs wget*
#

squidGuardpath="/usr/local/bin/squidGuard"
squidpath="/usr/sbin/squid"
tarpath="/usr/bin/tar"
chownpath="//usr/bin/chown"

dbhome="/var/lib/squidGuard/db"     # like in squidGuard.conf
squidGuardowner="squid:squid"

##########################################

workdir="/var/lib/squidGuard/db/tmp"
if [ ! -d $workdir ]; then
  mkdir -p $workdir
fi

if [ ! -f $tarpath ]
 then echo "Could not locate tar."
      exit 1
fi

if [ ! -f $chownpath ]
 then echo "Could not locate chown."
      exit 1
fi 

if [ ! -d  $dbhome ]
 then echo "Could not locate squid db directory."
      exit 1
fi

# check that everything is clean before we start.
if [ -f  $workdir/shallalist.tar.gz ]; then
   echo "Old blacklist file found in ${workdir}. Deleted!"
   rm $workdir/shallalist.tar.gz
fi

if [ -d $workdir/BL ]; then
   echo "Old blacklist directory found in ${workdir}. Deleted!"
   rm -rf $workdir/BL
fi

# copy actualF shalla's blacklist
# thanks for the " || exit 1 " hint to Rich Wales
# (-b run in background does not work correctly) -o log to $wgetlog

echo "Retrieving shallalist.tar.gz"
httpget="/usr/bin/wget" #追記
wgetlogdir="/var/tmp" #追記
$httpget $shallalist -a $wgetlogdir/shalla-wget.log -O $workdir/shallalist.tar.gz || { echo "Unable to download shallalist.tar.gz." && exit 1 ; }

echo "Unzippping shallalist.tar.gz"

$tarpath xzf $workdir/shallalist.tar.gz -C $workdir || { echo "Unable to extract $workdir/shallalist.tar.gz." && exit 1 ; }

# Create diff files for all categories
# Note: There is no reason to use all categories unless this is exactly
#       what you intend to block. Make sure that only the categories you
#       are going to block with squidGuard are listed below.

CATEGORIES="adv aggressive automobile/cars automobile/bikes automobile/planes automobile/boats chat dating downloads drugs dynamic finance/banking finance/insurance finance/other finance/moneylending finance/realestate forum gamble hacking hobby/cooking hobby/games hobby/pets hospitals imagehosting isp jobsearch models movies music news podcasts politcs porn recreation/humor recreation/sports recreation/travel recreation/wellness redirector religion ringtones science/astronomy science/chemistry searchengines sex/lingerie shopping socialnet spyware tracker updatesites violence warez weapons webmail webphone webradio webtv" 

echo "Creating diff files."
# The "cp" after the "diff" ensures that we keep up to date with our 
# domains and urls files.
for cat in $CATEGORIES
do

if [ -f $workdir/BL/${cat}/domains ] && [ -f $dbhome/${cat}/domains ]
  then
    diff -U 0 $dbhome/${cat}/domains $workdir/BL/${cat}/domains |grep -v "^---"|grep -v "^+++"|grep -v "^@@" > $dbhome/${cat}/domains.diff
    cp $workdir/BL/${cat}/domains $dbhome/${cat}/domains
fi

if [ -f $workdir/BL/${cat}/urls ] && [ -f $dbhome/${cat}/urls ]
  then
    diff -ur $dbhome/${cat}/urls $workdir/BL/${cat}/urls > $dbhome/${cat}/urls.diff
    cp $workdir/BL/${cat}/urls $dbhome/${cat}/urls
fi

done


echo "Setting file permisions."
$chownpath -R $squidGuardowner $dbhome
chmod 755 $dbhome
cd $dbhome
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;

echo "Updating squid db files with diffs."
$squidGuardpath -u all

echo "Reconfiguring squid."
$squidpath -k reconfigure

echo "Clean up downloaded file and directories."
rm $workdir/shallalist.tar.gz
rm -rf $workdir/BL

exit 0

 

まとめ

  • squidGuardでは、通常のIPレンジ指定だけでなく、ユーザをグルーピングしてフィルタリングすることも可能。
  • 既成・自前のブラックリストの使用・更新、自前のホワイトリストの作成・更新によるブロックができ、基本性能は有償製品と同じように使用できる。
  • https通信はブロックページにリダイレクトされない。
  • 現在、日本のブラックリストは無料で提供されていない。
  • サードパーティー製のブラックリストを使用する場合は、商用利用の使用承諾が必要である。