RHEL5.7下的squid服務器配置

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

保存後退出,然後啓動squid。在啓動之前,必須保證squid有完整的域名
vi /etc/hosts

接下來對squid服務器進行初始化,目的是在squid服務器工作目錄中建立緩存子目錄。
squid -z
查看squid子目錄,可以發現多了16個子目錄

*****************************************************
squid子目錄大小涉及到squid服務器性能問題,默認情況下一級子目錄16個,二級子目錄256個。可以在squid.conf中修改每個目錄容量大小:
cache_dir ufs /var/spool/squid 100 16 256
其中/var/spool/squid代表工作路徑,目錄最大容量100M,一級子目錄16個,二級子目錄256個。
另外可以修改緩衝內存大小,建議設置爲物理內存三分之一,例:
chche_mem 8 MB
*****************************************************
開啓squid服務
service squid start
查看8080端口是否開啓

這時回到windows主機上,設置IE瀏覽器的“internet選項”-“連接”-“局域網設置”,將代理服務器IP和端口填進去

這時候訪問外網地址http://198.2.3.1,就可以成功訪問了(模擬外網的linux主機要記得開啓httpd服務)。

二、透明代理服務器配置
前面有說過,透明代理只能在網關上配置。因此這次需要修改RHEL-B的squid.conf文件。先將RHEL-B原先的NAT刪除,使得windows PC和RHEL-B均不能訪問外網,仍然引用之前那個拓撲:

和之前一樣,首先修改允許訪問的網段

找到http端口號位置,在後面加個transparent,就代表代理服務器時以透明模式運行的。

接下來對squid服務器進行初始化
squid -z
重啓squid服務
service squid reload
查看3128端口有沒有開啓
netstat -ntl

訪問外網地址http://198.2.3.1,就可以成功訪問了(注意清空之前的cookie,而且網關的httpd服務不能開啓,否則80端口會被佔用)。

*****************************************************
如果網關做了NAT,而靜態透明代理需要在SNAT之前執行的話,需要輸入以下iptables命令:
iptables -t nat -A PREOUTING -s 192.168.10.0/24 -p tcp -dport 80 -j REDIRECT--to-ports 3128
*****************************************************
這樣就完成了基本的squid服務器配置,有關反向代理的配置,在以後的文章中會詳細說明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章