close
Squid是一種用來緩衝Internet數據的軟件。
Squid 接受來自Client端需要下載的目標(object)
的請求並適當地處理這些請求。
當部署企業內部角色為Cache Proxy時
當企業内部員工欲對外存取某一Web Site資訊,Squid將
代為他取得這個頁面,若企業内部尚由其他員工存取一樣頁面,
然後Squid會將Cache下來內容,直接回應其他Client端存取
無須再透過Internet再次抓取一次網頁資料,進而達到節省
企業聯外頻寬目的,此外Proxy Server 尚可部署條例,控管
企業員工連線至特定WEB頁面(Ex: facebook,yahoo)
實驗環境
Squid Proxy Server: 192.168.0.195:8888
實體MEM: 512 MB
Cache_dir 1G
Squid Client: 192.168.0.198(WinXP)
使用 Google Chrome 瀏覽器做測試
請於Lab前建置/var/squid1/ 目錄並利用chown將Owner與Group
變更為"Squid"可存取權限
(A):安裝Squid & 初始化組態設定
yum -y install squid
安裝完成後編輯/etc/squid/squid.conf
修改http_port (預設為3128,我們將變更為:8888)

插入 cache_mem 32 MB #建議可採實體MEM之1/2
cache_swap_low 60
cache_swap_high 90 #調整cache_swap高低標調整
maximum_object_size 40MB #cache物件大小,超過此值則不cache

配置cache_dir 實際cache物件暫存於硬碟空間參數
cache_dir ufs /var/squid1 1000 16 200
#規劃 /var/squid1 目錄為cache_dir ,配置為1G,L1=16
L2=200 ,可配置多個Cache_Dir,官方建議:單一Cache_dir目錄不得
超過3G,L2不得>256

將上述組態設定告一段落後,我們手動重新啟動 SQUID 來看
service squid restart
切回至 /var/squid1 目錄下,由下圖可知已自動初始化完成
Cache_dir配置

(B):配置進階ACL規範,以規範企業內部員工存取外部特定之Web Site
建置ACL條例存取檔案 /etc/squid/url.acl #稍後我們將正規化格式寫入此檔比對
展示目前此LAB已寫好部份的ACL條例
#acl block_ya dstdomain .yahoo.com
#http_access deny block_ya
acl block_list url_regex -i "/etc/squid/url.acl"
http_access deny block_list
acl intranet src 192.168.0.0/24
acl ok_time time MTWHF 09:00-21:00
acl block_time time AS 18:00-24:00
http_access allow intranet ok_time
http_access deny intranet block_time
#定義企業內部"intranet"來源網段為: 192.168.0.0/24
定義企業內部開放Squid存取時段為週一至週五 09:00-2100
命名為"ok_time"
定義企業內部禁用Squid存取時段為週六-週日 18:00-2400
命名為"block_time"
PS>本Lab實作日期為週日,故週六-週日無開放存取Squid(現況)

驗證SQUID 於禁用時段(block_time),封閉企業內部員工存取Proxy
首先,我們配置Client端PC,存取Squid Server

打開Chrome 瀏覽器進入首頁查看: 訊息描述此一時段,客戶端無法存取Squid
#驗證ok

現在,我們將變更原組態設定,使客戶端可以於週六-週日存取使用Proxy
很Easy,我們可以微調以下參數,將MTWHF後方加入AS如下
acl ok_time time MTWHFAS 09:00-21:00
然後重新啟動SQUID即OK,但切記Allow設置必須先於deny

再次開啟Chrome瀏覽器: 我們已成功開放員工,於週六,週日存取SQUID
#驗證ok

[限制企業內部員工存取限定網頁與特殊檔案格式下載]
然而現在,我們將配置一個存放供正規化條例比對檔案
/etc/squid/url.acl #我們稍後將數筆ACL(正規化)規範寫入
此檔案(方便Admin管理),依下設置
acl block_list url_regex -i "/etc/squid/url.acl"
http_access deny block_list
#建立名為block_list(acl)讀入 "/etc/squid/url.acl(正規化)
若符合block_list描述式者一律執行Deny動作

編輯 /etc/squid/url.acl
vi /etc/squid/url.acl #填入以下內容
^http:\/\/.*\.google\.com
^http:\/\/.*\.yahoo\.com
^http:\/\/.*\.facebook\.com
.*\/.*\.rar$
#此例為限制使用者存取goole,yahoo與facebook網站,並
禁止使用者,透過瀏覽器下載副檔格式為"rar"的檔案
當設定OK後,請再次重新啟動SQUID,生效設定

[驗證]: 當使用者存取facebook網頁是否被禁用? #下圖來看驗證已OK

[驗證]: 當使用者透過瀏覽器下載*.rar 格式檔案是否禁用 #下圖來看驗證已OK

此外像 Refresh_Patterm 參數 : 關係到Cache檔案更新率
若像動態網頁(Ex:PHP,JSP,ASP..etc),由於變動率較大,可將Cache Max時間縮短
(Ex:小於60分)
若像Windows UPDATE 網站更新(Ex:建議可將Max值設定為一週,100%)

最後關於Debug Squid 狀態始否有錯誤,可利用以下command篩選查閱
grep 'squid' /var/log/messages | tail -10

實作參考技術資料:
Linux 網路安全技術實現/悅知/陳勇勳
與網路上一堆雜亂技術內容
Squid 接受來自Client端需要下載的目標(object)
的請求並適當地處理這些請求。
當部署企業內部角色為Cache Proxy時
當企業内部員工欲對外存取某一Web Site資訊,Squid將
代為他取得這個頁面,若企業内部尚由其他員工存取一樣頁面,
然後Squid會將Cache下來內容,直接回應其他Client端存取
無須再透過Internet再次抓取一次網頁資料,進而達到節省
企業聯外頻寬目的,此外Proxy Server 尚可部署條例,控管
企業員工連線至特定WEB頁面(Ex: facebook,yahoo)
實驗環境
Squid Proxy Server: 192.168.0.195:8888
實體MEM: 512 MB
Cache_dir 1G
Squid Client: 192.168.0.198(WinXP)
使用 Google Chrome 瀏覽器做測試
請於Lab前建置/var/squid1/ 目錄並利用chown將Owner與Group
變更為"Squid"可存取權限
(A):安裝Squid & 初始化組態設定
yum -y install squid
安裝完成後編輯/etc/squid/squid.conf
修改http_port (預設為3128,我們將變更為:8888)

插入 cache_mem 32 MB #建議可採實體MEM之1/2
cache_swap_low 60
cache_swap_high 90 #調整cache_swap高低標調整
maximum_object_size 40MB #cache物件大小,超過此值則不cache

配置cache_dir 實際cache物件暫存於硬碟空間參數
cache_dir ufs /var/squid1 1000 16 200
#規劃 /var/squid1 目錄為cache_dir ,配置為1G,L1=16
L2=200 ,可配置多個Cache_Dir,官方建議:單一Cache_dir目錄不得
超過3G,L2不得>256

將上述組態設定告一段落後,我們手動重新啟動 SQUID 來看
service squid restart
切回至 /var/squid1 目錄下,由下圖可知已自動初始化完成
Cache_dir配置

(B):配置進階ACL規範,以規範企業內部員工存取外部特定之Web Site
建置ACL條例存取檔案 /etc/squid/url.acl #稍後我們將正規化格式寫入此檔比對
展示目前此LAB已寫好部份的ACL條例
#acl block_ya dstdomain .yahoo.com
#http_access deny block_ya
acl block_list url_regex -i "/etc/squid/url.acl"
http_access deny block_list
acl intranet src 192.168.0.0/24
acl ok_time time MTWHF 09:00-21:00
acl block_time time AS 18:00-24:00
http_access allow intranet ok_time
http_access deny intranet block_time
#定義企業內部"intranet"來源網段為: 192.168.0.0/24
定義企業內部開放Squid存取時段為週一至週五 09:00-2100
命名為"ok_time"
定義企業內部禁用Squid存取時段為週六-週日 18:00-2400
命名為"block_time"
PS>本Lab實作日期為週日,故週六-週日無開放存取Squid(現況)

驗證SQUID 於禁用時段(block_time),封閉企業內部員工存取Proxy
首先,我們配置Client端PC,存取Squid Server

打開Chrome 瀏覽器進入首頁查看: 訊息描述此一時段,客戶端無法存取Squid
#驗證ok

現在,我們將變更原組態設定,使客戶端可以於週六-週日存取使用Proxy
很Easy,我們可以微調以下參數,將MTWHF後方加入AS如下
acl ok_time time MTWHFAS 09:00-21:00
然後重新啟動SQUID即OK,但切記Allow設置必須先於deny

再次開啟Chrome瀏覽器: 我們已成功開放員工,於週六,週日存取SQUID
#驗證ok

[限制企業內部員工存取限定網頁與特殊檔案格式下載]
然而現在,我們將配置一個存放供正規化條例比對檔案
/etc/squid/url.acl #我們稍後將數筆ACL(正規化)規範寫入
此檔案(方便Admin管理),依下設置
acl block_list url_regex -i "/etc/squid/url.acl"
http_access deny block_list
#建立名為block_list(acl)讀入 "/etc/squid/url.acl(正規化)
若符合block_list描述式者一律執行Deny動作

編輯 /etc/squid/url.acl
vi /etc/squid/url.acl #填入以下內容
^http:\/\/.*\.google\.com
^http:\/\/.*\.yahoo\.com
^http:\/\/.*\.facebook\.com
.*\/.*\.rar$
#此例為限制使用者存取goole,yahoo與facebook網站,並
禁止使用者,透過瀏覽器下載副檔格式為"rar"的檔案
當設定OK後,請再次重新啟動SQUID,生效設定

[驗證]: 當使用者存取facebook網頁是否被禁用? #下圖來看驗證已OK

[驗證]: 當使用者透過瀏覽器下載*.rar 格式檔案是否禁用 #下圖來看驗證已OK

此外像 Refresh_Patterm 參數 : 關係到Cache檔案更新率
若像動態網頁(Ex:PHP,JSP,ASP..etc),由於變動率較大,可將Cache Max時間縮短
(Ex:小於60分)
若像Windows UPDATE 網站更新(Ex:建議可將Max值設定為一週,100%)

最後關於Debug Squid 狀態始否有錯誤,可利用以下command篩選查閱
grep 'squid' /var/log/messages | tail -10

實作參考技術資料:
Linux 網路安全技術實現/悅知/陳勇勳
與網路上一堆雜亂技術內容
全站熱搜