RHEL6下squid代理之正向代理
Squid cache(簡稱為Squid)是一個流行的自由軟體(GNU通用公共許可證)的代理伺服器和Web快取伺服器。Squid有廣泛的用途,從作為網頁伺服器的前置cache伺服器快取相關請求來提高Web伺服器的速度,到為一組人共享網路資源而快取全球資訊網,域名系統和其他網路搜尋,到通過過濾流量幫助網路安全,到區域網通過代理上網。Squid主要設計用於在Unix一類系統執行。
以下介紹它的第一個作用:正向代理
正向代理 是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設定才能使用正向代理
# yum install squid -y //yum安裝squid
# vim /etc/sysctl.conf //修改開啟路由轉發功能
# grep -i ip_forward /etc/sysctl.conf
net.ipv4.ip_forward= 1
# sysctl -p //使路由轉發功能生效
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter= 1
... ...
#
配置檔案修改
# vim /etc/squid/squid.conf //修改squid主配置檔案
# grep -vE '^#|^$'/etc/squid/squid.conf
acl manager proto cache_object
acl localhost src 127.0.0.1/32::1
acl to_localhost dst 127.0.0.0/80.0.0.0/32 ::1
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged)machines
acl host1 src192.168.0.0/24 # 自定義主機
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow managerlocalhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT!SSL_ports
http_accessallow host1 #允許自定義主機訪問
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 8080 #代理埠,習慣上使用8080埠
hierarchy_stoplist cgi-bin ?
cache_dir ufs/var/spool/squid 100 16 256
#ufs為快取儲存型別,在該目錄下使用的緩衝值為100MB,允許在“/var/spool/squid”下建立的第一級子目錄數為16,每個第一級子目錄下可以建立的第二級子目錄數量為256
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i(/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
//新增修改以上紅色部分就能搭建簡單的squid正向代理了
//注:cache_men不能超過cache_dir中的一個數值,否則會出現如下報錯,
停止 squid:2012/08/21 16:05:46| WARNING cache_mem is larger than totaldisk cache space!
# squid -z //初始化快取空間
2012/08/21 15:29:37| WARNINGcache_mem is larger than total disk cache space!
2012/08/21 15:29:37| CreatingSwap Directories //檢視swap快取目錄
2012/08/21 15:29:37|/var/spool/squid exists
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/00
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/01
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/02
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/03
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/04
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/05
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/06
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/07
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/08
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/09
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0A
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0B
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0C
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0D
2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0E
2012/08/21 15:29:37| Making directoriesin /var/spool/squid/0F
[root@localhost ~]#
# /etc/init.d/squid start
客戶機瀏覽器配置代理
開啟瀏覽器internet選項選擇連線中的區域網設定設定:
新增squid主機IP以及代理埠:
# tail -f /var/log/squid/access.log //檢視代理客戶機訪問記錄
1345532445.463 166 192.168.0.229 TCP_MISS/200 2126 GEThttp://news.baidu.com/z/resource/bg2.png - DIRECT/123.125.114.18 image/png
1345532445.467 3193 192.168.0.229 TCP_MISS/200 188665 GEThttp://eiv.baidu.com/mapm2/jingyi/120705_jj_01/984bg.jpg - DIRECT/123.125.115.43image/jpeg
1345532445.869 218 192.168.0.229 TCP_MISS/200 423 GEThttp://news.baidu.com/c_n? - DIRECT/123.125.114.18 text/html
1345532446.055 170 192.168.0.229 TCP_MISS/200 1020 GEThttp://news.baidu.com/nocache/mp/b.jpg? - DIRECT/123.125.114.18 image/jpeg
1345532446.303 515 192.168.0.229 TCP_MISS/200 3653 GEThttp://t3.baidu.com/it/u=http%3A%2F%2Fwww.cnr.cn%2Fgundong%2F201208%2FW020120821245142735909.jpg&fm=30- DIRECT/61.135.185.26 image/jpeg
檢視命中率
# squidclient -p 8080 mgr:info
HTTP/1.0 200 OK
Server: squid/3.1.10
Mime-Version: 1.0
Date: Tue, 21 Aug 2012 07:12:28GMT
Content-Type: text/plain
Expires: Tue, 21 Aug 201207:12:28 GMT
Last-Modified: Tue, 21 Aug 201207:12:28 GMT
X-Cache: MISS fromlocalhost.localdomain
X-Cache-Lookup: MISS fromlocalhost.localdomain:8080
Via: 1.0 localhost.localdomain(squid/3.1.10)
Connection: close
Squid Object Cache: Version3.1.10
Start Time: Tue, 21 Aug 2012 06:59:03 GMT
Current Time: Tue, 21 Aug 2012 07:12:28 GMT
Connection information for squid:
Numberof clients accessing cache: 2
Numberof HTTP requests received: 130
Numberof ICP messages received: 0
Numberof ICP messages sent: 0
Numberof queued ICP replies: 0
Numberof HTCP messages received: 0
Numberof HTCP messages sent: 0
Requestfailure ratio: 0.01
AverageHTTP requests per minute since start: 9.7
AverageICP messages per minute since start: 0.0
Selectloop called: 382483 times, 2.107 ms avg
... ...
#
取得squid執行狀態資訊: squidclient -p 8080 mgr:info
取得squid記憶體使用情況: squidclient -p 80mgr:mem
取得squid的磁碟使用情況: squidclient -p 8080 mgr:diskd
檢視更多:squidclient -p 8080 mgr:
acl規則限制配置
# deny news #過濾所有url中含有news的網站
acl newsurl_regex -i news
#過濾URL中出現news關鍵字
http_accessdeny news
# deny video #過濾主流的視訊網站
acl videodstdomain .youku.com .56.com .tudou.com .qiyi.com
http_accessdeny video
acl worktimetime MTWHF 9:00-12:00
http_accessdeny !worktime #9:00-12:00這段時間外不可以訪問
加入以上配置到配置檔案後,重新整理squid服務即可
time ACL允許你控制基於時間的訪問,時間為每天中的具體時間,和每週中的每天。日期以單字母來表示,見如下表。時間以24小時制來表示。[星期]:可以使用這些關鍵字M(Monday星期一)、T(Tuesday星期二)、W(Wednesday星期三)、H(Thursday星期四)、F(Friday星期五)、A(Saturday星期六)和S(Sunday星期天) [時間段]:可以表示為10:00-20:00。例如:
aclworktime time MTWHF 9:00-18:00週一到週五的9點到18點
訪問控制應用例項
1) 禁止IP地址為192.168.16.200的客戶機上網。
acl badclientip1 src192.168.16.200
http_access deny badclientip1
2) 禁止192.168.1.0這個子網裡所有的客戶機上網。
acl badclientnet1 src192.168.1.0/255.255.255.0
http_access denybadclientnet1
3) 禁止使用者訪問IP地址為210.21.118.68的網站。
acl badsrvip1 dst210.21.118.68
http_access deny badsrvip1
4) 禁止使用者訪問域名為www.163.com的網站。
acl baddomain1 dstdomain -iwww.163.com
http_access deny baddomain1
5) 禁止使用者訪問域名包含有163.com的網站。
acl badurl1 url_regex -i163.com
http_access deny badurl1
6) 禁止使用者訪問域名包含有sex關鍵字的URL。
acl badurl2 url_regex -i sex
http_access deny badurl2
7) 限制IP地址為192.168.16.200的客戶機併發最大連線數為5。
acl clientip1 src192.168.16.200 acl conn5 maxconn 5 http_access deny client1 conn1
8) 禁止192.168.2.0這個子網裡所有的客戶機在週一到週五的9:00到18:00上網。
acl clientnet1 src192.168.2.0/255.255.255.0 acl worktime time MTWHF 9:00-18:00 http_access denyclientnet1 worktime
9) 禁止客戶機下載*.mp3、*.exe、*.zip和*.rar型別的檔案。
acl badfile1 urlpath_regex -i\.mp3$ \.exe$ \.zip$ \.rar$ http_access deny badfile1
10) 禁止QQ通過squid代理上網。
acl qq url_regex -itencent.com http_access deny qq
相關文章
- CentOS搭建squid正向代理教程。CentOSUI
- 【代理】正向代理、反向代理、透明代理
- 正向代理與反向代理
- 反向代理與正向代理
- 正向代理和反向代理
- nginx正向代理、反向代理Nginx
- linux下正向代理/反向代理/透明代理使用說明Linux
- 圖解正向代理、反向代理、透明代理圖解
- Nginx之路--配置正向代理、反向代理Nginx
- 反向代理和正向代理區別
- 正向代理與反向代理總結
- 圖解正向代理與反向代理圖解
- Nginx正向代理和反向代理配置Nginx
- 正向代理和反向代理的形象理解
- 反向代理與正向代理差異分析
- 什麼是正向代理和反向代理?
- 圖文總結:正向代理與反向代理
- 淺析正向代理與反向代理 海外代理IP介紹
- nginx 做正向代理配置Nginx
- 正向代理,反向代理和透明代理的原理和區別!
- 什麼是反向代理,什麼又是正向代理?
- Nginx 學習系列(一) ------------- 正向代理與反向代理Nginx
- 正向代理和反向代理的本質區別
- 什麼是正向代理?什麼是反向代理?
- 我們們來聊聊正向代理和反向代理
- squid反向代理安全控制UI
- squid代理伺服器UI伺服器
- Nginx-正向代理實現Nginx
- 《CDN web加速代理》RHEL6Web
- Linux下squid代理快取服務環境部署LinuxUI快取
- 正向代理與反向代理的區別【Nginx讀書筆記】Nginx筆記
- 基於Apache搭建HTTP HTTPS 正向代理 反向代理伺服器ApacheHTTP伺服器
- 反向代理是什麼?和正向代理有什麼區別呢?
- CentOS安裝squid代理伺服器CentOSUI伺服器
- 關於叢集與分散式,反向代理正向代理的概念以及叢集與反向代理伺服器之間的關係分散式伺服器
- 配置 Squid 作為 SSH 代理伺服器UI伺服器
- squid 代理轉發內網伺服器UI內網伺服器
- 圖解「正向代理」的原理 + 實踐應用圖解