linux下用squid和squidGuard配置代理服務(wù)器
網(wǎng)上有不少在linux中使用squid和squidGuard配置代理服務(wù)器的文章,這幾天一直在搞這么個東東網(wǎng)上的資料也看了不少總是覺的和自己設(shè)置的不一樣。就把我自己寫的發(fā)上來。大家可以參考也給自己留個備份。
1.設(shè)置網(wǎng)絡(luò)參數(shù)什么IP。
主機名什么的這個就不廢話了。
2.建立squid的用戶和組
| groupadd squid  編輯\etc\passwd suuid:x:500:501::/usr/local/squid:/bin/bash 用戶目錄設(shè)為/usr/local/squid  | 
        
www.squid-cache.org ;下載squid-2.4.STABLE2-src.tar.gz存在本地/usr/local/squid/src。
| $cd /usr/local/squid/src  $tar xvzf squid-2.4.STABLE2-src.tar.gz $ cd squid-2.4.STABLE2 $./configure $make $make install http://www.sleepycat.com  $su  從http://ftp.ost.eltele.no/pub/www/proxy/squidGuard/squidGuard-1.1.4.tar.gz下載軟件包并存于本地/usr/local/squidGuard/src/ #cd /usr/local/squidGuard/src/   | 
        
| #make  #make test 測試ok,即可進行下一步安裝 測試的時候可能也會報一個錯誤好像是什么什么權(quán)限問題??梢缘絪quidGuard-1.1.4目錄下的test下在執(zhí)行一下#make test 要是這里沒有問題就可以繼續(xù)。 #make install  | 
        
#p#
4.配置squid: 
| 修改squid的配置文件/usr/local/squid/etc/squid.conf:  http_port 8080 #squid的代理端口,使用1024以下的端口,squid必須以root身份運行  #允許所有的用戶通過代理進行http訪問  #squid啟用squidGuard進行過濾和轉(zhuǎn)發(fā)  | 
        
| cache_mem:設(shè)置代理服務(wù)使用的內(nèi)存大小,一般推薦為物理內(nèi)存的三分之一  cache_dir:指定cache目錄的路徑,默認為/usr/local/squid/cache。 maximum_object_size: 指定Squid可以接收的***對象的大小。Squid缺省值為4M,可以根據(jù)自己的需要進行設(shè)定。   | 
        
| cache_dir /usr/local/squid/cache 100 16 256  /usr/local/squid/cache代表緩存的位置;100代表緩存***為100M;16和256代表一級和二級目錄數(shù)。  | 
        
cache_effective_group:設(shè)定使用緩存的有效用戶組。缺省組為nogroup,如果系統(tǒng)中沒有組nogroup,***建一個組。這里是squid組
5.配置squidGuard:
| 修改squidGuard的配置文件/usr/local/squidGuard/squidGuard.conf文件:
             logdir /usr/local/squidGuard/logs #日志目錄定義 dbhome /usr/local/squidGuard/db #db目錄定義 time testtime { #時間規(guī)則定義 weekly mtwhf 05:00 - 10:30  src admin { #源組定義 ip 192.168.100.18  src client{  dest porn { #目標組定義 domainlist porn/domains  acl { #訪問規(guī)則定義 admin within testtime {  (#也可以重定向到一個含有一些信息的cgi頁面,如下: }   | 
        
#p#
| # vi db/porn/domains | 
| co.za  sex.com  | 
        
| # vi db/porn/urls | 
| qihui.com/sex  valen.sohu.com/album  | 
        
| # vi db/porn/expressions | 
| (^|[?+=/])(.*)(girl)(.*)([?+=/]|$) | 
注意:squidGuard對配置文件的語法要求很嚴,如果配置文件語法有誤,squidGuard仍能運行,但是squidGuard已進入應(yīng)急模式,此時代理服務(wù)不具有任何阻塞作用,所有通過該代理的訪問都可通過,可以查看logs/squidGuard的日志文件,即可發(fā)現(xiàn)錯誤,例如:
| 2001-12-20 17:08:44 [2430] parse error in configfile /usr/local/squidGuard/squidGuard.conf line 8  2001-12-20 17:08:44 [2430] going into emergency mode …….  | 
        
6. 運行:
| $ chmod 777 /var/log/squid  $ chmod 777 /var/spool/squid $ chmod 777 /usr/local/squid/var $ chmod 777 /usr/local/squid/var/logs $ chmod 777 /usr/local/squidGuard/log $ chmod 777 /var/log/squid  | 
        
記得的好像就是這幾個文件開777權(quán)限。要是疏漏了可以看日志修改
| $ /usr/local/squid/bin/squid -z | 
|  
             #/usr/local/squid/bin/squid  后臺執(zhí)行squid。如果想前臺執(zhí)行squid:如果你想前臺執(zhí)行Squid執(zhí)行命令: 
 
  | 
        
查看squidGuard日志文件:
| init domainlist /usr/local/squidGuard/db/porn/domains  2001-12-20 16:14:43 [2270] init domainlist /usr/local/squidGuard/db/porn/domains 2001-12-20 16:14:43 [2270] init urllist /usr/local/squidGuard/db/porn/urls 2001-12-20 16:14:43 [2270] init expressionlist /usr/local/squidGuard/db/porn/expressions 2001-12-20 16:14:43 [2270] squidGuard 1.1.4 started (1008836083.022) 2001-12-20 16:14:43 [2270] recalculating alarm in 917 seconds 2001-12-20 16:14:43 [2270] squidGuard ready for requests (1008836083.044)  | 
        
7.開機自動啟動
最容易的機制之一是/etc/rc.local腳本。這是個簡單的shell腳本,在每次系統(tǒng)啟動時以root運行。使用該腳本來啟動squid非常容易,增加一行如下:
| /usr/local/squid/sbin/squid -D  touch /var/lock/subsys/local  | 
        
8.一些小經(jīng)驗和大家分享一下
在開啟squid之前,你應(yīng)該謹慎的驗證配置文件。這點容易做到,運行如下命令即可:%squid -k parse假如你看不到輸出,配置文件有效,你能繼續(xù)后面的步驟。
然而,如果配置文件包含錯誤,squid會告訴你:squid.conf line 62: http_access allow okay2 aclParseAccessLine: ACL name 'okay2' not found.這里你可以看到,62行的http_access指令指向的ACL不存在。有時候錯誤信息很少:FATAL: Bungled squid.conf line 76: memory_pools在這個情形里,我們忘記了在76行的memory_pools指令后放置on或off.
建議你養(yǎng)成習(xí)慣:在每次修改配置文件后,使用squid -k parse。假如你不愿麻煩,并且你的配置文件有錯誤,squid會告訴你關(guān)于它們而且拒絕啟動。假如你管理著大量的cache,也許你會編輯腳本來自動啟動,停止和重配置squid。你能在腳本里使用該功能,來確認配置文件是有效的。
保存日志vi /etc/logrotate.d/squid/var/log/squid/access.log
| 
             {    weekly      }  | 
        
原文來自:http://netdl.blog.51cto.com/184762/33118
【編輯推薦】















 
 
 


 
 
 
 