RHEL5.7下的squid服務(wù)器配置
Squid  cache(簡(jiǎn)稱(chēng)為Squid)是一個(gè)流行的自由軟件(GNU通用公共許可證)的代理服務(wù)器和Web緩存服務(wù)器。Squid有廣泛的用途,從作為網(wǎng)頁(yè)服務(wù) 器的前置cache服務(wù)器緩存相關(guān)請(qǐng)求來(lái)提高Web服務(wù)器的速度,到為一組人共享網(wǎng)絡(luò)資源而緩存萬(wàn)維網(wǎng),域名系統(tǒng)和其他網(wǎng)絡(luò)搜索,到通過(guò)過(guò)濾流量幫助網(wǎng)絡(luò) 安全,到局域網(wǎng)通過(guò)代理上網(wǎng)。Squid主要設(shè)計(jì)用于在Unix和Linux一類(lèi)系統(tǒng)運(yùn)行。 
有關(guān)代理服務(wù)器,主要有以下幾個(gè)特點(diǎn): 
應(yīng)用層代理 
1、針對(duì)特定的網(wǎng)絡(luò)協(xié)議進(jìn)行代理 
2、典型應(yīng)用:HTTP代理和FTP代理 
代理服務(wù)器作用 
1、局域網(wǎng)內(nèi)主機(jī)可以通過(guò)網(wǎng)內(nèi)可以訪問(wèn)的主機(jī)去訪問(wèn)外網(wǎng) 
2、可以提供緩存,提高訪問(wèn)效率 
3、可以實(shí)現(xiàn)一定程度的訪問(wèn)控制 
squid服務(wù)具有的功能 
1、提供HTTP和FTP協(xié)議的代理 
2、緩存代理內(nèi)容,提高訪問(wèn)速度 
3、對(duì)客戶(hù)機(jī)進(jìn)行訪問(wèn)控制(基于目標(biāo)地址或時(shí)間) 
squid代理類(lèi)型 
正向代理:為客戶(hù)端提供代理服務(wù),需要客戶(hù)端指定IP 
反向代理:為服務(wù)器提供代理服務(wù),目的為了減輕真實(shí)服務(wù)器負(fù)擔(dān) 
透明代理:特殊的正向代理,不需要客戶(hù)端做任何設(shè)置,代理服務(wù)器必須是網(wǎng)關(guān),就相當(dāng)于路由器和防火墻 
    squid代理服務(wù)器默認(rèn)端口為3128,這個(gè)端口號(hào)可以更改,比如更改為公網(wǎng)中常用的8080端口。我們按照下面這個(gè)例子來(lái)驗(yàn)證 
一、正向代理服務(wù)器配置 
在這個(gè)例子中,RHEL-B是網(wǎng)關(guān),連接著外網(wǎng);Windows  PC是內(nèi)網(wǎng)主機(jī),網(wǎng)關(guān)指向RHEL-B,其中RHEL-B只允許RHEL-C做NAT轉(zhuǎn)換,也就是說(shuō)在默認(rèn)情況下,Windows  PC是不能訪問(wèn)外網(wǎng)的,只有RHEL-C可以訪問(wèn)外網(wǎng)。在這里,我們要通過(guò)將RHEL-C設(shè)置為代理服務(wù)器,使得Windows PC能夠訪問(wèn)外網(wǎng)。 
 
首先查看RHEL-C的squid有沒(méi)有安裝(系統(tǒng)默認(rèn)已裝) 
rpm -q squid 
進(jìn)入squid配置文件 
vi /etc/squid/squid.conf 
搜索http_port 3128,將3128端口號(hào)改為8080 
  
搜索acl our_networks,定義acl,名稱(chēng)our_networks,設(shè)為允許,將源地址改為主機(jī)所在的網(wǎng)段192.168.10.0/24。否則默認(rèn)只允許本地回環(huán)口訪問(wèn)。 

保存后退出,然后啟動(dòng)squid。在啟動(dòng)之前,必須保證squid有完整的域名 
vi /etc/hosts 

接下來(lái)對(duì)squid服務(wù)器進(jìn)行初始化,目的是在squid服務(wù)器工作目錄中建立緩存子目錄。 
squid -z 
查看squid子目錄,可以發(fā)現(xiàn)多了16個(gè)子目錄 

***************************************************** 
squid子目錄大小涉及到squid服務(wù)器性能問(wèn)題,默認(rèn)情況下一級(jí)子目錄16個(gè),二級(jí)子目錄256個(gè)??梢栽趕quid.conf中修改每個(gè)目錄容量大小: 
cache_dir ufs /var/spool/squid 100 16 256 
其中/var/spool/squid代表工作路徑,目錄最大容量100M,一級(jí)子目錄16個(gè),二級(jí)子目錄256個(gè)。 
另外可以修改緩沖內(nèi)存大小,建議設(shè)置為物理內(nèi)存三分之一,例: 
chche_mem 8 MB 
***************************************************** 
開(kāi)啟squid服務(wù) 
service squid start 
查看8080端口是否開(kāi)啟 

這時(shí)回到windows主機(jī)上,設(shè)置IE瀏覽器的“internet選項(xiàng)”-“連接”-“局域網(wǎng)設(shè)置”,將代理服務(wù)器IP和端口填進(jìn)去 

這時(shí)候訪問(wèn)外網(wǎng)地址http://198.2.3.1,就可以成功訪問(wèn)了(模擬外網(wǎng)的linux主機(jī)要記得開(kāi)啟httpd服務(wù))。 

二、透明代理服務(wù)器配置 
前面有說(shuō)過(guò),透明代理只能在網(wǎng)關(guān)上配置。因此這次需要修改RHEL-B的squid.conf文件。先將RHEL-B原先的NAT刪除,使得windows PC和RHEL-B均不能訪問(wèn)外網(wǎng),仍然引用之前那個(gè)拓?fù)洌?

和之前一樣,首先修改允許訪問(wèn)的網(wǎng)段
找到http端口號(hào)位置,在后面加個(gè)transparent,就代表代理服務(wù)器時(shí)以透明模式運(yùn)行的。
接下來(lái)對(duì)squid服務(wù)器進(jìn)行初始化
squid -z 
重啟squid服務(wù)
service squid reload 
查看3128端口有沒(méi)有開(kāi)啟
訪問(wèn)外網(wǎng)地址
,就可以成功訪問(wèn)了(注意清空之前的cookie,而且網(wǎng)關(guān)的httpd服務(wù)不能開(kāi)啟,否則80端口會(huì)被占用)。

*****************************************************
如果網(wǎng)關(guān)做了NAT,而靜態(tài)透明代理需要在SNAT之前執(zhí)行的話,需要輸入以下iptables命令:
iptables -t nat -A PREOUTING -s 192.168.10.0/24 -p tcp -dport 80 -j REDIRECT--to-ports 3128
*****************************************************


















 
 
 

 
 
 
 