linux下用squid和squidGuard配置代理服務(wù)器
網(wǎng)上有不少在linux中使用squid和squidGuard配置代理服務(wù)器的文章,這幾天一直在搞這么個(gè)東東網(wǎng)上的資料也看了不少總是覺(jué)的和自己設(shè)置的不一樣。就把我自己寫的發(fā)上來(lái)。大家可以參考也給自己留個(gè)備份。
1.設(shè)置網(wǎng)絡(luò)參數(shù)什么IP。
主機(jī)名什么的這個(gè)就不廢話了。
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 測(cè)試ok,即可進(jìn)行下一步安裝 測(cè)試的時(shí)候可能也會(huì)報(bào)一個(gè)錯(cuò)誤好像是什么什么權(quán)限問(wèn)題。可以到squidGuard-1.1.4目錄下的test下在執(zhí)行一下#make test 要是這里沒(méi)有問(wèn)題就可以繼續(xù)。 #make install |
#p#
4.配置squid:
修改squid的配置文件/usr/local/squid/etc/squid.conf: http_port 8080 #squid的代理端口,使用1024以下的端口,squid必須以root身份運(yùn)行 #允許所有的用戶通過(guò)代理進(jìn)行http訪問(wèn) #squid啟用squidGuard進(jìn)行過(guò)濾和轉(zhuǎn)發(fā) |
cache_mem:設(shè)置代理服務(wù)使用的內(nèi)存大小,一般推薦為物理內(nèi)存的三分之一 cache_dir:指定cache目錄的路徑,默認(rèn)為/usr/local/squid/cache。 maximum_object_size: 指定Squid可以接收的***對(duì)象的大小。Squid缺省值為4M,可以根據(jù)自己的需要進(jìn)行設(shè)定。 |
cache_dir /usr/local/squid/cache 100 16 256 /usr/local/squid/cache代表緩存的位置;100代表緩存***為100M;16和256代表一級(jí)和二級(jí)目錄數(shù)。 |
cache_effective_group:設(shè)定使用緩存的有效用戶組。缺省組為nogroup,如果系統(tǒng)中沒(méi)有組nogroup,***建一個(gè)組。這里是squid組
5.配置squidGuard:
修改squidGuard的配置文件/usr/local/squidGuard/squidGuard.conf文件:
logdir /usr/local/squidGuard/logs #日志目錄定義 dbhome /usr/local/squidGuard/db #db目錄定義 time testtime { #時(shí)間規(guī)則定義 weekly mtwhf 05:00 - 10:30 src admin { #源組定義 ip 192.168.100.18 src client{ dest porn { #目標(biāo)組定義 domainlist porn/domains acl { #訪問(wèn)規(guī)則定義 admin within testtime { (#也可以重定向到一個(gè)含有一些信息的cgi頁(yè)面,如下: } |
#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對(duì)配置文件的語(yǔ)法要求很嚴(yán),如果配置文件語(yǔ)法有誤,squidGuard仍能運(yùn)行,但是squidGuard已進(jìn)入應(yīng)急模式,此時(shí)代理服務(wù)不具有任何阻塞作用,所有通過(guò)該代理的訪問(wèn)都可通過(guò),可以查看logs/squidGuard的日志文件,即可發(fā)現(xiàn)錯(cuò)誤,例如:
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. 運(yùn)行:
$ 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 |
記得的好像就是這幾個(gè)文件開(kāi)777權(quán)限。要是疏漏了可以看日志修改
$ /usr/local/squid/bin/squid -z |
#/usr/local/squid/bin/squid 后臺(tái)執(zhí)行squid。如果想前臺(tái)執(zhí)行squid:如果你想前臺(tái)執(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.開(kāi)機(jī)自動(dòng)啟動(dòng)
最容易的機(jī)制之一是/etc/rc.local腳本。這是個(gè)簡(jiǎn)單的shell腳本,在每次系統(tǒng)啟動(dòng)時(shí)以root運(yùn)行。使用該腳本來(lái)啟動(dòng)squid非常容易,增加一行如下:
/usr/local/squid/sbin/squid -D touch /var/lock/subsys/local |
8.一些小經(jīng)驗(yàn)和大家分享一下
在開(kāi)啟squid之前,你應(yīng)該謹(jǐn)慎的驗(yàn)證配置文件。這點(diǎn)容易做到,運(yùn)行如下命令即可:%squid -k parse假如你看不到輸出,配置文件有效,你能繼續(xù)后面的步驟。
然而,如果配置文件包含錯(cuò)誤,squid會(huì)告訴你:squid.conf line 62: http_access allow okay2 aclParseAccessLine: ACL name 'okay2' not found.這里你可以看到,62行的http_access指令指向的ACL不存在。有時(shí)候錯(cuò)誤信息很少:FATAL: Bungled squid.conf line 76: memory_pools在這個(gè)情形里,我們忘記了在76行的memory_pools指令后放置on或off.
建議你養(yǎng)成習(xí)慣:在每次修改配置文件后,使用squid -k parse。假如你不愿麻煩,并且你的配置文件有錯(cuò)誤,squid會(huì)告訴你關(guān)于它們而且拒絕啟動(dòng)。假如你管理著大量的cache,也許你會(huì)編輯腳本來(lái)自動(dòng)啟動(dòng),停止和重配置squid。你能在腳本里使用該功能,來(lái)確認(rèn)配置文件是有效的。
保存日志vi /etc/logrotate.d/squid/var/log/squid/access.log
{ weekly } |
原文來(lái)自:http://netdl.blog.51cto.com/184762/33118
【編輯推薦】