squid的作用:
1 通過快取的方式為使用者提供加速WEB訪問
2 對使用者的WEB訪問進行過濾控制
3 共享internet連線,節省ip開銷
工具/原料
主包squid-2.6.STABLE6-3.el5
方法/步驟
普通代理:需要客戶機在瀏覽器中指定代理伺服器的地址、埠
普通代理伺服器的配置:
# http_port 3128 (或者下面一種寫法)
# http_port 192.168.50.38:3128
cache_mem 64 MB
設定PROXY SERVER可使用多少記憶體作為快取記憶體,一般要設定為實體記憶體的1/3
reply_body_max_size 10 MB allow all
禁止下載超過10M的檔案
maximum_object_size 4096 KB
指定多大的檔案可以被儲存到磁碟中
access_log /var/log/squid/access.log squid
visible_hostname proxy.benet.com
cache_dir ufs /var/spool/squid 100 16 256
設定快取記憶體目錄和快取記憶體可以使用的硬碟空間,100表示最大可使用100MB,16表示第一層子目錄最多可以有16個,256表示每個第一層子目錄下最多可以有256子目錄
http_access allow all
透明代理:適用於企業的閘道器主機(共享接入Internet)中客戶機不需要指定代理伺服器地址、埠等資訊需要設定防火牆策略將客戶機的Web訪問資料轉交給代理服務程式處理
配置透明代理
前提:
客戶機的Web訪問資料要能經過防火牆,代理服務構建在閘道器(防火牆)主機中
配置要求:
代理服務程式能夠支援透明代理,設定防火牆規則,將客戶機的Web訪問資料自動重定向給代理服務程式處理
ACL(Access Control List,訪問控制列表)
可以從客戶機的IP地址、請求訪問的URL/域名/檔案型別、訪問時間、併發請求數等各方面進行控制。
配置檔案:
http_port 3128 transparent
應用訪問控制的方式
定義acl列表
acl 列表名稱列表型別列表內容…
針對acl列表進行限制
http_access allow或deny 列表名……
acl all src 0.0.0.0/0.0.0.0
http_access deny all
常用的acl列表型別
src
dst
port
srcdomain
dstdomain
time
maxconn
url_regex
urlpath_regex
ACL列表定義示例
Acl LAN1 src 192.168.1.0/24
acl PC1 src 192.168.1.66/32
acl Blk_Domain dstdomain .qq.com .kaixin001.com
acl Work_Hours time MTWHF 08:30-17:30
acl Max20_Conn maxconn 20
acl Blk_URL url_regex -i ^rtsp:// ^mms://
acl Blk_Words urlpath_regex -i sex adult
acl RealFile urlpath_regex -i \.rmvb$ \.rm$
對ACL列表進行訪問控制
http_access deny LAN1 Blk_URL
http_access deny LAN1 Blk_Words
http_access deny PC1 RealFile
http_access deny PC1 Max20_Conn
http_access allow LAN1 Work_Hours
配置反向代理
192.168.7.2(公網客戶端)
192.168.7.1(公網介面)(squid代理開啟核心路由轉發功能)192.168.6.1(內網介面)192.168.6.2(內網客戶端閘道器指向192.168.6.1)
在內網的web服務上做基於域名的虛擬主機模擬多臺WEB伺服器
Squid代理伺服器的配置
cache_peer Web伺服器地址伺服器型別 http埠 icp埠 [可選項]
cache_peer 指定真正WEB伺服器的位置
parent 伺服器型別對應到目標主機的快取級別,上游Web主機一般使用“parent”(父服務
器)
icp埠用於連線相鄰的ICP(Internet Cache Protocol)快取伺服器(通常為另一臺Squid主機),如果沒有,則使用0;
originserver 表示該伺服器作為提供Web服務的原始主機,
weight=n”指定伺服器的優先權重,n為整數,數字越大優先順序越高(預設為1);
max-conn=n”指定反向代理主機到該web伺服器的最大連線數。
公網客戶端訪問:
檢視代理伺服器的訪問日誌檔案/var/log/squid/access_log
檢視內網WEB伺服器虛擬主機的訪問日誌檔案 access_log
檢測反向代理是否配置成功
好了,我們的三種代理型別介紹完了,歡迎大家交流經驗。
注意事項
透明代理與反向代理不能同時應用