SquidGuard 為 Web Proxy Server 加上惡意網站過濾功能

1、前言

Squid 能「過濾 (Filter)」 不當資訊網站,但若是您一筆一筆自行定義實在是很累的事,因此 SquidGuard 就這樣產生了,SquidGuard 是由國外一群厭惡網路不當資訊的人所組成,會定期增加黑名單網站 SquidGuard Blacklist,您只要安裝 SquidGuard 並匯入黑名單在搭配 Squid 就可輕鬆達到過濾不當資訊網站的功能。



SquidGuard 作用的原理很簡單,就是當 Squid Clients 欲透過 Squid 對外連線至 Internet時會檢查一下 SquidGuard 內所定義的黑名單網站清單 (Blacklist) 若符合則重新導向 (Redirect) 到自訂的禁止連線說明網站,若未符合則放行對外連線。

文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 SquidGuard 套件
          步驟2.修改 squidguard.conf 設定檔
          步驟3.下載黑名單檔案 Blacklist.gz
          步驟4.修改並重新載入 squid.conf 設定檔
          步驟5.查看及測試
          測試 SquidGuard 功能是否生效
4、參考



2、實作環境

  • CentOS 5.1 (Linux 2.6.18-53.1.4.el5)
  • squidguard-1.2.0-2.2.el5.rf



3、安裝及設定

步驟1.安裝 SquidGuard 套件

鍵入如下指令,安裝 SquidGuard 套件。
yum -y install squidguard      //使用 yum 安裝 squidguard 套件


步驟2.修改 squidguard.conf 設定檔

修改 squidguard.conf 設定檔,內容如下:
vi /etc/squid/squidguard.conf
 dbhome /var/lib/squidguard     //存放 Blacklist 黑名單路徑
 logdir /var/log/squidguard     //存放 SquidGuard Log 路徑
 source clients {               //定義 squid clients 網段 (更進階可配合開放 /禁止時間)
     ip 192.168.1.0/24
 }
 dest block {                   //定義 blacklist 名稱項目
        domainlist blacklists   //Domains 檔路徑
        urllist blacklists      //URL 檔路徑
 }
 acl {
        default {
         pass     !block all    //不在 blacklist 內則放行
         redirect http://www.weithenn.org/block.htm  //當連線為block內定義,則重新導向至連線禁止網頁
        }
 }



步驟3.下載黑名單檔案 Blacklist.gz

我們切換至 SquidGuard 存放黑名單資料夾,下載黑名單檔案開解後將該檔案權限設定為 squid (這樣 squid 才可讀取)。
cd /var/lib/squidguard                                        //切換至存放黑名單路徑
wget http://squidguard.mesd.k12.or.us/blacklists.tgz     //下載黑名單檔案
gunzip blacklists.gz                                          //解開黑名單檔案
chown squid:squid blacklists                                 //更改權限為 squid



步驟4.修改並重新載入 squid.conf 設定檔

修改 squid.conf 設定檔以便在啟動 Squid 時,順便將 SquidGuard 黑名單設定檔載入。
vi /etc/squid/squid.conf
 redirect_program /usr/bin/squidGuard -c /etc/squid/squidguard.conf //加入此行以帶起 SquidGuard 服務
/usr/sbin/squid -k reconfigure  //重新讀取設定檔



步驟5.查看及測試

查看 Squid 是否有載入 SquidGuard。
tail /home/log/squid/cache.log
 2008/04/16 19:37:23| Adding nameserver 168.95.192.1 from /etc/resolv.conf
 2008/04/16 19:37:23| Adding nameserver 168.95.1.1 from /etc/resolv.conf
 2008/04/16 19:37:23| helperOpenServers: Starting 5 'squidGuard' processes  //載入成功
 2008/04/16 19:37:23| Accepting transparently proxied HTTP connections at 0.0.0.0, port 3128, FD 14.
 2008/04/16 19:37:23| Accepting ICP messages at 0.0.0.0, port 3130, FD 16.
 2008/04/16 19:37:23| WCCP Disabled.
 2008/04/16 19:37:23| Loaded Icons.
 2008/04/16 19:37:23| Ready to serve requests.

查看是否順利載入黑名單 SquidGuard。
tail /var/log/squidguard/squidGuard.log
 2008-04-16 18:23:27 4468 init domainlist /var/lib/squidguard/blacklists
 2008-04-16 18:25:30 4464 init urllist /var/lib/squidguard/blacklists
 2008-04-16 18:25:37 4464 squidGuard 1.2.0 started (1208341407.170)
 2008-04-16 18:25:37 4464 squidGuard ready for requests (1208341537.491)

查看是否順利啟動 SquidGuard Process。
ps ax |grep squid
 root      2665  0.0  0.0   7716  1104 ?   Ss   11:37   0:00 squid -D
 squid     2667  0.0  0.3  12300  8192 ?   S    11:37   0:01 (squid) -D
 squid     2669  0.0  0.0   3336  1560 ?   Ss   11:37   0:21 (squidGuard) -c /etc/squid/squidguard.conf
 squid     2670  0.0  0.0   3336  1556 ?   Ss   11:37   0:22 (squidGuard) -c /etc/squid/squidguard.conf
 squid     2671  0.0  0.0   3336  1560 ?   Ss   11:37   0:22 (squidGuard) -c /etc/squid/squidguard.conf
 squid     2672  0.0  0.0   3336  1500 ?   Ss   11:37   0:22 (squidGuard) -c /etc/squid/squidguard.conf
 squid     2673  0.0  0.0   3332  1500 ?   Ss   11:37   0:22 (squidGuard) -c /etc/squid/squidguard.conf


測試 SquidGuard 功能是否生效

此時你可以操作你的 Squid Client 隨便連一個 Blacklist 內的網站(例如 mp3.sites.cc),此時應該要 Redirect 到您指定的禁止存取網頁 (ex. http://www.weithenn.org/block.htm) 才對。



4、參考