RHEL5.7下的squid服務(wù)器配置
Squid cache(簡稱為Squid)是一個流行的自由軟件(GNU通用公共許可證)的代理服務(wù)器和Web緩存服務(wù)器。Squid有廣泛的用途,從作為網(wǎng)頁服務(wù) 器的前置cache服務(wù)器緩存相關(guān)請求來提高Web服務(wù)器的速度,到為一組人共享網(wǎng)絡(luò)資源而緩存萬維網(wǎng),域名系統(tǒng)和其他網(wǎng)絡(luò)搜索,到通過過濾流量幫助網(wǎng)絡(luò) 安全,到局域網(wǎng)通過代理上網(wǎng)。Squid主要設(shè)計用于在Unix和Linux一類系統(tǒng)運行。
有關(guān)代理服務(wù)器,主要有以下幾個特點:
應(yīng)用層代理
1、針對特定的網(wǎng)絡(luò)協(xié)議進行代理
2、典型應(yīng)用:HTTP代理和FTP代理
代理服務(wù)器作用
1、局域網(wǎng)內(nèi)主機可以通過網(wǎng)內(nèi)可以訪問的主機去訪問外網(wǎng)
2、可以提供緩存,提高訪問效率
3、可以實現(xiàn)一定程度的訪問控制
squid服務(wù)具有的功能
1、提供HTTP和FTP協(xié)議的代理
2、緩存代理內(nèi)容,提高訪問速度
3、對客戶機進行訪問控制(基于目標地址或時間)
squid代理類型
正向代理:為客戶端提供代理服務(wù),需要客戶端指定IP
反向代理:為服務(wù)器提供代理服務(wù),目的為了減輕真實服務(wù)器負擔
透明代理:特殊的正向代理,不需要客戶端做任何設(shè)置,代理服務(wù)器必須是網(wǎng)關(guān),就相當于路由器和防火墻
squid代理服務(wù)器默認端口為3128,這個端口號可以更改,比如更改為公網(wǎng)中常用的8080端口。我們按照下面這個例子來驗證
一、正向代理服務(wù)器配置
在這個例子中,RHEL-B是網(wǎng)關(guān),連接著外網(wǎng);Windows PC是內(nèi)網(wǎng)主機,網(wǎng)關(guān)指向RHEL-B,其中RHEL-B只允許RHEL-C做NAT轉(zhuǎn)換,也就是說在默認情況下,Windows PC是不能訪問外網(wǎng)的,只有RHEL-C可以訪問外網(wǎng)。在這里,我們要通過將RHEL-C設(shè)置為代理服務(wù)器,使得Windows PC能夠訪問外網(wǎng)。
首先查看RHEL-C的squid有沒有安裝(系統(tǒng)默認已裝)
rpm -q squid
進入squid配置文件
vi /etc/squid/squid.conf
搜索http_port 3128,將3128端口號改為8080
搜索acl our_networks,定義acl,名稱our_networks,設(shè)為允許,將源地址改為主機所在的網(wǎng)段192.168.10.0/24。否則默認只允許本地回環(huán)口訪問。
保存后退出,然后啟動squid。在啟動之前,必須保證squid有完整的域名
vi /etc/hosts
接下來對squid服務(wù)器進行初始化,目的是在squid服務(wù)器工作目錄中建立緩存子目錄。
squid -z
查看squid子目錄,可以發(fā)現(xiàn)多了16個子目錄
*****************************************************
squid子目錄大小涉及到squid服務(wù)器性能問題,默認情況下一級子目錄16個,二級子目錄256個。可以在squid.conf中修改每個目錄容量大?。?
cache_dir ufs /var/spool/squid 100 16 256
其中/var/spool/squid代表工作路徑,目錄最大容量100M,一級子目錄16個,二級子目錄256個。
另外可以修改緩沖內(nèi)存大小,建議設(shè)置為物理內(nèi)存三分之一,例:
chche_mem 8 MB
*****************************************************
開啟squid服務(wù)
service squid start
查看8080端口是否開啟
這時回到windows主機上,設(shè)置IE瀏覽器的“internet選項”-“連接”-“局域網(wǎng)設(shè)置”,將代理服務(wù)器IP和端口填進去
這時候訪問外網(wǎng)地址http://198.2.3.1,就可以成功訪問了(模擬外網(wǎng)的linux主機要記得開啟httpd服務(wù))。
二、透明代理服務(wù)器配置
前面有說過,透明代理只能在網(wǎng)關(guān)上配置。因此這次需要修改RHEL-B的squid.conf文件。先將RHEL-B原先的NAT刪除,使得windows PC和RHEL-B均不能訪問外網(wǎng),仍然引用之前那個拓撲:
和之前一樣,首先修改允許訪問的網(wǎng)段
找到http端口號位置,在后面加個transparent,就代表代理服務(wù)器時以透明模式運行的。
接下來對squid服務(wù)器進行初始化
squid -z
重啟squid服務(wù)
service squid reload
查看3128端口有沒有開啟
訪問外網(wǎng)地址
,就可以成功訪問了(注意清空之前的cookie,而且網(wǎng)關(guān)的httpd服務(wù)不能開啟,否則80端口會被占用)。
*****************************************************
如果網(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
*****************************************************